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 tls = require('tls'); | ||||
| var packerStream = require('tunnel-packer').Stream; | ||||
| var wrapSocket = require('tunnel-packer').wrapSocket; | ||||
| var redirectHttps = require('redirect-https')(); | ||||
| 
 | ||||
| module.exports.create = function (program) { | ||||
| @ -57,19 +57,8 @@ module.exports.create = function (program) { | ||||
|     // tlsServer.emit('connection', socket);    // this didn't work either
 | ||||
|     //console.log('chunkLen', firstChunk.byteLength);
 | ||||
| 
 | ||||
|     var myDuplex = packerStream.create(socket); | ||||
| 
 | ||||
|     console.log('httpsInvalid servername', servername); | ||||
|     program.tlsInvalidSniServer.emit('connection', myDuplex); | ||||
| 
 | ||||
|     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); | ||||
|     }); | ||||
|     program.tlsInvalidSniServer.emit('connection', wrapSocket(socket)); | ||||
|   }; | ||||
| 
 | ||||
|   //
 | ||||
| @ -97,18 +86,7 @@ module.exports.create = function (program) { | ||||
|     // tlsServer.emit('connection', socket);    // this didn't work either
 | ||||
|     //console.log('chunkLen', firstChunk.byteLength);
 | ||||
| 
 | ||||
|     var myDuplex = packerStream.create(socket); | ||||
| 
 | ||||
|     console.log('httpsTunnel (Admin) servername', servername); | ||||
|     program.tlsTunnelServer.emit('connection', myDuplex); | ||||
| 
 | ||||
|     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); | ||||
|     }); | ||||
|     program.tlsTunnelServer.emit('connection', wrapSocket(socket)); | ||||
|   }; | ||||
| }; | ||||
|  | ||||
| @ -51,10 +51,10 @@ | ||||
|     "commander": "^2.9.0", | ||||
|     "greenlock": "^2.1.12", | ||||
|     "jsonwebtoken": "^7.1.9", | ||||
|     "localhost.daplie.me-certificates": "^1.3.0", | ||||
|     "localhost.daplie.me-certificates": "^1.3.3", | ||||
|     "redirect-https": "^1.1.0", | ||||
|     "sni": "^1.0.0", | ||||
|     "tunnel-packer": "^1.2.0", | ||||
|     "tunnel-packer": "^1.3.0", | ||||
|     "ws": "^2.2.3" | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -347,6 +347,7 @@ module.exports.create = function (copts) { | ||||
|       Object.keys(remotes).forEach(function (jwtoken) { | ||||
|         removeToken(jwtoken); | ||||
|       }); | ||||
|       ws.terminate(); | ||||
|     } | ||||
| 
 | ||||
|     ws.on('close', hangup); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user