fix protocol and default port detection on node 0.12.x, compatible with 0.10.x

This commit is contained in:
Jeremy Judeaux 2015-04-02 14:23:58 +02:00
parent 0ee314c436
commit 5f14bcaa70
3 changed files with 16 additions and 3 deletions

View File

@ -134,7 +134,20 @@ common.getPort = function(req) {
return res ?
res[1] :
req.connection.pair ? '443' : '80';
common.hasEncryptedConnection(req) ? '443' : '80';
};
/**
* Check if the request has an encrypted connection.
*
* @param {Request} req Incoming HTTP request.
*
* @return {Boolean} Whether the connection is encrypted or not.
*
* @api private
*/
common.hasEncryptedConnection = function(req) {
return Boolean(req.connection.encrypted || req.connection.pair);
};
/**

View File

@ -64,7 +64,7 @@ web_o = Object.keys(web_o).map(function(pass) {
function XHeaders(req, res, options) {
if(!options.xfwd) return;
var encrypted = req.isSpdy || req.connection.encrypted || req.connection.pair;
var encrypted = req.isSpdy || common.hasEncryptedConnection(req);
var values = {
for : req.connection.remoteAddress || req.socket.remoteAddress,
port : common.getPort(req),

View File

@ -57,7 +57,7 @@ var passes = exports;
var values = {
for : req.connection.remoteAddress || req.socket.remoteAddress,
port : common.getPort(req),
proto: req.connection.pair ? 'wss' : 'ws'
proto: common.hasEncryptedConnection(req) ? 'wss' : 'ws'
};
['for', 'port', 'proto'].forEach(function(header) {