updated for node v8.x and ws 5.x

This commit is contained in:
AJ ONeal 2018-04-24 16:34:20 +00:00
parent 89718a8a07
commit 6b25c7e1f5
2 changed files with 11 additions and 8 deletions

View File

@ -96,7 +96,7 @@ program.ports.forEach(function (port) {
program.servernames = Object.keys(servernamesMap); program.servernames = Object.keys(servernamesMap);
if (!program.servernames.length) { if (!program.servernames.length) {
throw new Error('must specify at least one server or servername'); throw new Error('You must give this server at least one servername for its admin interface. Example:\n\n\t--servernames tunnel.example.com,tunnel.example.net');
} }
program.ports = Object.keys(portsMap); program.ports = Object.keys(portsMap);
@ -145,8 +145,8 @@ if (!program.email || !program.agreeTos) {
else { else {
program.greenlock = greenlock.create({ program.greenlock = greenlock.create({
//server: 'staging' version: 'draft-11'
server: 'https://acme-v01.api.letsencrypt.org/directory' , server: 'https://acme-v02.api.letsencrypt.org/directory'
, challenges: { , challenges: {
// TODO dns-01 // TODO dns-01

View File

@ -72,8 +72,9 @@ module.exports.create = function (copts) {
var activityTimeout = copts.activityTimeout || 2*60*1000; var activityTimeout = copts.activityTimeout || 2*60*1000;
var pongTimeout = copts.pongTimeout || 10*1000; var pongTimeout = copts.pongTimeout || 10*1000;
function onWsConnection(ws) { function onWsConnection(ws, upgradeReq) {
var socketId = packer.socketToId(ws.upgradeReq.socket); console.log(ws);
var socketId = packer.socketToId(upgradeReq.socket);
var remotes = {}; var remotes = {};
function logName() { function logName() {
@ -178,6 +179,7 @@ module.exports.create = function (copts) {
// domains and the list of all this websocket's remotes. // domains and the list of all this websocket's remotes.
token.deviceId = (token.device && (token.device.id || token.device.hostname)) || token.domains.join(','); token.deviceId = (token.device && (token.device.id || token.device.hostname)) || token.domains.join(',');
token.ws = ws; token.ws = ws;
token.upgradeReq = upgradeReq;
token.clients = {}; token.clients = {};
token.pausedConns = []; token.pausedConns = [];
@ -221,6 +223,7 @@ module.exports.create = function (copts) {
Devices.remove(deviceLists, domainname, remote); Devices.remove(deviceLists, domainname, remote);
}); });
remote.ws = null; remote.ws = null;
remote.upgradeReq = null;
// Close all of the existing browser connections associated with this websocket connection. // Close all of the existing browser connections associated with this websocket connection.
Object.keys(remote.clients).forEach(function (cid) { Object.keys(remote.clients).forEach(function (cid) {
@ -232,7 +235,7 @@ module.exports.create = function (copts) {
} }
var firstToken; var firstToken;
var authn = (ws.upgradeReq.headers.authorization||'').split(/\s+/); var authn = (upgradeReq.headers.authorization||'').split(/\s+/);
if (authn[0] && 'basic' === authn[0].toLowerCase()) { if (authn[0] && 'basic' === authn[0].toLowerCase()) {
try { try {
authn = new Buffer(authn[1], 'base64').toString('ascii').split(':'); authn = new Buffer(authn[1], 'base64').toString('ascii').split(':');
@ -240,7 +243,7 @@ module.exports.create = function (copts) {
} catch (err) { } } catch (err) { }
} }
if (!firstToken) { if (!firstToken) {
firstToken = url.parse(ws.upgradeReq.url, true).query.access_token; firstToken = url.parse(upgradeReq.url, true).query.access_token;
} }
if (firstToken) { if (firstToken) {
var err = addToken(firstToken); var err = addToken(firstToken);
@ -441,7 +444,7 @@ module.exports.create = function (copts) {
browserAddr.service = service; browserAddr.service = service;
var cid = packer.addrToId(browserAddr); var cid = packer.addrToId(browserAddr);
conn.tunnelCid = cid; conn.tunnelCid = cid;
console.log('[pipeWs] browser is', cid, 'home-cloud is', packer.socketToId(remote.ws.upgradeReq.socket)); console.log('[pipeWs] browser is', cid, 'home-cloud is', packer.socketToId(remote.upgradeReq.socket));
function sendWs(data, serviceOverride) { function sendWs(data, serviceOverride) {
if (remote.ws && (!conn.tunnelClosing || serviceOverride)) { if (remote.ws && (!conn.tunnelClosing || serviceOverride)) {