fixed problem with not closing websocket
There was a problem that prevented socket events like close and error from getting through our duplex and to the websocket so it could close
This commit is contained in:
parent
7112bfdbb2
commit
8e71ae02cf
28
handlers.js
28
handlers.js
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
var http = require('http');
|
var http = require('http');
|
||||||
var tls = require('tls');
|
var tls = require('tls');
|
||||||
var packerStream = require('tunnel-packer').Stream;
|
var wrapSocket = require('tunnel-packer').wrapSocket;
|
||||||
var redirectHttps = require('redirect-https')();
|
var redirectHttps = require('redirect-https')();
|
||||||
|
|
||||||
module.exports.create = function (program) {
|
module.exports.create = function (program) {
|
||||||
|
@ -57,19 +57,8 @@ module.exports.create = function (program) {
|
||||||
// tlsServer.emit('connection', socket); // this didn't work either
|
// tlsServer.emit('connection', socket); // this didn't work either
|
||||||
//console.log('chunkLen', firstChunk.byteLength);
|
//console.log('chunkLen', firstChunk.byteLength);
|
||||||
|
|
||||||
var myDuplex = packerStream.create(socket);
|
|
||||||
|
|
||||||
console.log('httpsInvalid servername', servername);
|
console.log('httpsInvalid servername', servername);
|
||||||
program.tlsInvalidSniServer.emit('connection', myDuplex);
|
program.tlsInvalidSniServer.emit('connection', wrapSocket(socket));
|
||||||
|
|
||||||
socket.on('data', function (chunk) {
|
|
||||||
console.log('[' + Date.now() + '] socket data', chunk.byteLength);
|
|
||||||
myDuplex.push(chunk);
|
|
||||||
});
|
|
||||||
socket.on('error', function (err) {
|
|
||||||
console.error('[error] httpsInvalid TODO close');
|
|
||||||
console.error(err);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -97,18 +86,7 @@ module.exports.create = function (program) {
|
||||||
// tlsServer.emit('connection', socket); // this didn't work either
|
// tlsServer.emit('connection', socket); // this didn't work either
|
||||||
//console.log('chunkLen', firstChunk.byteLength);
|
//console.log('chunkLen', firstChunk.byteLength);
|
||||||
|
|
||||||
var myDuplex = packerStream.create(socket);
|
|
||||||
|
|
||||||
console.log('httpsTunnel (Admin) servername', servername);
|
console.log('httpsTunnel (Admin) servername', servername);
|
||||||
program.tlsTunnelServer.emit('connection', myDuplex);
|
program.tlsTunnelServer.emit('connection', wrapSocket(socket));
|
||||||
|
|
||||||
socket.on('data', function (chunk) {
|
|
||||||
console.log('[' + Date.now() + '] socket data', chunk.byteLength);
|
|
||||||
myDuplex.push(chunk);
|
|
||||||
});
|
|
||||||
socket.on('error', function (err) {
|
|
||||||
console.error('[error] httpsTunnel (Admin) TODO close');
|
|
||||||
console.error(err);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -51,10 +51,10 @@
|
||||||
"commander": "^2.9.0",
|
"commander": "^2.9.0",
|
||||||
"greenlock": "^2.1.12",
|
"greenlock": "^2.1.12",
|
||||||
"jsonwebtoken": "^7.1.9",
|
"jsonwebtoken": "^7.1.9",
|
||||||
"localhost.daplie.me-certificates": "^1.3.0",
|
"localhost.daplie.me-certificates": "^1.3.3",
|
||||||
"redirect-https": "^1.1.0",
|
"redirect-https": "^1.1.0",
|
||||||
"sni": "^1.0.0",
|
"sni": "^1.0.0",
|
||||||
"tunnel-packer": "^1.2.0",
|
"tunnel-packer": "^1.3.0",
|
||||||
"ws": "^2.2.3"
|
"ws": "^2.2.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -347,6 +347,7 @@ module.exports.create = function (copts) {
|
||||||
Object.keys(remotes).forEach(function (jwtoken) {
|
Object.keys(remotes).forEach(function (jwtoken) {
|
||||||
removeToken(jwtoken);
|
removeToken(jwtoken);
|
||||||
});
|
});
|
||||||
|
ws.terminate();
|
||||||
}
|
}
|
||||||
|
|
||||||
ws.on('close', hangup);
|
ws.on('close', hangup);
|
||||||
|
|
Loading…
Reference in New Issue