Sub host options: ala whitecolor #82
@@ -2,3 +2,8 @@ language: node_js
|
||||
sudo: false
|
||||
node_js:
|
||||
- "9.2"
|
||||
addons:
|
||||
hosts:
|
||||
- host
|
||||
- sub.host
|
||||
- nested.sub.host
|
||||
@@ -12,17 +12,20 @@ const debug = Debug('localtunnel:server');
|
||||
|
||||
function GetClientIdFromHostname(hostname,opt) {
|
||||
let subdomain = tldjs.getSubdomain(hostname);
|
||||
|
||||
if (subdomain && opt.subHost) {
|
||||
const _subdomain = subdomain.replace(/\./g,'');
|
||||
const subHosts = Array.isArray(opt.subHost)
|
||||
? opt.subHost : [opt.subHost]
|
||||
const subHost = subHosts.reduce((found, sub) => {
|
||||
return found + (_subdomain.includes(sub) ? sub : '');
|
||||
sub = sub.replace(/\./g,'');
|
||||
return found + (_subdomain.includes(sub) ? sub : sub.includes(_subdomain) ? sub : '');
|
||||
},'')
|
||||
subdomain = subHost.length > 0
|
||||
? _subdomain.slice(0, -(subHost.length))
|
||||
: subdomain
|
||||
}
|
||||
|
||||
return subdomain;
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -70,14 +70,14 @@ test('should respond to request', function(done) {
|
||||
});
|
||||
test('set up localtunnel client (sub-host)', function (done) {
|
||||
var opt = {
|
||||
host: 'http://nested.sub.localhost:' + lt_server_port,
|
||||
host: 'http://nested.sub.host:' + lt_server_port,
|
||||
subdomain: 'txy-z'
|
||||
};
|
||||
|
||||
localtunnel(test._fake_port, opt, function (err, tunnel) {
|
||||
assert.ifError(err);
|
||||
var url = tunnel.url;
|
||||
assert.ok(new RegExp('^http:\/\/.*nested.sub.localhost:' + lt_server_port + '$').test(url));
|
||||
assert.ok(new RegExp('^http:\/\/.*nested.sub.host:' + lt_server_port + '$').test(url));
|
||||
test._fake_url = url;
|
||||
done(err);
|
||||
});
|
||||
@@ -86,7 +86,7 @@ test('set up localtunnel client (sub-host)', function (done) {
|
||||
test('should respond to request (sub-host)', function (done) {
|
||||
var hostname = url.parse(test._fake_url).hostname;
|
||||
var opt = {
|
||||
host: 'nested.sub.localhost',
|
||||
host: 'nested.sub.host',
|
||||
port: lt_server_port,
|
||||
headers: {
|
||||
host: hostname + '.tld'
|
||||
|
||||
+3
-3
@@ -75,13 +75,13 @@ test('websocket server request', function(done) {
|
||||
});
|
||||
test('set up localtunnel client (sub host)', function (done) {
|
||||
var opt = {
|
||||
host: 'http://sub.localhost:' + lt_server_port
|
||||
host: 'http://sub.host:' + lt_server_port
|
||||
};
|
||||
|
||||
localtunnel(test._fake_port, opt, function (err, tunnel) {
|
||||
assert.ifError(err);
|
||||
var url = tunnel.url;
|
||||
assert.ok(new RegExp('^http:\/\/.*sub.localhost:' + lt_server_port + '$').test(url));
|
||||
assert.ok(new RegExp('^http:\/\/.*sub.host:' + lt_server_port + '$').test(url));
|
||||
test._fake_url = url;
|
||||
done(err);
|
||||
});
|
||||
@@ -89,7 +89,7 @@ test('set up localtunnel client (sub host)', function (done) {
|
||||
|
||||
test('websocket server request (sub-host)', function (done) {
|
||||
var hostname = url.parse(test._fake_url).hostname;
|
||||
var ws = new WebSocket('http://sub.localhost:' + lt_server_port, {
|
||||
var ws = new WebSocket('http://sub.host:' + lt_server_port, {
|
||||
headers: {
|
||||
host: hostname + '.tld'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user