From 31daeebdd5032471582f4dd764aed05d4971fdbf Mon Sep 17 00:00:00 2001 From: OttoMao Date: Fri, 2 Oct 2015 14:06:18 +0800 Subject: [PATCH] bugfix for #36, ready to release v3.7.7 --- CHANGELOG | 4 ++++ lib/log.js | 1 - lib/webInterface.js | 10 ++++++---- package.json | 2 +- proxy.js | 14 +++++++------- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 0ae438e..0e695fa 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +2 Oct: AnyProxy 3.7.7: + + * bugfix for proxy.close() ref #36 + 9 Sep: AnyProxy 3.7.6: * optimize detail panel, ref #35 diff --git a/lib/log.js b/lib/log.js index 2aae613..4fc271d 100644 --- a/lib/log.js +++ b/lib/log.js @@ -8,7 +8,6 @@ function printLog(content,type){ if(!ifPrint) return; var tip = content; - console.log(tip); } diff --git a/lib/webInterface.js b/lib/webInterface.js index 8b1c15b..b2b1fab 100644 --- a/lib/webInterface.js +++ b/lib/webInterface.js @@ -18,7 +18,8 @@ function webInterface(config){ ipAddress = config.ip, userRule = config.userRule, ruleSummary = "", - customMenu = []; + customMenu = [], + server; try{ ruleSummary = userRule.summary(); @@ -111,13 +112,14 @@ function webInterface(config){ //plugin from rule file if(typeof userRule._plugIntoWebinterface == "function"){ userRule._plugIntoWebinterface(app,function(){ - app.listen(port); + server = app.listen(port); }); }else{ - app.listen(port); + server = app.listen(port); } - self.app = app; + self.app = app; + self.server = server; } inherits(webInterface, events.EventEmitter); diff --git a/package.json b/package.json index d7fd5c5..3596d97 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "anyproxy", - "version": "3.7.6", + "version": "3.7.7", "description": "A fully configurable proxy in NodeJS, which can handle HTTPS requests perfectly.", "main": "proxy.js", "bin": { diff --git a/proxy.js b/proxy.js index 4e0f651..861d735 100644 --- a/proxy.js +++ b/proxy.js @@ -63,9 +63,7 @@ function proxyServer(option){ socketPort = option.socketPort || DEFAULT_WEBSOCKET_PORT, //port for websocket proxyConfigPort = option.webConfigPort || DEFAULT_CONFIG_PORT, //port to ui config server disableWebInterface = !!option.disableWebInterface, - ifSilent = !!option.silent, - webServerInstance, - ws; + ifSilent = !!option.silent; if(ifSilent){ logUtil.setPrintStatus(false); @@ -131,8 +129,8 @@ function proxyServer(option){ //start web socket service function(callback){ - ws = new wsServer({port : socketPort}); - callback(null) + self.ws = new wsServer({port : socketPort}); + callback(null); }, //start web interface @@ -147,7 +145,7 @@ function proxyServer(option){ ip : ip.address() }; - webServerInstance = new webInterface(config); + self.webServerInstance = new webInterface(config); } callback(null); }, @@ -189,7 +187,9 @@ function proxyServer(option){ self.close = function(){ self.httpProxyServer && self.httpProxyServer.close(); - logUtil.printLog(color.green("server closed :" + proxyHost + ":" + proxyPort)); + self.ws && self.ws.closeAll(); + self.webServerInstance && self.webServerInstance.server && self.webServerInstance.server.close(); + logUtil.printLog("server closed :" + proxyHost + ":" + proxyPort); } }