Merge branch '0.0.9-alpha' of github.com:NuSkooler/enigma-bbs into 0.0.10-alpha

This commit is contained in:
Bryan Ashby 2019-04-23 18:17:54 -06:00
commit 826e5fc0f1
No known key found for this signature in database
GPG Key ID: B49EB437951D2542
2 changed files with 31 additions and 12 deletions

View File

@ -84,6 +84,22 @@ exports.getModule = class AbracadabraModule extends MenuModule {
* Font support ala all other menus... or does this just work? * Font support ala all other menus... or does this just work?
*/ */
incrementActiveDoorNodeInstances() {
if(activeDoorNodeInstances[this.config.name]) {
activeDoorNodeInstances[this.config.name] += 1;
} else {
activeDoorNodeInstances[this.config.name] = 1;
}
this.activeDoorInstancesIncremented = true;
}
decrementActiveDoorNodeInstances() {
if(true === this.activeDoorInstancesIncremented) {
activeDoorNodeInstances[this.config.name] -= 1;
this.activeDoorInstancesIncremented = false;
}
}
initSequence() { initSequence() {
const self = this; const self = this;
@ -116,14 +132,8 @@ exports.getModule = class AbracadabraModule extends MenuModule {
}); });
} }
} else { } else {
// :TODO: JS elegant way to do this? self.incrementActiveDoorNodeInstances();
if(activeDoorNodeInstances[self.config.name]) { return callback(null);
activeDoorNodeInstances[self.config.name] += 1;
} else {
activeDoorNodeInstances[self.config.name] = 1;
}
callback(null);
} }
}, },
function prepareDoor(callback) { function prepareDoor(callback) {
@ -169,6 +179,13 @@ exports.getModule = class AbracadabraModule extends MenuModule {
this.doorInstance.run(exeInfo, () => { this.doorInstance.run(exeInfo, () => {
trackDoorRunEnd(doorTracking); trackDoorRunEnd(doorTracking);
this.decrementActiveDoorNodeInstances();
// client may have disconnected while process was active -
// we're done here if so.
if(!this.client.term.output) {
return;
}
// //
// Try to clean up various settings such as scroll regions that may // Try to clean up various settings such as scroll regions that may
@ -188,9 +205,7 @@ exports.getModule = class AbracadabraModule extends MenuModule {
leave() { leave() {
super.leave(); super.leave();
if(!this.lastError) { this.decrementActiveDoorNodeInstances();
activeDoorNodeInstances[this.config.name] -= 1;
}
} }
finishedLoading() { finishedLoading() {

View File

@ -40,6 +40,10 @@ module.exports = class LoginServerModule extends ServerModule {
} }
handleNewClient(client, clientSock, modInfo) { handleNewClient(client, clientSock, modInfo) {
clientSock.on('error', err => {
logger.log.warn({ modInfo, error : err.message }, 'Client socket error');
});
// //
// Start tracking the client. A session ID aka client ID // Start tracking the client. A session ID aka client ID
// will be established in addNewClient() below. // will be established in addNewClient() below.
@ -68,7 +72,7 @@ module.exports = class LoginServerModule extends ServerModule {
}); });
client.on('error', err => { client.on('error', err => {
logger.log.info({ clientId : client.session.id }, 'Connection error: %s' % err.message); logger.log.info({ clientId : client.session.id, error : err.message }, 'Connection error');
}); });
client.on('close', err => { client.on('close', err => {