• src/sbbs3/answer.cpp

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Thu Oct 23 18:40:26 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/ddf7e3af07a181a1ad0bff84
    Modified Files:
    src/sbbs3/answer.cpp
    Log Message:
    Change ANSI-color to black on black to obscure garbage in term-detect sequence

    Pretty up the initial connection for non UTF-8 ANSI terminals, at least.

    Also removed what looks like an extraneous underscore after the return to normal ANSI attribute (CSI 0m) sequence - I'm not sure. It's been there since Synchronet v2 so it's possible that some terminal needed it for some reason
    but that reason has been lost to time (maybe WIP/DCTerm detection?).

    Fixes issue #996

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Wed Dec 10 19:41:15 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/ea53ddfb3812f95a9480865e
    Modified Files:
    src/sbbs3/answer.cpp
    Log Message:
    Fix extra [Hit a key] prompt when connecting with PETSCII

    Another regression in the "New Terminal Abstration" fixed.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Fri Dec 19 11:28:55 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/114c3dfdee48db651bf568fa
    Modified Files:
    src/sbbs3/answer.cpp
    Log Message:
    Fix potential deadlock in specific case

    If the telnet client sends an IP address as a Location, and that
    IP address is in a filter file, the input thread mutex would not
    be unlocked.

    This oddball feature was suggested on Reddit here: https://www.reddit.com/r/synchronet/comments/khuyey/ftelnetwebsocketservicejs/

    And implemented in Synchronet here: https://gitlab.synchro.net/main/sbbs/-/commit/2bbe824c0656176d0314f2d48558b322a69b9e32

    It appears that it's been broken the whole time.

    Found by some LLM (ChatGPT?) and reported by nelgin.

    ---
    ï¿­ Synchronet ï¿­ Vertrauen ï¿­ Home of Synchronet ï¿­ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Wed Dec 31 01:59:39 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/4b53b6a54d1944eb698f19af
    Modified Files:
    src/sbbs3/answer.cpp
    Log Message:
    Re-arrange the unlock's of the input_thread_mutex to make more sense

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat Jan 3 14:24:04 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d0accc6f3d4dda6fa4d811a1
    Modified Files:
    src/sbbs3/answer.cpp
    Log Message:
    Log a msg to the node/system log when new user registration is canceled

    Yeah, one 'l'.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Mon Jan 19 04:06:24 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/f6746e937c8b888e60114770
    Modified Files:
    src/sbbs3/answer.cpp
    Log Message:
    Don't execute login module if user already disconnected

    which might log the (new) error message: Error -1 executing login module

    Users can easily disconnect before the login module is executed (e.g. during
    a pause prompt while displaying text/answer.*).

    We still might need more disconnection detection in login.js or lower the severity of the logged error if login.js still gets auto-terminated due to disconnection (which results in a -1 exit code if ungracefully terminated).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat Jan 31 20:59:27 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/91273407cb15becbfd22ee5a
    Modified Files:
    src/sbbs3/answer.cpp
    Log Message:
    Remove extra blank line after copyright notice when connecting with PETSCII

    This was added in the New Terminal Abstraction for unknown reason

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Fri Sep 11 14:40:35 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/ca239664d95bca090dc4b064
    Modified Files:
    src/sbbs3/answer.cpp
    Log Message:
    Reject DELETED/INACTIVE accounts on the SSH, SFTP and RLogin logon paths

    An account flagged DELETED or INACTIVE could still log on via SSH, SFTP
    or RLogin. Those paths resolve the account name themselves and, on a successful authentication, jump straight to logon(), bypassing login(),
    which was the only place the flags were checked. That is why Telnet
    correctly refused the same account while SSH let it straight in.

    find_login_id() does not filter the flags on the caller's behalf:
    matchuser() skips only DELETED accounts, because a deleted account's
    alias is blanked in the user index, and the LOGIN_USERNUM shortcut
    checks nothing at all.

    Test user_is_active() once the account has been resolved. A terminal
    session is sent text[UnknownUser] before the disconnect, the same
    response Telnet gives, since login() treats a deactivated account as an
    unknown one. An SFTP session has no terminal and is refused in the
    channel handler instead, before the session is marked on-line and the
    logon is counted.

    Both sites record the rejection with badlogin(), so repeated attempts accumulate toward the hack and IP filter thresholds, as they already do
    in the FTP and mail servers. The password is deliberately not passed
    along: it was the correct one, and it would otherwise be written to the
    hack log and to the ip.can entry.

    GitLab #1239

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

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