Skip to content

Commit

Permalink
Tune unpipe
Browse files Browse the repository at this point in the history
  • Loading branch information
mykola-mokhnach committed Feb 4, 2020
1 parent 7e563c1 commit 1c8f593
Showing 1 changed file with 32 additions and 14 deletions.
46 changes: 32 additions & 14 deletions lib/device-connections-factory.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,31 +18,49 @@ class iProxy {
if (this.localServer) {
return;
}

this.localServer = net.createServer(async (localSocket) => {
let remoteSocket;
try {
const remoteSocket = await utilities.connectPort(this.udid, this.deviceport);
remoteSocket.on('close', () => localSocket.end());
remoteSocket.on('error', (e) => {
// not all remote socket errors are critical for the user
this.log.info(e.message);
this.log.debug(e);
});
localSocket.on('close', () => remoteSocket.end());
localSocket.on('error', (e) => this.log.warn(e.message));
localSocket.pipe(remoteSocket);
remoteSocket.pipe(localSocket);
remoteSocket = await utilities.connectPort(this.udid, this.deviceport);
} catch (e) {
this.log.error(e);
localSocket.end();
localSocket.destroy();
return;
}
const destroyCommChannel = () => {
remoteSocket.unpipe(localSocket);
localSocket.unpipe(remoteSocket);
};
remoteSocket.on('close', () => {
destroyCommChannel();
localSocket.destroy();
});
remoteSocket.on('error', (e) => {
// not all remote socket errors are critical for the user
this.log.debug(e);
});
localSocket.on('end', () => {
destroyCommChannel();
remoteSocket.end();
});
localSocket.on('close', () => {
destroyCommChannel();
remoteSocket.destroy();
});
localSocket.on('error', (e) => {
this.log.warn(e.message);
});
localSocket.pipe(remoteSocket);
remoteSocket.pipe(localSocket);
});
const status = new B((resolve, reject) => {
const listeningPromise = new B((resolve, reject) => {
this.localServer.once('listening', resolve);
this.localServer.once('error', reject);
});
this.localServer.listen(this.localport);
try {
await status;
await listeningPromise;
} catch (e) {
this.localServer = null;
throw e;
Expand Down

0 comments on commit 1c8f593

Please sign in to comment.