[fix] use simple regex instead of indexOf to check the protocol to support without the colon fixes #711

This commit is contained in:
Jarrett Cruger 2014-12-08 23:04:23 -05:00
parent 2086e4917c
commit c04485671a
2 changed files with 10 additions and 4 deletions

View File

@ -3,7 +3,13 @@ var common = exports,
extend = require('util')._extend, extend = require('util')._extend,
required = require('requires-port'); required = require('requires-port');
var upgradeHeader = /(^|,)\s*upgrade\s*($|,)/i; var upgradeHeader = /(^|,)\s*upgrade\s*($|,)/i,
isSSL = /^https|wss/;
/**
* Simple Regex for testing if protocol is https
*/
common.isSSL = isSSL;
/** /**
* Copies the right headers from `options` and `req` to * Copies the right headers from `options` and `req` to
* `outgoing` which is then used to fire the proxied * `outgoing` which is then used to fire the proxied
@ -26,7 +32,7 @@ var upgradeHeader = /(^|,)\s*upgrade\s*($|,)/i;
common.setupOutgoing = function(outgoing, options, req, forward) { common.setupOutgoing = function(outgoing, options, req, forward) {
outgoing.port = options[forward || 'target'].port || outgoing.port = options[forward || 'target'].port ||
(~['https:', 'wss:'].indexOf(options[forward || 'target'].protocol) ? 443 : 80); (isSSL.test(options[forward || 'target'].protocol) ? 443 : 80);
['host', 'hostname', 'socketPath'].forEach( ['host', 'hostname', 'socketPath'].forEach(
function(e) { outgoing[e] = options[forward || 'target'][e]; } function(e) { outgoing[e] = options[forward || 'target'][e]; }
@ -39,7 +45,7 @@ common.setupOutgoing = function(outgoing, options, req, forward) {
extend(outgoing.headers, options.headers); extend(outgoing.headers, options.headers);
} }
if (~['https:', 'wss:'].indexOf(options[forward || 'target'].protocol)) { if (isSSL.test(options[forward || 'target'].protocol)) {
outgoing.rejectUnauthorized = (typeof options.secure === "undefined") ? true : options.secure; outgoing.rejectUnauthorized = (typeof options.secure === "undefined") ? true : options.secure;
} }

View File

@ -84,7 +84,7 @@ var passes = exports;
if (head && head.length) socket.unshift(head); if (head && head.length) socket.unshift(head);
var proxyReq = (~['https:', 'wss:'].indexOf(options.target.protocol) ? https : http).request( var proxyReq = (common.isSSL.test(options.target.protocol) ? https : http).request(
common.setupOutgoing(options.ssl || {}, options, req) common.setupOutgoing(options.ssl || {}, options, req)
); );
// Error Handler // Error Handler