Skip to content

Commit 8453fbc

Browse files
skenqbxindutny
authored andcommitted
https: don't overwrite servername option
PR-URL: #1110 Reviewed-By: Fedor Indutny <[email protected]> Reviewed-By: Jeremiah Senkpiel <[email protected]>
1 parent 60dac07 commit 8453fbc

File tree

2 files changed

+47
-5
lines changed

2 files changed

+47
-5
lines changed

lib/_http_agent.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -160,11 +160,13 @@ Agent.prototype.createSocket = function(req, options) {
160160
options = util._extend({}, options);
161161
options = util._extend(options, self.options);
162162

163-
options.servername = options.host;
164-
if (req) {
165-
var hostHeader = req.getHeader('host');
166-
if (hostHeader) {
167-
options.servername = hostHeader.replace(/:.*$/, '');
163+
if (!options.servername) {
164+
options.servername = options.host;
165+
if (req) {
166+
var hostHeader = req.getHeader('host');
167+
if (hostHeader) {
168+
options.servername = hostHeader.replace(/:.*$/, '');
169+
}
168170
}
169171
}
170172

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
var common = require('../common');
2+
var assert = require('assert');
3+
4+
if (!common.hasCrypto) {
5+
console.log('1..0 # Skipped: missing crypto');
6+
process.exit();
7+
}
8+
9+
var https = require('https');
10+
var fs = require('fs');
11+
12+
var options = {
13+
key: fs.readFileSync(common.fixturesDir + '/keys/agent1-key.pem'),
14+
cert: fs.readFileSync(common.fixturesDir + '/keys/agent1-cert.pem'),
15+
ca: fs.readFileSync(common.fixturesDir + '/keys/ca1-cert.pem')
16+
};
17+
18+
19+
var server = https.Server(options, function(req, res) {
20+
res.writeHead(200);
21+
res.end('hello world\n');
22+
});
23+
24+
25+
server.listen(common.PORT, function() {
26+
https.get({
27+
path: '/',
28+
port: common.PORT,
29+
rejectUnauthorized: true,
30+
servername: 'agent1',
31+
ca: options.ca
32+
}, function(res) {
33+
res.resume();
34+
console.log(res.statusCode);
35+
server.close();
36+
}).on('error', function(e) {
37+
console.log(e.message);
38+
process.exit(1);
39+
});
40+
});

0 commit comments

Comments
 (0)