Handle subdomains #36
+6
-1
@@ -20,6 +20,10 @@ var argv = optimist
|
||||
default: 10,
|
||||
describe: 'maximum number of tcp sockets each client is allowed to establish at one time (the tunnels)'
|
||||
})
|
||||
.options('sub', {
|
||||
default: false,
|
||||
describe: 'use this flag to indicate that server runs in a subdomain'
|
||||
})
|
||||
.argv;
|
||||
|
||||
if (argv.help) {
|
||||
@@ -29,7 +33,8 @@ if (argv.help) {
|
||||
|
||||
var server = require('../server')({
|
||||
max_tcp_sockets: argv['max-sockets'],
|
||||
secure: argv.secure
|
||||
secure: argv.secure,
|
||||
sub: argv.sub,
|
||||
});
|
||||
|
||||
server.listen(argv.port, function() {
|
||||
|
||||
@@ -36,6 +36,9 @@ var stats = {
|
||||
tunnels: 0
|
||||
};
|
||||
|
||||
// are we serving from a subdomain?
|
||||
var sub = false;
|
||||
|
||||
function maybe_bounce(req, res, sock, head) {
|
||||
// without a hostname, we won't know who the request is for
|
||||
var hostname = req.headers.host;
|
||||
@@ -44,6 +47,12 @@ function maybe_bounce(req, res, sock, head) {
|
||||
}
|
||||
|
||||
var subdomain = tldjs.getSubdomain(hostname);
|
||||
// if we're serving from a subdomain do a proper check
|
||||
if (sub) {
|
||||
var subsub = (subdomain || '').split('.');
|
||||
subdomain = subsub.length > 1 ? subsub[0] : '';
|
||||
}
|
||||
|
||||
if (!subdomain) {
|
||||
return false;
|
||||
}
|
||||
@@ -181,6 +190,8 @@ module.exports = function(opt) {
|
||||
|
||||
var schema = opt.secure ? 'https' : 'http';
|
||||
|
||||
sub = opt.sub || false;
|
||||
|
||||
var app = express();
|
||||
|
||||
app.get('/', function(req, res, next) {
|
||||
|
||||
Reference in New Issue
Block a user