diff --git a/lib/caronte/passes/ws.js b/lib/caronte/passes/ws.js index 63a4dee..baf13a7 100644 --- a/lib/caronte/passes/ws.js +++ b/lib/caronte/passes/ws.js @@ -1,10 +1,11 @@ var http = require('http'), + https = require('https'), common = require('../common'), passes = exports; /*! * Array of passes. - * + * * A `pass` is just a function that is executed on `req, socket, options` * so that you can easily add new checks while still keeping the base * flexible. @@ -60,7 +61,7 @@ function XHeaders(req, socket, options) { }; ['for', 'port', 'proto'].forEach(function(header) { - req.headers['x-forwarded-' + header] = + req.headers['x-forwarded-' + header] = (req.headers['x-forwarded-' + header] || '') + (req.headers['x-forwarded-' + header] ? ',' : '') + values[header] @@ -74,10 +75,10 @@ function XHeaders(req, socket, options) { function stream(req, socket, options, head) { common.setupSocket(socket); - var proxyReq = http.request( + var proxyReq = (options.ssl ? https : http).request( common.setupOutgoing(options.ssl || {}, options, req) ); - + proxyReq.on('upgrade', function(proxyRes, proxySocket, proxyHead) { common.setupSocket(proxySocket); @@ -95,5 +96,5 @@ function stream(req, socket, options, head) { ] // <-- .forEach(function(func) { - passes[func.name] = func; + passes[func.name] = func; });