• src/sbbs3/userdat.c

    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
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Friday, April 11, 2025 18:13:56
    https://gitlab.synchro.net/main/sbbs/-/commit/02021bb18021c5d9d3da6e65
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Move check_pass() nearer the other check_* functions
    ---
    þ 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 07, 2025 22:32:51
    https://gitlab.synchro.net/main/sbbs/-/commit/8e4a5c7fbabc68de3094c18f
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Add some comments to clarify difference between getbirthdstr and format_birth ---
    þ 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 Saturday, August 09, 2025 19:12:38
    https://gitlab.synchro.net/main/sbbs/-/commit/c2805c6babbed02117e84852
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    User the laston date (rather than the last logon date/time) to reset stats

    (daily stat fields, logons/posts/emails/etc per day)

    This behavior was changed (broken) in commit ed00ed77
    ---
    þ 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 Saturday, August 09, 2025 22:27:00
    https://gitlab.synchro.net/main/sbbs/-/commit/5e4076dbf2c128c98fa31f47
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Eliminate the (now) unnecessary ushort range checking
    ---
    þ 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, August 10, 2025 15:16:51
    https://gitlab.synchro.net/main/sbbs/-/commit/7a66d7f639788ba50797f943
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Resolve CID 583942 with a typecast

    Will need to switch to 64-bit time_t everywhere by 2038. We only maintain 32-bit time_t support (via time32_t) for Borland C++ compatibility.
    ---
    þ 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, August 10, 2025 21:40:43
    https://gitlab.synchro.net/main/sbbs/-/commit/27cbebcb9ac75ff1f51a5ef2
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    There are actually 8 user fields that reset/zeroed daily, so check them all

    This is really just an optimization (I think), so we don't call time() for every parse/getuserdat() call, but only when the user has a non-zero daily reset field.
    ---
    þ 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, August 11, 2025 15:51:59
    https://gitlab.synchro.net/main/sbbs/-/commit/bd9719d8df4a918ee1667d5a
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Add a user.level valid value range check to resetdailyuserdat()

    ... just in case we're called with an uninitialized user struct.

    Related to CID 583999
    ---
    þ 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, September 14, 2025 19:48:26
    https://gitlab.synchro.net/main/sbbs/-/commit/869dac47e01978f4e7f20fb5
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix inverted "GUEST" ARS keyword logic bug

    introduced in commit 661f5084fca81a01

    Fixes issue #975
    ---
    þ 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 Wednesday, December 17, 2025 15:49:56
    https://gitlab.synchro.net/main/sbbs/-/commit/2f7623fe054d6c2b9c1e41ec
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Do some error checking in logoutuserdat()

    (i.e. user.tab open/lock/read/write failures)

    I suspect this function has been failing on Vertrauen under heavy (Guest login/out) load, but there was no actual error reporting from this function which opens, locks, read and writes the user.tab file 4 times (!) for every user logout.

    Ideally:
    - this function would return more error details than simply success/failure
    - this function would only open/lock/read/write the user.tab file only once ---
    þ 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 Wednesday, December 17, 2025 19:09:19
    https://gitlab.synchro.net/main/sbbs/-/commit/5ccd9e8ccc6fd0158c7228b6
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix bug in subtract_cdt() handling free credit roll-under to regular credits

    Bug introduced in commit 8deac23222b3a3db (copy/paste/typo)

    Caught during manual code review.

    When a user has any amount of free credits, but the amount being subtracted
    was greater than their free credits available, the underflow was supposed to
    be deducted from their regular credits. Instead, the underflow was (attempted) to be deducted from their free credits, which were alreay zeroed.
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net