v0.20.1: cleanup restart

This commit is contained in:
AJ ONeal 2018-09-16 00:16:43 -06:00
parent a6527d30a6
commit 42d558b85e
3 changed files with 33 additions and 24 deletions

View File

@ -480,26 +480,32 @@ function serveControlsHelper() {
} }
function restart() { function restart() {
console.info("[telebitd.js] server closing...");
state.keepAlive.state = false;
if (myRemote) {
myRemote.end();
myRemote.on('end', respondAndClose);
// failsafe // failsafe
setTimeout(function () { setTimeout(function () {
res.setHeader('Content-Type', 'application/json'); console.info("[telebitd.js] closing too slowly, force quit");
res.end(JSON.stringify({ success: true })); respondAndClose();
setTimeout(function () {
process.exit(33);
}, 500);
}, 5 * 1000); }, 5 * 1000);
} else {
respondAndClose();
}
if (myRemote) { myRemote.end(); } function respondAndClose() {
controlServer.close(function () {
res.setHeader('Content-Type', 'application/json'); res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify({ success: true })); res.end(JSON.stringify({ success: true }));
controlServer.close(function () {
console.info("[telebitd.js] server closed");
setTimeout(function () { setTimeout(function () {
// system daemon will restart the process // system daemon will restart the process
process.exit(22); // use non-success exit code process.exit(22); // use non-success exit code
}, 500); }, 100);
}); });
} }
}
function invalidConfig() { function invalidConfig() {
res.statusCode = 400; res.statusCode = 400;
@ -689,8 +695,10 @@ function serveControls() {
} }
console.info("[info] connecting with stored token"); console.info("[info] connecting with stored token");
return safeStartTelebitRemote().catch(function (/*err*/) { return safeStartTelebitRemote().catch(function (err) {
// ignore, it'll keep looping anyway // ignore, it'll keep looping anyway
console.warn("[debug] error that (supposedly) shouldn't matter:");
console.warn(err);
}); });
} }
@ -806,18 +814,19 @@ function safeStartTelebitRemote(forceOn) {
// this won't restart either // this won't restart either
trPromise = rawStartTelebitRemote(state.keepAlive); trPromise = rawStartTelebitRemote(state.keepAlive);
trPromise.then(function () { trPromise.then(function () {
//console.log("I'm RIGHT HERE!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); console.log("[debug] success on raw start, keepAlive = true");
state.keepAlive.state = true; state.keepAlive.state = true;
trPromise = null; trPromise = null;
}).catch(function () { }).catch(function () {
//console.log("I FAILED US ALL!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); console.log("[debug] failure on raw start, { keepAlive = true }");
// this will restart // this will restart
state.keepAlive = { state: true }; state.keepAlive = { state: true };
trPromise = rawStartTelebitRemote(state.keepAlive); trPromise = rawStartTelebitRemote(state.keepAlive);
trPromise.then(function () { trPromise.then(function () {
console.log("[debug] success on 2nd start keepAlive:", state.keepAlive.state);
trPromise = null; trPromise = null;
}).catch(function () { }).catch(function () {
//console.log('DEBUG state.keepAlive turned off and remote quit'); console.log("[debug] failure on 2nd start. keepAlive", state.keepAlive.state);
trPromise = null; trPromise = null;
}); });
}); });

View File

@ -472,12 +472,12 @@ function TelebitRemote(state) {
priv.timeoutId = null; priv.timeoutId = null;
var machine = Packer.create(packerHandlers); var machine = Packer.create(packerHandlers);
console.info("[connect] '" + (state.wss || state.relay) + "'"); console.info("[telebit:lib/remote.js] [connect] '" + (state.wss || state.relay) + "'");
var tunnelUrl = (state.wss || state.relay).replace(/\/$/, '') + '/'; // + auth; var tunnelUrl = (state.wss || state.relay).replace(/\/$/, '') + '/'; // + auth;
wstunneler = new WebSocket(tunnelUrl, { rejectUnauthorized: !state.insecure }); wstunneler = new WebSocket(tunnelUrl, { rejectUnauthorized: !state.insecure });
// XXXXXX // XXXXXX
wstunneler.on('open', function () { wstunneler.on('open', function () {
console.info("[open] connected to '" + (state.wss || state.relay) + "'"); console.info("[telebit:lib/remote.js] [open] connected to '" + (state.wss || state.relay) + "'");
me.emit('connect'); me.emit('connect');
priv.refreshTimeout(); priv.refreshTimeout();
priv.timeoutId = setTimeout(priv.checkTimeout, activityTimeout); priv.timeoutId = setTimeout(priv.checkTimeout, activityTimeout);

View File

@ -1,6 +1,6 @@
{ {
"name": "telebit", "name": "telebit",
"version": "0.20.0-wip", "version": "0.20.1-wip",
"description": "Break out of localhost. Connect to any device from anywhere over any tcp port or securely in a browser. A secure tunnel. A poor man's reverse VPN.", "description": "Break out of localhost. Connect to any device from anywhere over any tcp port or securely in a browser. A secure tunnel. A poor man's reverse VPN.",
"main": "lib/remote.js", "main": "lib/remote.js",
"files": [ "files": [