• src/sbbs3/main.cpp

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun May 7 13:45:08 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/d6544a7700951590fa2916a4Modified Files: src/sbbs3/main.cppLog Message:Enforce telbuf size bounds (don't just log the overflow condition)

    This should resolve CID 453850--- Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows)@VERT to Git commit to main/sbbs/master on Fri Jun 2 17:49:52 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/ca7ab040466b030281a9aacaModified Files: src/sbbs3/main.cppLog Message:Add a 60-second timeout to sbbs_t::passthru_socket_activate()

    Keyop reported an issue via irc whereby a user that failed to download a file would leave the node "hung" in "downloading via telnet" node status even
    though the user had long since disconnected and the log reflected that the terminal server was aware of this:

    term Node 4 <user> sexyz: !1152 zmodem_recv_raw TIMEOUT (10 seconds)
    term Node 4 <user> sexyz: !zmodem_recv_header TIMEOUT
    term Node 4 <user> external Timeout waiting for output buffer to empty
    <minutes later>
    term Node 4 connection reset by peer on send
    term Node 4 !ERROR 32 sending on socket 102
    term Node 4 !ERROR 32 sending on socket 102
    term Node 4 !ERROR 32 sending on socket 102
    term Node 4 !ERROR 32 sending on socket 102
    term Node 4 !ERROR 32 sending on socket 102
    term Node 4 disconnected
    term Node 4 !ERROR 32 sending on socket 102

    and

    term Node 3 <user> sexyz: !1152 zmodem_recv_raw TIMEOUT (10 seconds)
    term Node 3 <user> sexyz: !zmodem_recv_header TIMEOUT
    term Node 3 <user> sexyz: !Receive timeout (1 seconds)
    term Node 3 <user> sexyz: !Receive timeout (1 seconds)
    term Node 3 <user> sexyz: !Receive timeout (1 seconds)
    term Node 3 <user> sexyz: !Receive timeout (1 seconds)
    term Node 3 <user> sexyz: !Receive timeout (1 seconds)
    term Node 3 <user> sexyz: !Receive timeout (1 seconds)
    term Node 3 <user> sexyz: !Receive timeout (1 seconds)
    term Node 3 <user> sexyz: !Receive timeout (1 seconds)
    term Node 3 <user> sexyz: !Receive timeout (1 seconds)
    term Node 3 <user> sexyz: !Receive timeout (1 seconds)
    term Node 3 <user> sexyz: !1152 zmodem_recv_raw TIMEOUT (10 seconds)
    term Node 3 <user> sexyz: !zmodem_recv_header TIMEOUT
    term Node 3 <user> external Timeout waiting for output buffer to empty
    <minutes later>
    term Node 3 connection reset by peer on receive
    term Node 3 !ERROR 32 sending on socket 96

    These nodes were then locked up in call to passthru_socket_activate(false)
    as reported by gdb, e.g.

    Looking at passthru_socket_activate(), the deactivation path (called at the
    end of external() in this case), it was clear that this could be an infinite loop in the case the user had disconnected:

    do { // Allow time for the passthru_thread to move any pending socket data to the outbuf
    SLEEP(100); // Before the node_thread starts sending its own data to the outbuf
    } while(RingBufFull(&outbuf));

    These flush/purge loops aren't strictly needed if the user has disconnected, but as can be seen by the above logs, the terminal server may not know that (the socket may not indicate disconnect) before passthru_socket_activate()
    is called by external().

    So... worst case, just do the activation and deactivation buffer flushes
    and purges for 60 seconds.--- Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows)@VERT to Git commit to main/sbbs/master on Wed Sep 13 18:56:11 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/23cd780b3dc51f1d55398748Modified Files: src/sbbs3/main.cppLog Message:Remove redundant timestamp from "End of preexisting log entry" log message

    Most logs sysops are looking at already have a date/timestamp for each
    message, so this one ended up with 3 date/timestamps in a single line.--- Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows)@VERT to Git commit to main/sbbs/master on Tue Sep 19 18:37:16 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/e5f64faf337040f12844c4ccModified Files: src/sbbs3/main.cppLog Message:Log a critical error message if a node is WFC, but its socket is still in use

    This should avoid/work-around issue #630

    Nelgin's terminal server log indicated that the node's configuration was being reloaded for a new client connection (which doesn't normally/always happen, only when there's been a config file change or a node "rerun" requested),
    while there was still a user online using that node. This would explain the segfault (configuration fields being freed and reallocated).

    The node_socket[] array indicates when a node thread is actively servicing
    a client, so it should contain INVALID_SOCKET for the any node's that WFC.
    If it doesn't, that means something/someone changed the node's status value
    to 0 (WFC) in the node.dab file while the node was still in-use. Let's not crash in this case and rather just log the message and give the client the
    next available node (if any).--- Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows)@VERT to Git commit to main/sbbs/master on Sun Sep 24 01:32:43 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/229cca918d31e14add4b2ef7Modified Files: src/sbbs3/main.cppLog Message:Close node socket after waiting one hour to go inactive to run exclusive eventAfter 90 minutes of waiting, we'll do the same abort wait (and run the eventanyway), but closing the node's socket should be enough to get the node_threadto terminate and set the node status back to NODE_WFC.Apparently some sysops like to leave their terminals idling (e.g. running MRC)and never disconnect and since they're T-exempt, the BBS won't limit theirtime online to allow events to run. Exclusive events will wait for all nodesto become inactive, but give up after 90 minutes of waiting and run the eventanyway and set node status to WFC at the end. If the node was actually stillconnected/in-use, this could lead to the (new) critical error messages logged"!Node X status is WFC, but the node socket (N) and thread are still in use!"and other chaos (NODE STATUS FIXUP and the like).This should prevent all that by just abruptly disconnecting the node afterwaiting 60 minutes for the sysop to gracefully disconnect. The log messagewhen this happens:"!TIRED of waiting for node N to become inactive (status=X), closing socket Y"--- Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows)@VERT to Git commit to main/sbbs/master on Mon Sep 25 18:07:33 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/6b49ddffc9b3ee4bb3bdb3c1Modified Files: src/sbbs3/main.cppLog Message:Auto-recycle the term server if/when the ctrl/text.ini file is created/touched--- Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Fri Dec 29 10:17:20 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/1994a535b8c0e688e8a139fc
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Don't log error on final channel message

    ---
    ■ 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 Thu Jan 4 19:19:36 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/7df6956da2b4246a9ca3940e
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Don't log an error if there's QWKnet sub pointer value to be read

    This partially reverts commit 44c3350f where a bunch of read() and write() return value checking was added.

    ---
    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 Thu Jan 11 00:33:48 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/bac2285755b0eda8a209e365
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Another fix for the read() reutrn value FORTIFY warning

    that doesn't log an error

    ---
    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 Jan 17 13:31:24 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/a8374b52cbc57902bb303d7e
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    second part of commit 0b1b1a6f

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Jan 20 20:25:21 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/e53f173153fdaf0341cca95c
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Remove unnecessary call to DuplicateHandle() in Win32 builds of sbbs_t::init()

    The client_socket_dup is overwritten after with the return value of accept(), so this was likely a socket/handle leak (since commit 74470573, 17 years ago).

    Noticed this only after logging a new error in an SSH connection when this
    call to DuplicateHandle() failed for some reason (WinError 6), but it seems like it's been redundant code for a long time now. So just ace it and possibly fix a resource leak.

    ---
    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 22 17:43:44 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/346a2d304c7d921d656489ad
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Log the socket descriptor and protocol when getsockname() fails

    This is a new error that just started cropping up. I suspect it's related to recent SSH changes. This might help a little with context, when it happens again.

    ---
    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 Tue Feb 6 12:35:50 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/af7852df11093dc6ed559f64
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Ignore remove() return value purposefully in this case.

    Does this resolve Coverity warning? I don't rember.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Wed Feb 7 12:23:42 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/2b2d8289b92d7f6e6faa1633
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    More time_t printf fun.

    ---
    ■ 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 Feb 14 15:11:56 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/1e734d10425f7ca7fb239931
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Remove line that was commented-out 14 years ago

    Commit d1182efc

    ---
    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 Feb 24 14:54:24 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/0a6c1f00de9e4457f598b4f4
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Log a warning if failed to write to spy ring buffer

    ---
    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 Sat Feb 24 20:31:04 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/4fa2aa66fda6be0ef693f512
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Don't log an error if spy socket write return EPIPE (expected)

    Also, resove a new gcc warning about signed/unsigned compares.

    ---
    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 Feb 26 22:41:59 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/a474017fb7c51f91ef9c4095
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    sbbs_t::incom() should return NOINP immediately if/when socket disconnected

    JS console.inkey() and friends use this as the underlying function to get
    input from the TCP socket.

    This might address issue #725

    Hoping Nelgin will let us know.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Tue Feb 27 20:20:48 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/4c893720f8e0c57753b08a91
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Attempt to fix error nelgin reported with ssh session timeouts

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Wed Feb 28 15:29:55 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/e4adbcb541c6f7139e63d2ca
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Prevent the input thread from closing channel that has a session,
    but does not yet have a session type.

    Also, fix what appears to be a fairly blatant memory leak.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Thu Feb 29 11:55:23 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/346849ac253a08374b9bfca0
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Unlock ssh_mutex before calling sftps_recv()

    This should fix the sftp hangs...
    While FreeBSD will return EDEADLOCK when a mutex would deadlock,
    Linux will do what I ask and deadlock.

    Since we're not checking the return value of pthread_mutex_lock(),
    this would go completely unnoticed on FreeBSD, resulting in the
    mutex being unlocked early and all sorts of unprotected accesses
    would happen, potentially doing crazy things. On Linux it just
    deadlocks, and taking a peek at the thread backtraces makes the
    problem obvious.

    So, point to Linux for making life more correct for people who
    do incorrect things (locking without checking the return value).

    I'd also like to thank nelgin, for sticking with me on this issue
    and being my gdb puppet.

    And really, this commit should be shared by all the contributors
    who... 𝆺𝅥𝅮𝆺𝅥𝅮𝆹𝅥𝅯𝆹𝅥𝅯

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Thu Mar 21 23:34:07 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/c846776318dc4ca28946083c
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Break stuff to test things.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deucе@VERT to Git commit to main/sbbs/master on Thu Mar 21 23:38:26 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/eddcfe2f9b10d250d16a6c7f
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Now unbreak!

    ---
    ■ 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 Fri Mar 22 21:28:05 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/be8603b11bd6cf12c6f74256
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Replace (and auto-upgrade) ctrl/time.dab with time.ini

    This will allow us to change scfg_t.event[].last to a time_t value (from time32_t) whenever we abandon Borland C/C++ in the future.

    Now it's trival for sysops to view/edit when their timed events 'last run' values. And there's no more endianness concerns. Bad .dab files, bad, go away.

    After I wrote this change, I found the original conversion code in v4upgrade.c which is almost exactly the same (except I was going to write to different filename). Finally actually implemented this. Next up: qnet.dab

    ---
    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 Fri Mar 22 21:28:05 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/03be991a6f30b98ae9c0320b
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Convert (and auto-upgrade) ctrl/qnet.dab to ctrl/time.ini as well

    I suppose this should've been part of the previous commit.

    Again, this is almost verbatim what v4upgrade.c did (though never actually used).

    ---
    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 Mar 22 22:50:36 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/19ab720de38838ae2e4e1154
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Resolve recently introduced warnings about const char* to char* conversion

    C++ <sigh>

    We don't need a .ini section separator anyway.

    ---
    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 Apr 8 16:32:54 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/00a80d45d884c9ab547fef31
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    exec/*.bin cmd shell filenames were case sensitive (must've been lowercase)

    ... while the mods/*.bin command shell filenames could be any-case!

    Only impacted non-Windows systems (UNIX file systems are case-sensitive).

    Discovered while making this tutorial video: https://youtu.be/HlwQ0uX4S04

    ---
    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 Wed Apr 10 23:07:19 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/76b5c7f4399c7774c368c754
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Resolve CID 492287 - we don't care about the fexistcase() return value here

    We're just using it to "fix" the case, if the file indeed exists.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Thu Apr 16 22:38:31 2020
    src/sbbs3 main.cpp 1.782 1.783
    Update of /cvsroot/sbbs/src/sbbs3
    In directory cvs:/tmp/cvs-serv1099

    Modified Files:
    main.cpp
    Log Message:
    Clear the current attribute after the user stirng input in the JS prompt() function (don't leave it high-intensity white on accident).


    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Mon Apr 27 14:00:32 2020
    src/sbbs3 main.cpp 1.783 1.784
    Update of /cvsroot/sbbs/src/sbbs3
    In directory cvs:/tmp/cvs-serv20792

    Modified Files:
    main.cpp
    Log Message:
    The "all nodes in use" message specifically said "telnet nodes". Change to "terminal nodes".


    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Sat May 23 12:11:07 2020
    src/sbbs3 main.cpp 1.789 1.790
    Update of /cvsroot/sbbs/src/sbbs3
    In directory cvs:/tmp/cvs-serv533

    Modified Files:
    main.cpp
    Log Message:
    Address problem reported by wkitty42:
    May 21 00:00:15 southeaststar synchronet: evnt BBS Events Executing external: ?logonlist -m
    May 21 00:00:15 southeaststar synchronet: evnt BBS Events !JavaScript warning /sbbs/exec/load/nodedefs.js line 167: Disconnected
    ... by setting the online mode to ON_LOCAL while executing the sys_daily event.


    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From rswindell@VERT to CVS commit on Sun Jul 19 21:12:22 2020
    src/sbbs3 main.cpp 1.790 1.791
    Update of /cvsroot/sbbs/src/sbbs3
    In directory cvs:/tmp/cvs-serv13583

    Modified Files:
    main.cpp
    Log Message:
    Don't display full path (just the filename) of errored JS file to user.


    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Sun Aug 23 17:50:06 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/b105d77749607d5bc8dacc99
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Lower log level of the "Perhaps node is already runnnig" log msg from ERR to WARN

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Thu Sep 3 22:29:28 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/8bf25ec78bdcf404e0ddab27
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Lower the SSH-related log message severities to WARNING for SSH connections

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Sat Sep 19 22:33:42 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/9bf4b7bba19d951f3ca48c96
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Don't send telnet commands to spy sockets

    send_telnet_cmd() now sends telnet commands/replies directly to the client socket. This avoid the entire output_thread() teeing of sent data to spy sockets/buffers (which may not be Telnet at all).

    There are some concerns with this change:
    - if client_socket isn't writable, will sendsocket() block?
    - if output_thread is sending on the same socket, are our 2/3-byte telnet
    commands going to have other output data interleaved within? (seems very
    unlikely)

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Sat Sep 19 23:04:07 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/cbdb2b494c85d24a7b3b887b
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Move the "connect" spy message to where the hostname and IP address are known

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Fri Oct 23 01:51:57 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/ec6d7e3edf557779be7e54cd
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Don't count guest logins as authenticated connections...

    When enforcing the MaxConcurrentConnections limit, don't count connections for user's with blank passwords (i.e. Guest) as authenticated.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Wed Nov 4 23:28:33 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/3a19853b763f35a22ece717c
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Address 32-bit GCC warning about printf format

    '%lu' expects argument of type 'long unsigned int', but argument 5 has type 'off_t

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Fri Nov 13 00:24:17 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/bd78d5c5725843afc6659822
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Add timestamp of node.log file to crash.log

    When a preexisting node.log file is found, a terminal server crash is suspected. Include the timestamp of the node.log in the message appended to the system log (data/logs/*.log) to help identify the likely time of the crash.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deon George@VERT to Git commit to sbbs/master on Sun Nov 22 00:35:59 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/6d0ec492cd2a5db51e416548
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Ooops, forgot to make btox static

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Deon George@VERT to Git commit to sbbs/master on Sun Nov 22 00:35:59 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/db690fadea6237739f73825c
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Improve btox() so that it doesnt lead to any buffer overruns

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Digital Man@VERT to Deon George on Sun Nov 22 13:23:45 2020
    Re: src/sbbs3/main.cpp
    By: Deon George to Git commit to sbbs/master on Sun Nov 22 2020 12:35 am

    https://gitlab.synchro.net/sbbs/sbbs/-/commit/6d0ec492cd2a5db51e416548 Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Ooops, forgot to make btox static

    Oops, I forgot to squash this giant merge. <grimmace>
    --
    digital man

    Rush quote #64:
    He's cleaning up his systems to keep his nature pure .. New World Man
    Norco, CA WX: 75.9F, 29.0% humidity, 6 mph NNE wind, 0.00 inches rain/24hrs ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Nov 29 00:31:28 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/82d3ae6e61d8876d35444bdf
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Load/keep/refresh each node's configuration in memory.

    Previously, all nodes shared the same copy of the configuration in memory. This prevented any node from seeing an updated configuration until all nodes were offline or waiting for connection and could be recycled. Now, no recycling of the server is needed for a node to load a new config. A node in-use *still* cannot reload configuration until the user disconnects, but all you have to do is logon to another unused node and you (or that user) will get an updated configuration. Bots or server recycling problems will no longer prevent the sysop or user from getting a current configuration when connecting to any node.

    This is one of those instances of giving the sysop what he wants rather than what he asked for. I should've done this a long time ago, but the idea just occurred to me. You're welcome. :-)

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Nov 29 11:40:10 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/827063bb1d4343e145a85ffa
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Copy event last-run info from global config into node config

    Fixes issue introduced in last commit to this file (the each-node-has-its-own-config-in-memory enhancement) that would prevent users from logging in because their time was reduced for an upcoming event that had already run. The change assumes the event thread is running (its the thing that reads the event last-run info from time.dab). Thanks to mlong for the report.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Nov 29 12:28:05 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/07bd3442362ada96e99a4294
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Fallback to the "first node" configuration

    If a node's configuration can't be loaded (e.g. nodeX/node.cnf is missing), fall-back and load the "first node" (e.g. Node1) configuration. On recent *nix installs (since the migration to Git), the node2+/node.cnf files were not copied/created, so let's solve that soon-to-be-FAQ now.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Nov 29 13:10:58 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/656bdb8fe79786b94f7dc5ac
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Log a warning when falling-back the loaded node configuration.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Bob Roberts@VERT/HOVAL to Rob Swindell on Sun Nov 29 12:45:15 2020
    Re: src/sbbs3/main.cpp
    By: Rob Swindell to Git commit to main/sbbs/master on Sun Nov 29 2020 12:31 am

    another unused node and you (or that user) will get an updated configuration. Bots or server recycling
    problems will no longer prevent the sysop or user from getting a current configuration when connecting
    to any node.

    This is one of those instances of giving the sysop what he wants rather than what he asked for. I
    should've done this a long time ago, but the idea just occurred to me. You're welcome. :-)

    This is freaking awesome. Thanks DM!

    |01bobbobbobbob|09bob|03bob|11bob|03bob|09bob|01bobbobbob |01robrobrobrob|09rob|03rob|11rob|03rob|09rob|01robrobrob
    |07

    ---
    Synchronet Halls of Valhalla =San=Francisco= Happy Holidays
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Dec 6 20:21:13 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/d9ea54258ab2a39b3e71bdcf
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Don't create a JS "client" object for timed events

    There is no actual TCP-client when a timed event is executing, so don't create one in the JS context when the socket is invalid.

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Dec 13 02:00:30 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/0d8ea19e309c6afd80a587c8
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Create node#/client.ini for each node client connection

    Paves the way for utilities like umonitor to show client details for node connections (e.g. IP address, hostname, connection duration, etc.)

    ---
    Synchronet Vertrauen Home of Synchronet [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Dec 19 16:09:15 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/5e46cb0f6cc44b2176c97b0f
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Additional/optional 'mode' argument to global prompt() method

    Defaults to K_EDIT.

    ---
    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 Thu Jul 11 19:17:01 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/6713d10cb1f9e44d1cb8a9e6
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Fix incorrect 'socket' value for new (highwater) log message

    ---
    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 Thu Jul 11 19:17:01 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/06f6b07ddbc0ba9f7d66f5c5
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Eliminate large-scoped 'i' variable in bbs_thread()

    This is just a code quality (readability) improvement. No functional change.

    ---
    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 Thu Jul 11 19:29:21 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/59e30dda6bb683b9c1a97298
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Fix *nix build

    We removed the large-scope 'i', but didn't update the Unix-only blocks of code (dealing with UNIX domain spy sockets).

    ---
    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 Thu Jul 11 19:39:16 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/bca9510b25f790f84f59545a
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Include current node number intead of socket descriptor in highwater log msg

    looks better, more consistent with the log messages before/after it.

    ---
    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 Aug 3 19:58:06 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/c03ed4b9ce042d5651575e18
    Modified Files:
    src/sbbs3/main.cpp
    Log Message:
    Log a warning if any socket inactivity max durations are shorter/equal to ...

    to the getkey inactivity timeout.

    By setting a socket timeout shorter or equal to the getkey timeout, the getkey timeout effectively does nothing.

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