__                 _ _                _
  / _| ___   ___   __| | |__   __ _ _ __| | __
 | |_ / _ \ / _ \ / _` | '_ \ / _` | '__| |/ /
 |  _| (_) | (_) | (_| | |_) | (_| | |  |   <
 |_|  \___/ \___/ \__,_|_.__/ \__,_|_|  |_|\_\

A personal BBS  ·  Missoula, Montana  ·  formerly NaClCON BBS

Connect from your terminal: telnet naclconbbs.net 23  |  ssh naclconbbs.net -p 2222

  • src/sbbs3/jsexec.cpp

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat Mar 28 23:17:59 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a4aee23ca58ec4fb3d8e048b
    Modified Files:
    src/sbbs3/jsexec.cpp
    Log Message:
    Go back to using "non-standard third parameter to main for environment"

    ... but only for non-macOS builds, since apparently there was an issue
    (see commit bae7c4dc6d).

    This revert fixes the following MSVC build warning
    warning C4273: '__p__environ': inconsistent dll linkage

    This *may* fix an issue that plt was reporting where it appeared the SBBSCTRL environment variable was getting clobbered by running 'jsexec addfiles.js'
    for imports of a lot of files resulting in subsequent errors (running jsexec) with finding main.ini since the SBBSCTRL environment (pointing to the correct location of main.ini) was missing or empty in the process or shell. A similar error was reported using SBBSCTRL->User->Edit or SBBSCTRL->File->Run ... , but only after running jsexec (addfiles.js). The root cause was not determined, so this is just a guess that there could be some relation to this change.

    ---
    þ 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 Mar 29 00:54:19 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d165e10c69d34d8a58213d6c
    Modified Files:
    src/sbbs3/jsexec.cpp
    Log Message:
    In MSVC, at least, environ is a macro for _environ which is a function

    ... so this change would crashes on the call to js_init().

    Revert to the use of 'env' as the argument name (as before commit
    bae7c4dc) and hope this change works for macOS build too.

    ---
    þ 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 May 2 16:42:49 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/298b65174553fc1beeffa22a
    Modified Files:
    src/sbbs3/jsexec.cpp
    Log Message:
    Restore the warning about SBBSCTRL environment variable missing

    .. and when using the default "/sbbs/ctrl" path, but only if the input stream (stdin) is a console.

    This should keep the fix for CGI usage (commit 54431b319d5a4288c) but restore the helpful warning for sysops that foget to set the SBBSCTRL environment variable.

    ---
    þ 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 Tue Sep 29 15:57:27 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/aba1e3e94f2480835d0936a1
    Modified Files:
    src/sbbs3/jsexec.cpp
    Log Message:
    jsexec: don't call lprintf() from the SIGTERM/SIGHUP handlers

    break_handler() and recycle_handler() logged "Terminated/Recycled Locally"
    via lprintf(), which locks output_mutex. A signal arriving while the main thread was inside lprintf() deadlocked the process on that mutex, so a long-running jsexec service (IRC bot, ircd) could ignore SIGTERM until systemd's stop timeout SIGKILLed it. Reproduced in 15 of 40 SIGTERMs to a script that logs continuously; 0 of 40 with this change.

    The handlers now only record the signal and set the flags; the messages
    are logged from the main thread once js_exec() returns.

    Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

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