• src/sbbs3/scfglib1.c

    From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Mon Jan 9 15:52:32 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/a9a4f2280007c74f62e79bc8
    Modified Files:
    src/sbbs3/scfglib1.c
    Log Message:
    Change the default MQTT protocol version from 5.0 to 3.1.1I read that 3.1.1 is much more widely supported, but perhaps that was oldinfo.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (in GitKraken)@1:103/705 to Git commit to main/sbbs/master on Mon Mar 20 17:37:59 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/aa89e19333de108d30a41fca
    Modified Files:
    src/sbbs3/scfglib1.c
    Log Message:
    Address MSVC warning: conversion from 'double' to 'unsigned int'... possible loss of data (yeah, yeah, we know)
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows)@1:103/705 to Git commit to main/sbbs/master on Thu Apr 13 18:45:54 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/0ecf245c77cb0092594e98bf
    Modified Files:
    src/sbbs3/scfglib1.c
    Log Message:
    Clamp the security level lines per message value between 1 and 65535If a user's security level lines per message was set to '0', bad things wouldhappen to the heap if the user posted/sent a message. '1' is a reasonableminimum value. If you don't want a user/group of users to send/post messages,there are restrictions for achieving that. Also this setting is (currently,at least) 16-bit, so clamp it there too on the high end.Also clamp the expire-to security level setting between 0 and 99, while we'rehere and noticed that this value wasn't being sanitized either.
    --- SBBSecho 3.20-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 Mon Dec 29 16:28:43 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/234c37d88a5564fec9324fa5
    Modified Files:
    src/sbbs3/scfglib1.c
    Log Message:
    Make the default user_prompts and usercfg modules point to stock scripts
    --- SBBSecho 3.34-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 May 2 16:42:49 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/cbcb74574ca2a92b1e99def4
    Modified Files:
    src/sbbs3/scfglib1.c
    Log Message:
    sbbs3 make_data_dirs(): faster startup directory verification

    On systems with many file directories (Vertrauen has thousands), the "Verifying/creating data directories" startup phase took ~8 seconds
    because each entry triggered serial stat()/mkdir() syscalls.

    Three changes drop that to ~2 seconds (4x speedup):

    1. Dedup. Most cfg->dir[i]->data_dir values default to <data_dir>dirs
    (load_cfg.c:308), which make_data_dirs() already creates near the
    top of the function. Seed a str_list with that path and skip
    md_fast() in the per-dir loop when the value matches. The seed is
    only pushed on successful creation — failure causes the loop to
    retry per entry rather than skip silently.

    2. mkdir-first via a new file-static md_fast(). md() does
    isdir()+stat() before mkpath, which on Windows fetches file
    attributes and trips Defender's "file opened" introspection.
    md_fast() issues a single MKDIR() and trusts EEXIST without
    re-stat'ing, falling back to md() only when the parent component
    is missing or an unexpected errno surfaces. The tradeoff is that
    a non-directory file at one of these paths won't be diagnosed at
    startup; the BBS reports it later when something tries to open
    files inside it. Public md() is unchanged so other callers keep
    their stricter contract.

    3. trim_trailing_slash() helper shared between md_fast() and the
    loop's cache-key computation, so the canonicalization lives in
    one place.

    Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)