Fix bug preventing XMPP client from connecting

This commit is contained in:
Zaid Humaimidi committed 2024-03-27 13:57:09 -07:00
1 parent 3134b63b68
commit ab80a62c5c
1 file changed
+16 -22
+16 -22
View File
@@ -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 {