From 357ec4bbf7dcc05abe7dffcc035c66150b474f16 Mon Sep 17 00:00:00 2001 From: avwo Date: Sun, 6 Nov 2016 23:54:21 +0800 Subject: [PATCH] feat: Refine proxy --- lib/https/index.js | 1 - lib/index.js | 7 +++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/https/index.js b/lib/https/index.js index 3460362d7..53703e65f 100644 --- a/lib/https/index.js +++ b/lib/https/index.js @@ -80,7 +80,6 @@ function handleWebsocket(socket, clientIp, callback) { if (proxyUrl) { !filter.hide && proxy.emit('request', reqEmitter); var isSocks = /^socks:\/\//.test(proxyUrl); - data.realUrl = proxyUrl; proxyUrl = 'http:' + util.removeProtocol(proxyUrl); resolveHost(proxyUrl, function(ip) { options = url.parse(proxyUrl); diff --git a/lib/index.js b/lib/index.js index dfd4fe549..6a3c304dd 100644 --- a/lib/index.js +++ b/lib/index.js @@ -155,7 +155,6 @@ function tunnelProxy(server, proxy) { if (proxyUrl) { var isSocks = /^socks:\/\//.test(proxyUrl); - data.realUrl = proxyUrl; var _url = 'http:' + util.removeProtocol(proxyUrl); data.proxy = true; resolveHost(_url, function(ip) { @@ -163,8 +162,6 @@ function tunnelProxy(server, proxy) { if (options.port == config.port && util.isLocalAddress(ip)) { return emitError(new Error('Can not proxy to itself')); } - var opts = url.parse(tunnelUrl); - headers.host = opts.hostname + ':' + (opts.port || 443); var onConnect = function(_proxySocket) { proxySocket = _proxySocket; abortIfUnavailable(proxySocket); @@ -176,7 +173,9 @@ function tunnelProxy(server, proxy) { dstOptions.proxyPort = parseInt(options.port, 10); dstOptions.port = dstOptions.port || 443; dstOptions.host = dstOptions.hostname; - dstOptions.headers = headers; + var _headers = extend({}, headers); + _headers.host = dstOptions.hostname + ':' + (dstOptions.port || 443); + dstOptions.headers = _headers; if (isSocks) { dstOptions.proxyPort = options.port || 1080; dstOptions.localDNS = false;