• src/sbbs3/main.cpp

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Fri Aug 14 19:14:44 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/903d316dda30b9278dbbf943
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Terminal server: don't report a session teardown as an SSH error

    hangup() destroys the cryptlib session while input_thread sits between
    its ssh_mode test and its crypt_pop_channel_data() call, so the pop can
    fail on a handle that is already gone. The status is normally CRYPT_ERROR_PARAM1, which GCES logs at LOG_ERR:

    Node 11 SSH ERROR 'Bad argument, parameter 1' (-1) popping data

    Every clean SSH disconnect therefore produced a line that reads like a
    failure. Five days of terminal-server logs on Vertrauen held 355 of
    them, each immediately preceded by a teardown message (disconnecting
    client, passthru socket disconnected, passthru or output thread
    terminated) and none on a live session. The noise imitates the genuine mid-session drops tracked in #1225, which makes those logs harder to
    read.

    Detect the already-terminating session and log it at LOG_DEBUG instead.
    The node was being torn down either way, so only the severity changes;
    an error arriving while the session is still up is still reported
    through GCES.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Steven Philley@1:103/705 to Git commit to main/sbbs/master on Fri Sep 11 16:21:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/22bdbbb9d0a7097743e74216
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Terminal server: record authenticated user in node#/client.ini
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Fri Sep 11 16:21:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e0a6097338d34744b9a0b16d
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Merge branch 'client-ini-authenticated-user-1179' into 'master'

    Terminal server: record authenticated user in node#/client.ini

    Closes #1179

    See merge request main/sbbs!734
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Tue Oct 27 10:48:53 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c42d0dc07c40a611a54f9b33
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Close an sbbs_t's log file after its last log line, not before

    The destructor closed logfile_fp, then logged "destructor end" (under
    _DEBUG). For an event thread instance, lputs() lazily reopens
    data/events.log into logfile_fp, so that final line reopened the file
    and the object was destroyed with it open: one stdio stream leaked per destruction.

    Since e2cc0e5bba (2026-10-25) the event thread runs each QWK sweep job
    in its own sbbs_t, so the leak recurred with every REP import or QWK
    pack. On vert about 500 jobs exhausted the C runtime's 512 stdio
    streams in 12 hours, after which every fopen()/fdopen() in the process
    failed with EMFILE: POP3 could not open mail.shd, the Terminal Server
    could not open node.log or nonodes.txt, FTP logins failed, and the
    event thread logged "Too many open files" reading system stats every
    10 seconds. Real users' logins were then misreported as unknown users
    and penalized (#1307).

    The lazy reopen in lputs() dates from 39ad6926a1 (2025-03-01) and the post-close log line from 9e0fcab856 (2018-07-25); the long-lived event
    thread instance leaked only once, at shutdown.

    Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
    --- SBBSecho 3.38-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)