• src/sbbs3/userdat.c

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Thursday, December 14, 2023 22:07:43
    https://gitlab.synchro.net/main/sbbs/-/commit/68d9c3265f981c3579115177
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Truncate attempted user-name at '@' before comparing against name.can file

    '@' is in the name.can by default and the mail server recognizes user@addr formatted logins/attempts, so truncate at the '@' before comparing against
    the name.can file to prevent false !TEMPORARY BAN (1 login attempts, ... occurences.

    ---
    � 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 Sunday, December 17, 2023 01:37:48
    https://gitlab.synchro.net/main/sbbs/-/commit/39b718dd3ea96ef9f70b5575
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix typos in comments

    ---
    � 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 Monday, January 01, 2024 16:13:36
    https://gitlab.synchro.net/main/sbbs/-/commit/e675cd6612c6723d40063f44
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix bug with parse_birthdate() in year-first format

    The year is 4 digits, so the offsets aren't the same as the other 2 supported formats. Doh!

    Thanks Max for testing!

    ---
    � 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 Saturday, February 10, 2024 17:13:02
    https://gitlab.synchro.net/main/sbbs/-/commit/3bf7380f569eababc753e3fc
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    nodestatus() print internal code rather than xtrn number, if possible

    (as a fall back to the full external program name).

    ---
    � 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 Monday, March 18, 2024 21:22:06
    https://gitlab.synchro.net/main/sbbs/-/commit/d6293e05bccdff9ff8fbb1c8
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix logic to add the "partially" prefix to download notification messages

    The file_t struct may not have the size of the file pre-poulated, so we needed to call getfilesize() here.

    ---
    � 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 Friday, June 21, 2024 12:44:51
    https://gitlab.synchro.net/main/sbbs/-/commit/e7642321545ef80fb73fe183
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix getnodedat() error handling and usage

    If a file descriptor is passed to getnodedat() and the lock retry counter was reached, the file would be closed, but the passed file descriptor reference would not be set to -1. This could result in exceptions (from subsequent read attempts on the referenced file descriptor) in cases where the node.dab could not be locked or read by getnodedat() and was thus closed.

    The set/get_node_* helper functions (used by MQTT) were not initializing the node.dab file descriptor (i.e. to -1), so it's possible getnodedat() could
    try to read from and close an invalid/wrong open file descriptor. If the local variable happened to be initialized to a value <= 0, then, no problem, but
    this is undefined behavior (UB).

    ---
    � 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 Thursday, August 22, 2024 19:54:56
    https://gitlab.synchro.net/main/sbbs/-/commit/69fc70ab9e59914f5bfceb9f
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Extend (and back-off) the user.tab record lock attempts

    I'v been getting errors locking user.tab (for read) for a while (over samba), so hopefully this helps. The lockuserdat() total timeout duration extends from about 5 seconds to about 45 seconds (with an incremental back-off).

    Implement the same lock-retry logic/limit in putuserdat().

    ---
    � Synchronet � Vertrauen � Home of Synchronet � [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on ChromeOS)@VERT to Git commit to main/sbbs/master on Saturday, September 14, 2024 18:48:08
    https://gitlab.synchro.net/main/sbbs/-/commit/3de5f432ff45b91c838f28c8
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Delete data/file/*.out directory for new user (if exists)

    emailfiles.js puts files here that the user requested to download "via email" and might not have been successfully delivered and deleted. So clean-up.

    ---
    � 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 Saturday, September 21, 2024 13:08:41
    https://gitlab.synchro.net/main/sbbs/-/commit/d7ed70e42df440ef47895b65
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    user_downloaded_file() now return false upon statistics update failure

    ---
    � 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 Friday, November 01, 2024 23:46:33
    https://gitlab.synchro.net/main/sbbs/-/commit/0a1265a00a2f193d1d977577
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    strListFastDelete() now takes a count argument

    ---
    � 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 Sunday, November 03, 2024 17:09:50
    https://gitlab.synchro.net/main/sbbs/-/commit/c0c3c3ae007cc6f90469d3e0
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Check return value of seekuserdat() in putuserdat() and return failure

    ... trying to get to bottom of user.tab corruption reported in issue #797.

    Also, don't need to seek in lockuserdat() since we always call seekuserdat() first.

    ---
    � 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 Sunday, November 03, 2024 19:33:11
    https://gitlab.synchro.net/main/sbbs/-/commit/5adf169677b1dee1819f18ca
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    putuserdat() no longer calls dirtyuserdat() if the write/update failed

    ---
    � 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 Tuesday, November 12, 2024 21:15:44
    https://gitlab.synchro.net/main/sbbs/-/commit/690bb56e025804cf73cfebbf
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    A file descriptor of 0 is technically valid (though normally, STDIN)

    Likely fix for CID 514647

    ---
    � 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 Saturday, November 16, 2024 20:08:50
    https://gitlab.synchro.net/main/sbbs/-/commit/6b5a54d3bf6def6cf0694cd5
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Add description comment for find_login_id()

    ---
    � 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 Sunday, December 01, 2024 23:59:26
    https://gitlab.synchro.net/main/sbbs/-/commit/df32524348f6987de16ee0d3
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Add random jitter to lockuserdat() and putnodedat() retry delays

    so that if multiple entities call these functions at the same time, they
    don't retry at exactly the same times.

    ---
    � 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 Tuesday, December 03, 2024 09:10:53
    https://gitlab.synchro.net/main/sbbs/-/commit/ccef9d28aad4782f7879354f
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Check return value of writeuserfields() in putuserstr()

    Return correct error value upon seek failure.

    ---
    � 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 Thursday, December 05, 2024 17:00:15
    https://gitlab.synchro.net/main/sbbs/-/commit/8fd3f62078dd7035cfb2b4c1
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Make user_downloaded_file() tolerant of being passed a file path

    ... instead of just the file name, as was expected.

    ---
    � 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 Sunday, December 08, 2024 04:11:19
    https://gitlab.synchro.net/main/sbbs/-/commit/2cb39d9a8dc73a02a03df214
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Insure ctrl chars/codes are stripped from nodestatus() output

    Use strlcpy instead of strncpy

    ---
    � 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 Sunday, December 08, 2024 12:45:34
    https://gitlab.synchro.net/main/sbbs/-/commit/4610fc7b454e891fb09f2663
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix incorrect use of sizeof in node_vstatus and node_activity

    This would cause the "Logout" status and multinode chat activity
    strings to be truncated to 3 or 7 chars.

    CID 515713 and 515715

    ---
    � 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 Monday, December 16, 2024 18:24:31
    https://gitlab.synchro.net/main/sbbs/-/commit/1743d8afe6f8bd73bed45a9b
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Remove the config check from openuserdat()

    ... since all (almost all) callerd do a config check first.

    Also, some callers of openuserdat() were expecting -1 on failure (always).

    Functions that returned the return value of openuserdat() upon failure, now return USER_OPEN_ERROR instead, to be consistent.

    ---
    � 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 Thursday, December 19, 2024 13:11:15
    https://gitlab.synchro.net/main/sbbs/-/commit/d0e0e8c902f604f70108cf21
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Go back to using non-blocking periodic/polling user.tab lock attempts

    This partially reverts commit 03b84df85.

    I observed deadlocks on Linux attempting locks of user.tab on Samba share, which also deadlocked my Windows nodes. Interestingly, the Windows nodes
    never deadlocked on their own (after a week of testing) when using blocking locks.

    Double the frequency of lock retries - this has helped reduce the observed user.tab lock failures on Vertrauen.

    ---
    � 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 Sunday, December 22, 2024 21:32:50
    https://gitlab.synchro.net/main/sbbs/-/commit/913567c02f20e31ef659c768
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Report a different status for NODE_QUIT than NODE_INUSE

    Could be helpful for debugging node status issues at some point

    ---
    � 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 Wednesday, January 15, 2025 20:09:08
    https://gitlab.synchro.net/main/sbbs/-/commit/46cd7bbc3caea731da4075b9
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix parsing of field-separated birthdate strings with 4-digit year

    ... which is the format expected/required when entering or editing birthdates in the terminal server. So this is a pretty embarassingly bad bug introduced just before the v3.20b release to fix a less-severe bug with ecWeb new user registration (still) writing 2-digit years to the user.birthdate field. :-(

    Fix for issue #863

    I considerd making these get_birthdate field functions more tolerant of less strictly formatted strings (e.g. single-digit month or day), but decided to keep this change to just a fix for the issue at hand. These functions could be more robust to handle more variance in user/script input.

    ---
    � Synchronet � Vertrauen � Home of Synchronet � [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sunday, January 19, 2025 22:45:36
    https://gitlab.synchro.net/main/sbbs/-/commit/046a7e535d163bfc99deb4c8
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Zero-length string is not a valid real name.

    ---
    � 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 Monday, February 03, 2025 11:25:22
    https://gitlab.synchro.net/main/sbbs/-/commit/1677e74966d6449e108ec464
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix ERROR 2 (...) in putnode.cpp ... opening "node.exb"

    Need the O_CREAT mode flag.

    Broken with commit d116f3622: I started using opennodeext() (created 5 years ago with commit 710bb23c1bd) rather than nopen(), and I didn't realize that opennodeext() was not including O_CREAT.

    Once the ctrl/node.exb was created (by anything), this error wouldn't happen. And it'd only be an issues for systems with text.dat's that included custom node status (NodeAction*) strings. Good catch Nelgin!

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