• src/sbbs3/websrvr.c

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Mon Mar 13 19:41:28 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/db6e54740d51622cfdda6ccc
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Include protocol and client IP address in FastCGI send error log msg
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on ChromeOS)@1:103/705 to Git commit to main/sbbs/master on Sun Mar 26 19:58:08 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/2dc32fab0bda70f194ecd6cf
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Don't query the active_clients count twice in a row
    --- SBBSecho 3.20-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 Nov 21 20:45:24 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/6697e52d90e024eb602aa2ac
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Don't try to send 0-byte files

    Saves some opening, reading, and logging, but otherwise was harmeless.

    Fix issue #422
    --- SBBSecho 3.20-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 Wed Nov 22 23:00:36 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/5546278f0146522c886cca18
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Open SBBS_SSJS.*.html response file(s) only when actually writing data

    The first write to a the temporary SBBS_SSJS.*.html file will open the file. This should reduce the number of 0-byte files left laying around in the the temp directory, which shouldn't be happening in the first place.

    Also:
    Fixed bug noticed in temp file clean up loop: POST data files would *also*
    be retained when the DEBUG_SSJS option flag is set.

    Also:
    Replace some unsafe string operations with safe equivalents.

    Happy Thanksgiving Nelgin!
    --- SBBSecho 3.20-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 Thu Nov 23 17:49:22 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/274efc589d79d20711f04da2
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    A little clean-up around FILE* opening/closing, error handling

    "HTTP Logging" replaced in log messages with "Web Server access-logging".

    Using new FCLOSE_OPEN_FILE macro to close and NULify open FILE*'s.
    --- SBBSecho 3.20-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 Sat Nov 25 20:27:48 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/786add2421406f8f9ed9e113
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Replace IPv6 colons in access-log filenames with exclaimation marks on Windows

    Colons are not legal filename characters on Windows and when virtual hosts are enabled, the IPv6 address of the server may be used in the access-log filename so we need to clean that up or errors opening/creating the access-log files occur.
    --- SBBSecho 3.20-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 Sun Dec 17 17:53:22 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/b4f04d357b85fcb615dd400e
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Log client address in "Sending file" and "Sent file" log messages

    For symmetry
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Dec 18 23:58:18 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/df3d7d09a69ec2fdf20a0d73
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Ensure do_cryptInit() is called before calling lock_ssl_cert()
    --- SBBSecho 3.20-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 Dec 19 20:20:18 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/6180a88022c5d1e3f3a02dcd
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Look in mods dir for FileIndexScript before the exec dir

    ... unless the full path was specified.
    --- SBBSecho 3.20-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 Thu Jan 4 19:17:34 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/850a6595d70e78025c5a8f29
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Don't pass a TLS session ID of 0 js_CreateCommonObjects() for non-TLS sessions

    The proper sentinel value here for "no TLS session" is -1, not 0.

    This, at minimum, was causing a lot of extraneous calls to destroy_session() (from js_socket.c's do_js_close()) with an invalid (hopefully, not
    otherwise used) cryptlib session ID of 0.

    Nothing checks or logs the return value of destroy_session(), but I'd expect
    it to be failing ... a lot.
    --- SBBSecho 3.20-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 Sun Jan 7 19:19:40 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/ec45b264572304e92c3e0839
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Log an error if ssl_sync() fails, for W6RAY

    Hopefully help debug why HTTPS isn't working for him
    --- SBBSecho 3.20-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 Mon Jan 15 21:14:44 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/5bea6c6be1f0e73a35176920
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    If socket is closed while in sess_sendbuf(), don't log a warning message

    ... with a socket descriptor value of -1.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Wed Feb 7 14:58:34 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/b973a74765fb50b36c045713
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Fix off_t printf warning.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Fri Feb 9 09:07:36 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/5bd8253c7c482272b9a4ea1f
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Temporary workaround for TLS issue.

    It appears that if the timing is "just wrong", a large POST can
    cause TLS to fail. This has shown up as an inability to edit
    pages in the wiki.

    This is not a fix however, but simple a workaround until this is
    root-caused.
    --- SBBSecho 3.20-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 Feb 13 23:38:14 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/6326f6d0d33019f5af7b31fb
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Set javascript callback "terminated" flag to true when recycling

    (or terminating) the server.

    This will allow background JS threads to terminate when recycling, so the server doesn't just hang indefinitelyi when recycling.

    Add more logging in cleanup() when waiting for children threads to terminate.

    Also, eliminate the global 'terminate' variable, answering the question:
    Can this be changed to a if(ws_set!=NULL) check instead?

    Yes, yes it can.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on ChromeOS)@1:103/705 to Git commit to main/sbbs/master on Wed Feb 14 00:28:02 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/95be5a80e00eebcb23370f92
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Simplify the child thread wait loop in cleanup()
    --- SBBSecho 3.20-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 Thu Feb 15 22:55:30 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/8d7d9eb22fbabde369e6ab31
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Lower severity of "Response file path is NULL" log msg from CRIT to WARNING

    This is not a completely unexpected thing to happen during ungraceful termination
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Wed Feb 21 07:47:10 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/50be44416dbf437e93f0f283
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Pass user_t as pointer.

    Silly to pass a 728-byte object as a parameter.
    --- SBBSecho 3.20-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 Mon Mar 18 21:22:06 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/e9778331b2584afc731f45bc
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Fix a bunch of false "File sent" logs (and uploader-notifications)

    Web browsers tend start a download and then immediately close the socket
    (so now send_failed will be true), while on a secondary socket, do a range download of the same file.

    So log the range requests/completions and don't log successful file sends
    when the send was terminated due to a send failure.

    We still count very small (e.g. 2 byte) ranges as successful file transfers
    and notify the uploader (of a partial download), so we should fix those
    issues still. But at least now, there's a whole lot less "noise" created
    from HTTP[S} file downloads via browser.
    --- SBBSecho 3.20-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 Sat Mar 23 17:11:54 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/3711e03ad615c3183aa401b4
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Use volatile keyword to (maybe) fix CID 488122: Data race condition

    Ideally, I'd use atomic_bool instead, but we're using an older WinSDK for Win7 compatibility and so... can't.

    Perhaps an xpdev 'protected_bool_t' should be created.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sun Mar 24 15:46:02 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/90de10cf0dc28c25fab197b4
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Grow another 4-byte string.
    --- SBBSecho 3.20-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 Sun Apr 21 21:44:14 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/920902f3db4c4eac5ebcaf57
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Fix bug with error files (e.g. 404.html) introduced in commit 90de10cf

    Deuce expanded the local 'error_code' buf to not trip the SAFECOPY macro destionation buffer length check. Only this buffer needed to be 4 chars
    exactly to truncate the 'message' string at 3 chars (e.g. just "404" for an error message string that starts with "404 "). Switch from SAFECOPY to strlcpy to eliminate this bug.

    As reported by Ragnarok as part of issue #748

    The web error files should work again.
    --- SBBSecho 3.20-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 Mon Apr 22 21:55:14 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/984e76515378b50e3593ca8e
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Update the previous commit to revert the error_code length to 4, since we can

    And use sizeof, not the magic number (again).
    --- SBBSecho 3.20-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 Thu Jul 11 17:32:20 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/5004246d797799638b7d2db9
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Fix off-by-one reporting of "active client highwater mark"

    Only log the hightwater mark when it's > 1. :-)
    --- SBBSecho 3.20-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 Mon Nov 4 17:37:32 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/7fb6c7b4d8ec2150eefe55df
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Add missing argument to new error log message upone putuserdat() failure

    Fixes a couple CIDs and a GCC warning
    --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sat Nov 30 19:42:46 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/d98359abefd58e43bb0e3115
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Move max concurrent connections check into http_session_thread()

    We can't send a 4xx error (ie: client did something wrong) in
    plaintext on a TLS connection.

    Untested beyond a basic compile check.
    --- SBBSecho 3.23-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Sat Nov 30 23:47:10 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/91125d1b721525a9c7720d0c
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Track and report the concurrent connections per client highwater mark

    It's possible now for clients to easily exceed the configured max concurrent connections limit, even though they just get an error 429 page. Let's at least track and log when a new highwater mark is reached.
    --- SBBSecho 3.23-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 Dec 10 16:27:54 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/ce7d83eeda506e5f366fe31d
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Add/use errprintf() to reduce severity of repeated error messages

    Part of solution for issue #619 (for the web server)
    --- SBBSecho 3.23-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 Sat Dec 14 13:08:10 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/f2c891789734a9e783a1ac14
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Lower severity of repeated errors in js_ReportError()

    This needed a custom solution (not errprintf) since the filename is passed-in is likely from dynamically allocated memory, so a pointer comparison isn't enough - and we don't get the function name.
    --- SBBSecho 3.23-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Sat Dec 14 13:09:32 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/bbf9d5eac22ce15077a4599f
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Use errprintf() instead of lprintf() for one more log message
    --- SBBSecho 3.23-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Sun Dec 15 14:51:22 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/a4ac0be63a49cc98f4883bef
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Better NULL ptr checking in js_ErrorReporter, CID 516068
    --- SBBSecho 3.23-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 Mon Dec 16 18:24:30 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/630b22ada39c50f871597b00
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Whitespace change only
    --- SBBSecho 3.23-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 Mon Dec 30 14:58:20 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/91b5a37ca1155f71f28c6eda
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Check return value of JS_NewStringCopyZ (for NULL)

    Kind of a shot in the dark here: Max (WESTLINE) is reporting HEAP CORRUPTION debug assertion in websrvr.dll. In the 2 instances reported, a long (336
    char) JSON "query value" was logged by apparent spam-bot trying to create a
    a new user account ("send-me-free-stuff" is one of the JSON properties).

    JS_NewStringCopyZ() can return NULL in a low memory situation, though I don't know that explains possible heap corruption.
    --- SBBSecho 3.23-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 Sun Jan 12 12:48:02 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/0c6913fbd626457fb401aae8
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Another use of errprintf() to help de-dupe error logs/alerts
    --- SBBSecho 3.23-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Wed Jun 4 21:41:24 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/adf899cdeb60600fed167324
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Don't try to send 503 error for TLS connections that exceed maximum

    since this doens't work and just generates/logs an error every time.

    And for non-TLS connections, if the 503 send fails, just log it as a warning. --- SBBSecho 3.27-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)