Skip to content
Snippets Groups Projects
  1. Mar 21, 2023
    • Rob Swindell's avatar
      Remove the call to sync() from ansi_getlines() · d93e48b0
      Rob Swindell authored
      This was needed back in the v2 days to be sure the escape sequence was sent
      *after* an output buffer before might've been cleared by a user's abort/Ctrl-C
      action. SYNC/ASYNC called riosync() which called rioctl(TXSYNC) and we have no
      equivalent in Synchronet for TCP/IP (modern sbbs). A user's Ctrl-C will clear
      all pending I/O, but won't prevent subsequent output from being sent (until
      the abort condition is cleared) as used to be the case with serial I/O.
      d93e48b0
    • Rob Swindell's avatar
      Address MSVC warning: conversion from 'double' to 'unsigned int' · aa89e193
      Rob Swindell authored
      ... possible loss of data (yeah, yeah, we know)
      aa89e193
    • Rob Swindell's avatar
      Add GETDIM @-code to get the current ANSI terminal dimensions (rows and cols) · 9976fd9b
      Rob Swindell authored
      This code will do nothing if there's no user logged-in or their terminal is
      not ANSI or their terminal dimensions (rows and cols) are set to specific
      values (not auto-detected). This code does the same thing as calling JS
      console.getdimensions(). Since it waits (up to 5 seconds) for a CPR response
      from the terminal, this does potentially slow down output, so caveat emptor.
      
      This could be used by a sysop to address issue #529.
      9976fd9b
  2. Mar 20, 2023
  3. Mar 19, 2023
  4. Mar 18, 2023
    • Rob Swindell's avatar
      Add InactivityAlert · 5ba5d97a
      Rob Swindell authored
      5ba5d97a
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Apply inactive_hangup option (for dumb terminals) using max_socket_inactivity · b91e7771
      Rob Swindell authored
      this insures that inactive dumb (bot) connections will be disconnected even
      when using a script (e.g. animated pause prompt) that doesn't time-out.
      
      Also, if the connected node is the last node (for this sbbs instance), divide
      the socket inactivity timeout value in half.
      
      These changes (along with sbbs v3.20) should help with DOS (denial-of-service,
      not MS-DOS) prevention.
      
      Mainly for Krueger.
      b91e7771
    • Rob Swindell's avatar
      A few help text fixups. · cbe72e9c
      Rob Swindell authored
      cbe72e9c
    • Rob Swindell's avatar
      Add terminal-client socket inactivity detection/disconnection · 5167dd17
      Rob Swindell authored
      - 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
      5167dd17
    • Rob Swindell's avatar
      Use const doubles for time durations · 973b548f
      Rob Swindell authored
      Instead of copy/pasta. No change in function,.
      973b548f
  5. Mar 16, 2023
  6. Mar 15, 2023
  7. Mar 14, 2023
  8. Mar 13, 2023
Loading