Skip to content

Commit 8c2a459

Browse files
author
kanhaiya
committed
Proxy fix Refactor code
1 parent a3f0e2f commit 8c2a459

File tree

4 files changed

+37
-70
lines changed

4 files changed

+37
-70
lines changed

lib/config.js

Lines changed: 4 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,11 @@ var httpTunnelConfigPath =
33
httpTunnelLogUrl = 'https://oinwgsy681.execute-api.us-east-1.amazonaws.com/prod/addLog',
44
https = require('https'),
55
urlParse = require('url'),
6-
HttpsProxyAgent = require('https-proxy-agent');
6+
HttpsProxyAgent = require('https-proxy-agent'),
7+
util = require('./util');
78
module.exports = function(options, fnCallback) {
89
var reqOptions = urlParse.parse(httpTunnelConfigPath);
9-
var proxyOpts = {};
10-
if (options.proxyHost && options.proxyPort) {
11-
proxyOpts = {
12-
host: options.proxyHost,
13-
port: options.proxyPort
14-
};
15-
} else if (process.env.http_proxy) {
16-
proxyOpts = urlParse.parse(process.env.http_proxy);
17-
}
18-
if ((options.proxyUser && !options.proxyPass) || (!options.proxyUser && options.proxyPass)) {
19-
throw Error('proxyUser and proxyPass must be both or none');
20-
} else if (options.proxyUser && options.proxyPass) {
21-
if (Object.keys(proxyOpts).length) {
22-
proxyOpts.auth = options.proxyUser + ':' + options.proxyPass;
23-
}
24-
}
10+
var proxyOpts = util.getProxyOpts_(options);
2511
if (Object.keys(proxyOpts).length) {
2612
reqOptions.agent = new HttpsProxyAgent(proxyOpts);
2713
}
@@ -91,26 +77,7 @@ function setupLogger_(options, jsonResponse) {
9177
'Content-Length': data.length
9278
}
9379
};
94-
95-
var proxyOpts = {};
96-
if (options.proxyHost && options.proxyPort) {
97-
proxyOpts = {
98-
host: options.proxyHost,
99-
port: options.proxyPort
100-
};
101-
} else if (process.env.http_proxy) {
102-
proxyOpts = urlParse.parse(process.env.http_proxy);
103-
}
104-
if (
105-
(options.proxyUser && !options.proxyPass) ||
106-
(!options.proxyUser && options.proxyPass)
107-
) {
108-
throw Error('proxyUser and proxyPass must be both or none');
109-
} else if (options.proxyUser && options.proxyPass) {
110-
if (Object.keys(proxyOpts).length) {
111-
proxyOpts.auth = options.proxyUser + ':' + options.proxyPass;
112-
}
113-
}
80+
var proxyOpts = util.getProxyOpts_(options);
11481
if (Object.keys(proxyOpts).length) {
11582
reqOptions.agent = new HttpsProxyAgent(proxyOpts);
11683
}

lib/tunnel.js

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var childProcess = require('child_process'),
55
http = require('http'),
66
urlParse = require('url'),
77
HttpsProxyAgent = require('https-proxy-agent'),
8+
util = require('./util'),
89
getPort = require('get-port'),
910
os = require('os'),
1011
logger,
@@ -403,23 +404,7 @@ function verifyToken_(options, fnCallback) {
403404
version: packageVersion
404405
}
405406
};
406-
407-
var proxyOpts = {};
408-
if (options.proxyHost && options.proxyPort) {
409-
proxyOpts = {
410-
host: options.proxyHost,
411-
port: options.proxyPort
412-
};
413-
} else if (process.env.http_proxy) {
414-
proxyOpts = urlParse.parse(process.env.http_proxy);
415-
}
416-
if ((options.proxyUser && !options.proxyPass) || (!options.proxyUser && options.proxyPass)) {
417-
throw Error('proxyUser and proxyPass must be both or none');
418-
} else if (options.proxyUser && options.proxyPass) {
419-
if (Object.keys(proxyOpts).length) {
420-
proxyOpts.auth = options.proxyUser + ':' + options.proxyPass;
421-
}
422-
}
407+
var proxyOpts = util.getProxyOpts_(options);
423408
if (Object.keys(proxyOpts).length) {
424409
reqOptions.agent = new HttpsProxyAgent(proxyOpts);
425410
}

lib/tunnel_binary.js

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ var localTunnelConfig_ = require('./conf/node-tunnel-config.json'),
33
https = require('https'),
44
urlParse = require('url'),
55
HttpsProxyAgent = require('https-proxy-agent'),
6+
util = require('./util'),
67
unzip = require('unzipper'),
78
fs = require('fs'),
89
path = require('path'),
@@ -91,22 +92,7 @@ function TunnelBinary(httpTunnelConfig) {
9192
var self = this;
9293
// Set Proxy If User passed this to in arguments.
9394
var options = urlParse.parse(this.httpPath);
94-
var proxyOpts = {};
95-
if (conf.proxyHost && conf.proxyPort) {
96-
proxyOpts = {
97-
host: conf.proxyHost,
98-
port: conf.proxyPort
99-
};
100-
} else if (process.env.http_proxy) {
101-
proxyOpts = urlParse.parse(process.env.http_proxy);
102-
}
103-
if ((conf.proxyUser && !conf.proxyPass) || (!conf.proxyUser && conf.proxyPass)) {
104-
throw Error('proxyUser and proxyPass must be both or none');
105-
} else if (conf.proxyUser && conf.proxyPass) {
106-
if (Object.keys(proxyOpts).length) {
107-
proxyOpts.auth = conf.proxyUser + ':' + conf.proxyPass;
108-
}
109-
}
95+
var proxyOpts = util.getProxyOpts_(conf);
11096
if (Object.keys(proxyOpts).length) {
11197
options.agent = new HttpsProxyAgent(proxyOpts);
11298
}

lib/util.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
var urlParse = require('url');
2+
module.exports = {
3+
getProxyOpts_
4+
};
5+
6+
/**
7+
* getProxyOpts_ is used to configre request
8+
* @param {Object} options.
9+
* @return {Object|Error} Return proxyOpts
10+
*/
11+
function getProxyOpts_(options) {
12+
var proxyOpts = {};
13+
if (options.proxyHost && options.proxyPort) {
14+
proxyOpts = {
15+
host: options.proxyHost,
16+
port: options.proxyPort
17+
};
18+
} else if (process.env.http_proxy) {
19+
proxyOpts = urlParse.parse(process.env.http_proxy);
20+
}
21+
if ((options.proxyUser && !options.proxyPass) || (!options.proxyUser && options.proxyPass)) {
22+
throw Error('proxyUser and proxyPass must be both or none');
23+
} else if (options.proxyUser && options.proxyPass) {
24+
if (Object.keys(proxyOpts).length) {
25+
proxyOpts.auth = options.proxyUser + ':' + options.proxyPass;
26+
}
27+
}
28+
return proxyOpts
29+
}

0 commit comments

Comments
 (0)