From c3e67ebcb1ac8808a4399f4045ca183fb4e0d960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E8=BE=B0?= Date: Tue, 5 Apr 2016 20:04:11 +0800 Subject: [PATCH] enable global proxy depends on options.type --- lib/proxyManager.js | 54 ++++++++++++++++++++++++--------------------- proxy.js | 4 ++-- 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/lib/proxyManager.js b/lib/proxyManager.js index 5e8b02c..a7766f7 100644 --- a/lib/proxyManager.js +++ b/lib/proxyManager.js @@ -20,7 +20,7 @@ function execSync(cmd) { /** - * proxy for Centos + * proxy for CentOs * ------------------------------------------------------------------------ * * file: ~/.bash_profile @@ -69,46 +69,50 @@ macProxyManager.getNetworkType = function() { throw new Error('Unknown network type'); }; -macProxyManager.enableGlobalProxy = function(ip, port) { +macProxyManager.enableGlobalProxy = function(ip, port, proxyType) { - if (!ip && !port) { - console.log('proxy server\'s ip and port is required'); + if (!ip || !port) { + console.log('proxy server\'s ip and port are required'); return; }; + proxyType = proxyType || 'http'; + var networkType = macProxyManager.networkType || macProxyManager.getNetworkType(); - var result = execSync( + return /^http$/i.test(proxyType) ? // set http proxy - 'sudo networksetup -setwebproxy ${networkType} ${ip} ${port}; ' - .replace("${networkType}", networkType) - .replace("${ip}", ip) - .replace("${port}", port) + + execSync( + 'networksetup -setwebproxy ${networkType} ${ip} ${port}' + .replace("${networkType}", networkType) + .replace("${ip}", ip) + .replace("${port}", port)) : // set https proxy - 'sudo networksetup -setsecurewebproxy ${networkType} ${ip} ${port}' - .replace("${networkType}", networkType) - .replace("${ip}", ip) - .replace("${port}", port)); + execSync('networksetup -setsecurewebproxy ${networkType} ${ip} ${port}' + .replace("${networkType}", networkType) + .replace("${ip}", ip) + .replace("${port}", port)); - return result; }; -macProxyManager.disableGlobalProxy = function() { +macProxyManager.disableGlobalProxy = function(proxyType) { + proxyType = proxyType || 'http'; + var networkType = macProxyManager.networkType || macProxyManager.getNetworkType(); - var result = execSync( + return /^http$/i.test(proxyType) ? - // disable http proxy - 'sudo networksetup -setwebproxystate ${networkType} off; ' - .replace(/\$\{networkType\}/g, networkType) + + // set http proxy + execSync( + 'networksetup -setwebproxystate ${networkType} off' + .replace("${networkType}", networkType)) : - // disable https proxy - 'sudo networksetup -setsecurewebproxystate ${networkType} off' - .replace(/\$\{networkType\}/g, networkType)); - - return result; + // set https proxy + execSync( + 'networksetup -setsecurewebproxystate ${networkType} off' + .replace("${networkType}", networkType)); }; macProxyManager.getProxyState = function() { @@ -133,7 +137,7 @@ var winProxyManager = {}; winProxyManager.enableGlobalProxy = function(ip, port) { if (!ip && !port) { - console.log('proxy server\'s ip and port is required'); + console.log('proxy server\'s ip and port are required'); return; }; diff --git a/proxy.js b/proxy.js index a80da8c..a407c22 100644 --- a/proxy.js +++ b/proxy.js @@ -162,7 +162,7 @@ function proxyServer(option){ function(callback) { if (option.globalProxy) { - var result = require('./lib/proxyManager').enableGlobalProxy(ip.address(), proxyPort); + var result = require('./lib/proxyManager').enableGlobalProxy(ip.address(), proxyPort, proxyType == T_TYPE_HTTP ? "Http" : "Https"); if (result.status) { callback(result.stdout); @@ -184,7 +184,7 @@ function proxyServer(option){ logUtil.printLog('AnyProxy is about to exit with code: ' + code, logUtil.T_ERR); if (option.globalProxy) { - var result = require('./lib/proxyManager').disableGlobalProxy(); + var result = require('./lib/proxyManager').disableGlobalProxy(proxyType == T_TYPE_HTTP ? "Http" : "Https"); //error occur if (result.status) {