• src/sbbs3/websrvr.c

    From Deuc¿@VERT to Git commit to main/sbbs/master on Mon Feb 28 22:33:31 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/c0f42027dded92626251d686
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    I don't know what I was smoking when I did this, but it's fixed now.

    Weird early failure return on TLS sends. Most noticible on local
    (ie: fast) connections, but clearly stupid all around when you
    look at the code.

    Fixed, but some day, I should go back and look how we eneded up in
    this mess.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Mar 20 16:26:47 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/cd4066a287da2b52e7aec775
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Resolve warning about enum value not handled in switch() statement

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Apr 4 19:54:27 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/a7f6b8549d24feb43c83ee44
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Include client IP address in HTTP-level error log messages

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Jun 4 20:36:14 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/a82559e327b74c4513751593
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Use safe string formatting to squelch warnings

    Attempt to address 2 GCC version 11.2.0 2 warnings reported by Nelgin
    `%s' directive writing up to 3 bytes into a region of size between 1 and 4097

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Jun 6 15:23:48 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/2e67162225de28219d747ed1
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Perform a JS garbage collection for each new request in a reused session

    A reused HTTP session would never (apparently) perform garbage collection.
    The evidence of this was the collection of concurrent user.dat file opens
    that would never close until the HTTP sessions were closed. Hundreds or
    even thousands of open user.dat's have been seen. After this change,
    active web server (webv4 UI) users have not caused these spikes in open user.dat files, at least in my testing.

    If no garbage collection was being performed, then likely a lot of JS
    heap was being needlessly wasted, which could eventually result in a JS
    "out of memory" error. But that's just a theory.

    Investigation is needed into why the js_CommonOperationCallback()'s calls to JS_MaybeGC() were not sufficient to actually perform garbage collection
    in this case.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Wed Aug 3 18:10:22 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/639460420c349337f3d3ceef
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Update log messages for execle() or fork() failures

    To be more consistent in syntax and include more details (e.g. the command being invoked).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Tue Aug 9 19:38:25 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/b6cdc4730e6ca52fc0fc093b
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Log message improvements: include protocol (HTTP vs HTTPS) and IP address

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Aug 21 18:35:34 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/2458bfc3e336939c4893a360
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Improve JavaScript-related error messages

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Jan 6 14:21:41 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/650abd10bff9293db51f22fd
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Add a "scheme" property to http_request object

    Value is "http" or "https" depending on if TLS is in use.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Jan 30 17:13:57 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/94f85d5f1c8d8792975b5b03
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Fix MQTT-published action/login message for web server users

    e.g. 20230130T171211-480 0 <unknown user> 76.89.231.66 <no name>

    the user number name actually *are* known at this stage

    ---
    þ 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 4 21:30:51 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/fe30acd5338cf267c284f0c0
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    More details in "Failure to send header/request to FastCGI socket" log msg

    Elevate the log level back to ERROR (from WARNING), as this is not an expected condition and the sysop (me) should be alerted right away. This had previously be lowered (along with some other log messages) from ERROR to WARNING.

    When php-fpm is updated (on Debian, anyway), e.g. from 8.1 to 8.2, a new etc/php configuration (pool.d) directory was used which set me back to a default www.conf file that uses Unix domain sockets instead of TCP sockets.

    ---
    þ 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 4 23:23:26 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/38b9bc8a15b819c87235b2c6
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Add UNIX domain FastCGI support

    Resolves a long-standing todo comment and has made wiki.synchro.net page rendering even faster.

    PHP-FPM defaults to creating/listening on UNIX domain sockets.

    This resolves gitlab issue #507

    ---
    þ 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 Feb 5 13:12:23 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/d2ef0fe2ccfacd2b5805b6c4
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Fix webserver build on Windows - no UNIX domain socket support

    According to https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
    it is possible, but I think I'm using an WinSDK that's too old, so let's just not support this feature on Windows just yet. Define UDS_SUPPORT when supported.

    ---
    þ 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 Feb 6 11:57:23 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/6049bc00c20620b31d6f2d41
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    If the FastCGI address starts with a '/', it's obviously a UNIX domain socket

    We don't really need the "unix:" prefix now, but just leave that support in
    for backward compatibility.

    ---
    þ 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 Feb 6 12:37:21 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/73a821b70820580fcf3bba9a
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    If the FastCGI address begins with a '.', treat as UNIX Domain Socket as well

    <Deuce> So the [previous] change doesn't work with relative paths?

    So... support relative UDS paths in this manner (without the "unix:" prefix)

    ---
    þ 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 Mon Mar 13 19:41:29 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

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT to Git commit to main/sbbs/master on Sun Mar 26 19:58:09 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

    ---
    þ 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 Nov 21 20:45:25 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

    ---
    þ 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 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!

    ---
    þ 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 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.

    ---
    þ 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 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.

    ---
    þ 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 Sun Dec 17 17:53:23 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

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Mon Dec 18 23:58:19 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()

    ---
    þ 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 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.

    ---
    þ 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:17:35 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.

    ---
    þ 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 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

    ---
    þ 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 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.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Wed Feb 7 14:58:35 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/b973a74765fb50b36c045713
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Fix off_t printf warning.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT 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.

    ---
    þ 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 13 23:38:15 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.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT 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()

    ---
    þ 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 Feb 15 22:55:31 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

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT 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.

    ---
    þ 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 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.

    ---
    þ 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 Mar 23 17:11:55 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.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT 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.

    ---
    þ 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 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.

    ---
    þ 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 22 21:55:15 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).

    ---
    þ 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 17:32:21 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. :-)

    ---
    þ 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 17:32:21 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/75bb2cf6633fb51f56a23e53
    Modified Files:
    src/sbbs3/websrvr.c
    Log Message:
    Publish client highwater mark (max concurrent client stat) to MQTT

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