diff --git a/exec/login.js b/exec/login.js index 31757f02ce85fbaefdfbd5b06faf8b8949302c1b..1af5fc75431a9b99fff480451c804d3105a13773 100644 --- a/exec/login.js +++ b/exec/login.js @@ -22,10 +22,17 @@ var guest = options.guest && system.matchuser("guest"); if(!bbs.online) exit(); -if(!(console.autoterm&(USER_ANSI | USER_PETSCII | USER_UTF8))) { - console.inactivity_hangup = parseInt(options.inactive_hangup, 10); - log(LOG_NOTICE, "terminal not detected, reducing inactivity hang-up timeout to " + console.inactivity_hangup + " seconds"); +var inactive_hangup = parseInt(options.inactive_hangup, 10); +if(inactive_hangup && inactive_hangup < console.max_socket_inactivity + && !(console.autoterm&(USER_ANSI | USER_PETSCII | USER_UTF8))) { + console.max_socket_inactivity = inactive_hangup; + log(LOG_NOTICE, "terminal not detected, reducing inactivity hang-up timeout to " + console.max_socket_inactivity + " seconds"); } +if(console.max_socket_inactivity > 0 && bbs.node_num == bbs.last_node) { + console.max_socket_inactivity /= 2; + log(LOG_NOTICE, "last node login inactivity timeout reduced to " + console.max_socket_inactivity); +} + for(var c=0; c < options.login_prompts; c++) { // The "node sync" is required for sysop interruption/chat/etc.