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
Showing
- ctrl/sbbs.ini 19 additions, 1 deletionctrl/sbbs.ini
- src/sbbs3/answer.cpp 2 additions, 0 deletionssrc/sbbs3/answer.cpp
- src/sbbs3/getkey.cpp 12 additions, 10 deletionssrc/sbbs3/getkey.cpp
- src/sbbs3/inkey.cpp 1 addition, 1 deletionsrc/sbbs3/inkey.cpp
- src/sbbs3/js_console.cpp 22 additions, 20 deletionssrc/sbbs3/js_console.cpp
- src/sbbs3/main.cpp 24 additions, 2 deletionssrc/sbbs3/main.cpp
- src/sbbs3/newuser.cpp 1 addition, 0 deletionssrc/sbbs3/newuser.cpp
- src/sbbs3/sbbs.h 4 additions, 1 deletionsrc/sbbs3/sbbs.h
- src/sbbs3/sbbs_ini.c 13 additions, 1 deletionsrc/sbbs3/sbbs_ini.c
- src/sbbs3/scfg/scfgnode.c 0 additions, 30 deletionssrc/sbbs3/scfg/scfgnode.c
- src/sbbs3/scfg/scfgsys.c 48 additions, 0 deletionssrc/sbbs3/scfg/scfgsys.c
- src/sbbs3/scfg/scfgxtrn.c 28 additions, 0 deletionssrc/sbbs3/scfg/scfgxtrn.c
- src/sbbs3/scfgdefs.h 3 additions, 2 deletionssrc/sbbs3/scfgdefs.h
- src/sbbs3/scfglib1.c 2 additions, 2 deletionssrc/sbbs3/scfglib1.c
- src/sbbs3/scfglib2.c 1 addition, 0 deletionssrc/sbbs3/scfglib2.c
- src/sbbs3/scfgsave.c 3 additions, 2 deletionssrc/sbbs3/scfgsave.c
- src/sbbs3/startup.h 3 additions, 0 deletionssrc/sbbs3/startup.h
- src/sbbs3/text.h 1 addition, 0 deletionssrc/sbbs3/text.h
- src/sbbs3/text_defaults.c 1 addition, 0 deletionssrc/sbbs3/text_defaults.c
- src/sbbs3/xtrn_sec.cpp 4 additions, 0 deletionssrc/sbbs3/xtrn_sec.cpp
Loading