fix #2
This commit is contained in:
parent
b3abd291e7
commit
699a97a902
4
index.js
4
index.js
|
@ -26,6 +26,10 @@ module.exports = function (opts) {
|
|||
|
||||
var url = req.url;
|
||||
var host = req.headers.host || '';
|
||||
if (!/:\d+/.test(host) && 443 !== opts.port) {
|
||||
// we are using standard port 80, but we aren't using standard port 443
|
||||
host += ':80';
|
||||
}
|
||||
var newLocation = 'https://'
|
||||
+ host.replace(/:\d+/, ':' + opts.port) + url
|
||||
;
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
'use strict';
|
||||
|
||||
var opts = { port: 0 };
|
||||
var redirect = require('./')(opts);
|
||||
|
||||
function r80to443() {
|
||||
// using port 80 and 443
|
||||
opts.port = 443;
|
||||
var req = { connection: {}, headers: { host: 'example.com' }, url: '/path/to/somewhere.html' };
|
||||
var res = {
|
||||
setHeader: function () {}
|
||||
, end: function (body) {
|
||||
if (!/:/.test(body)) {
|
||||
throw new Error("test didn't pass with port 80 redirecting to 443");
|
||||
}
|
||||
console.log('PASS: 80 to 443');
|
||||
}
|
||||
};
|
||||
var next = function () {};
|
||||
redirect(req, res, next);
|
||||
}
|
||||
|
||||
function r80to8443() {
|
||||
// using port 80, but not 443
|
||||
opts.port = 8443;
|
||||
var req = { connection: {}, headers: { host: 'example.com' }, url: '/path/to/somewhere.html' };
|
||||
var res = {
|
||||
setHeader: function () {}
|
||||
, end: function (body) {
|
||||
if (!/:8443/.test(body)) {
|
||||
throw new Error("test didn't pass with port 80 redirecting to non-443");
|
||||
}
|
||||
console.log('PASS: 80 to 8443');
|
||||
}
|
||||
};
|
||||
var next = function () {};
|
||||
redirect(req, res, next);
|
||||
}
|
||||
|
||||
function r4080to8443() {
|
||||
// using port 80 and 443
|
||||
opts.port = 8443;
|
||||
var req = { connection: {}, headers: { host: 'example.com:4080' }, url: '/path/to/somewhere.html' };
|
||||
var res = {
|
||||
setHeader: function () {}
|
||||
, end: function (body) {
|
||||
if (!/:8443/.test(body)) {
|
||||
throw new Error("test didn't pass with port 4080 redirecting to 8443");
|
||||
}
|
||||
console.log('PASS: 4080 to 8443');
|
||||
}
|
||||
};
|
||||
var next = function () {};
|
||||
redirect(req, res, next);
|
||||
}
|
||||
|
||||
function r4080to443() {
|
||||
// using port 80 and 443
|
||||
opts.port = 8443;
|
||||
var req = { connection: {}, headers: { host: 'example.com:4080' }, url: '/path/to/somewhere.html' };
|
||||
var res = {
|
||||
setHeader: function () {}
|
||||
, end: function (body) {
|
||||
if (/:/.test(body)) {
|
||||
throw new Error("test didn't pass with port 4080 redirecting to 8443");
|
||||
}
|
||||
console.log('PASS: 4080 to 8443');
|
||||
}
|
||||
};
|
||||
var next = function () {};
|
||||
redirect(req, res, next);
|
||||
}
|
||||
|
||||
r80to443();
|
||||
r80to8443();
|
||||
r4080to8443();
|
||||
//r4080to443();
|
Loading…
Reference in New Issue