• ctrl/sbbs.ini src/sbbs3/answer.cpp getkey.cpp inkey.cpp js_console.cpp

    From Rob Swindell (in GitKraken)@VERT to Git commit to main/sbbs/master on Fri Mar 17 19:26:55 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/5167dd17365da1bc6cd47263
    Modified Files:
    ctrl/sbbs.ini src/sbbs3/answer.cpp getkey.cpp inkey.cpp js_console.cpp main.cpp newuser.cpp sbbs.h sbbs_ini.c src/sbbs3/scfg/scfgnode.c scfgsys.c scfgxtrn.c src/sbbs3/scfgdefs.h scfglib1.c scfglib2.c scfgsave.c startup.h text.h text_defaults.c xtrn_sec.cpp
    Log Message:
    Add terminal-client socket inactivity detection/disconnection

    - New keys in [BBS] section of sbbs.ini:
    MaxLoginInactivity (default: 10 minutes)
    MaxNewUserInactivity (default: 60 minutes)
    MaxSessionInactivity (default: none/unlimited)
    - Each configured external program/door in SCFG can have its own maximum inactivity setting (or else the session max inactivity is applied)
    - moved node-specific sec_hangup to system-wide/shared max_getkey_inactivity (configured in SCFG->System->Advanced)
    - moved node-specific sec_warn (seconds of inactivity before sending warning) to inactivity_warn (a percentage of elapsed max inactivity before sending warning), also configured in SCFG->System->Advanced and used for both socket and getkey inactivity detection
    - Renamed JS console.inactivity_hangup to console.max_getkey_inactivity (old name remains as alias)
    - Renamed JS console.timeout to console.last_getkey_activity (old name remains as alias)
    - Removed JS console.inactivity_warning
    - Added JS console.max_socket_inactivity (current input_thread inactivity threshold)
    - New text.dat string: InactivityAlert (just contains 3 ^G/BELLs by default) used for non-visual inactive-user warning

    The MaxLoginInactivity setting in particular solves the problem of custom scripts (e.g. animated pause prompts) that just poll indefinitely for user input and never time-out - these will no longer cause nodes to be tied-up with inactive/bot users at login.

    You may ask yourself, how did I get here? No, you may ask yourself: why configure these socket inactivity max values in sbbs.ini? The reason is consistency: sbbs.ini is where the MaxInactivity is configured for all the other TCP servers and services.

    This fixes issue #534 for Krueger in #synchronet

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net