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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user