diff --git a/core/abracadabra.js b/core/abracadabra.js index 34374049..36a58544 100644 --- a/core/abracadabra.js +++ b/core/abracadabra.js @@ -170,6 +170,12 @@ exports.getModule = class AbracadabraModule extends MenuModule { this.doorInstance.run(exeInfo, () => { trackDoorRunEnd(doorTracking); + // 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 // have been set within the door diff --git a/core/login_server_module.js b/core/login_server_module.js index 041f317c..a08abfe9 100644 --- a/core/login_server_module.js +++ b/core/login_server_module.js @@ -40,6 +40,10 @@ module.exports = class LoginServerModule extends ServerModule { } 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 // will be established in addNewClient() below. @@ -68,7 +72,7 @@ module.exports = class LoginServerModule extends ServerModule { }); 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 => {