nodules / asker

http.request wrapper with gzip, request retries and http.Agent tuning
MIT License
93 stars 11 forks source link

TLS options doesn't work with custom agent in Node.js < 0.12 #120

Closed narqo closed 8 years ago

narqo commented 8 years ago

WIP! Waiting for tests!

Node.js<0.12 creates a new Agent for https request if tls options are passed.

If user specifies her custom agent (or agent properties in our case), this agent should deal with TLS options by itself.

This patch is only necessary for Node.js=0.10 but should not affect modern versions.

› ~/.local/opt/node-v0.10/bin/node -e "require('./')({ protocol:'https:', /*···*/ ca: require('fs').readFileSync('./MyInternalRootCA.pem') }, function(err, res) { console.error(err); console.log(res ? res.statusCode : '?') })"
null
200

› ~/.local/opt/node-v0.12/bin/node -e "require('./')({ protocol:'https:', /*···*/ ca: require('fs').readFileSync('./MyInternalRootCA.pem') }, function(err, res) { console.error(err); console.log(res ? res.statusCode : '?') })"
null
200

› ~/.local/opt/node-v4/bin/node -e "require('./')({ protocol:'https:', /*···*/ ca: require('fs').readFileSync('./MyInternalRootCA.pem') }, function(err, res) { console.error(err); console.log(res ? res.statusCode : '?') })"
null
200

› ~/.local/opt/node-v0.10/bin/node -e "require('./')({ protocol:'https:', /*···*/ rejectUnauthorized: false }, function(err, res) { console.error(err); console.log(res ? res.statusCode : '?') })"
null
200
narqo commented 8 years ago

:dancer:

Flackus commented 8 years ago

:8ball: