Fix bug preventing XMPP client from connecting
This commit is contained in:
1 parent
3134b63b68
commit
ab80a62c5c
1 file changed
+16
-22
+16
-22
@@ -321,16 +321,19 @@ export default class XmppClient extends EventEmitter {
|
||||
this._iqStanzaCallbacks = new Map();
|
||||
}
|
||||
|
||||
static connect(opts: XmppClientOptions): Promise<XmppClient> {
|
||||
static async connect(opts: XmppClientOptions): Promise<XmppClient> {
|
||||
function connectSocket(host: string, port: number): Promise<net.Socket> {
|
||||
return new Promise((resolve, reject) => {
|
||||
let socket = new net.Socket();
|
||||
const socket = new net.Socket();
|
||||
socket.on("error", reject);
|
||||
|
||||
socket.connect(
|
||||
opts.port || 5222,
|
||||
opts.host,
|
||||
void async function () {
|
||||
socket.connect(port, host, () => {
|
||||
socket.removeListener("error", reject);
|
||||
resolve(socket);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
let socket = await connectSocket(opts.host, opts.port || 5222);
|
||||
try {
|
||||
let status = 1;
|
||||
while (status) {
|
||||
@@ -338,15 +341,13 @@ export default class XmppClient extends EventEmitter {
|
||||
socket = await upgradeTls(socket, opts.host);
|
||||
status = await xmppStream(
|
||||
socket,
|
||||
init(
|
||||
socket,
|
||||
opts.host,
|
||||
opts.username,
|
||||
opts.password,
|
||||
opts.resource,
|
||||
),
|
||||
init(socket, opts.host, opts.username, opts.password, opts.resource),
|
||||
);
|
||||
}
|
||||
} catch (err) {
|
||||
socket.destroy();
|
||||
throw err;
|
||||
}
|
||||
|
||||
const client = new XmppClient();
|
||||
client._socket = socket;
|
||||
@@ -357,14 +358,7 @@ export default class XmppClient extends EventEmitter {
|
||||
socket.on("error", client._onError.bind(client));
|
||||
if (opts.timeout)
|
||||
socket.setTimeout(opts.timeout, client.close.bind(client));
|
||||
resolve(client);
|
||||
} catch (err) {
|
||||
socket.destroy();
|
||||
reject(err);
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
return client;
|
||||
}
|
||||
|
||||
close(): void {
|
||||
|
||||
Reference in new issue
Block a user