• src/sbbs3/xtrn.cpp

    From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Thu Apr 28 18:55:48 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/47e604723eb6eb602ed7e463
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    When running 16-bit DOS commands "offline" on Windows, don't use dosxtrnWe shouldn't need a virtual UART/FOSSIL driver to execute "offline" program (e.g. timed events) in the first place, and our virtual UART/FOSSIL for Windows wouldn't work right in the scenario anyway even if it did load successfully.This resolves the reported issues with timed events configured as not "native" returning error 255 (and not running successfully) on Windows with SBBS v3.19. I'm not even sure what changed exactly in xtrn.cpp, dosxtrn.c, and sbbexec.c between v3.18 and v3.19 that's causing this to now fail, but it (using DOSXTRN to run offline DOS programs) really shouldn't have been attempted in the first place. So that was just a design issue that happened to kind of sort of work up until v3.19.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Tue Jun 14 23:09:25 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/e54263fde0be580dcbaf77c8
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Log command-line that led to logged error opening DOSXTRN.RET
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Sat Jul 2 12:22:07 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/280f16f4f373956c17d2a5eb
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Add EXECDIR, DATADIR, and XTRNDIR to DOSemu command replacement tokensAs requested. This closes issue #416
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Wed Jul 6 18:23:10 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/ce475f794e112fa9c9f435c6
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Don't log error opening DOSXTRN.RET when terminating an externalIf we detect a client disconnection and terminate DOSXTRN.EXE, don't try to open DOSXTRN.RET and log an error when the file doesn't exist (as would be expected).
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Fri Oct 7 18:42:19 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/e7109c87bc43f21636c5f981
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    When user hangs-up on external programs on *nix, try to terminate w/SIGTERMPreviously, when a user disconnected or ran out of time while running astdio-based external program on *nix, if the program was still running, we'dsend it a SIGHUP, wait up to 10 seconds for the process to terminate and ifit did not, terminate it (ungracefully) with SIGKILL. Since some programscatch SIGTERM (and not SIGHUP) to indicate a termination request, we now willfirst attempt a SIGHUP, wait up to 5 seconds for the process to terminate andif it does not, then send a SIGTERM and wait up to another 5 seconds for itto terminate and if it doesn't, then finally send it a SIGKILL (which cannotbe caught and always results in an ungraceful termination of the childprocess).This doesn't resolve any specific problem with any specific stdio-basedexternal program, but I was playing around with ESR's port of Adventure(https://gitlab.com/esr/open-adventure) and a new auto-save/restore of gamestate and noticed that we weren't using SIGTERM for this situation, though weshould have. Most modern programs, if they catch SIGHUP at all, use it toindicate a refresh of configuration or data files, not a termination request(or indication that a user has "hung up"). So SIGTERM is more reasonable to beexpected to be caught and initiate the graceful termination of the childprogram that we're hoping for.
    --- SBBSecho 3.15-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Thu Dec 29 09:35:16 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/f78a70986d1e3b21b09ca32e
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Fix name of data event
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell@1:103/705 to Git commit to main/sbbs/master on Wed Jan 25 10:29:48 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/23513871ebc07d81e7cb83d8
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    0-init the 'gamedir' variableResolves CID 434888, not sure why this one didn't show up before.
    --- 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 Fri Nov 10 21:03:12 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/47773812d5d779c3a2d5466a
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Eliminate unsafe sprintf calls (replaced with snprintf) in *nix build
    --- 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 Fri Dec 8 23:03:47 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/90de66ac9910333dfdf76d98
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Move the startup directory checking to the "native" block of *nix build

    of sbbs_t::external()

    The startup directory for DOS doors might not be a valid Unix (case-sensitive) path, so let's just do that check in the native block here.

    Also, removed a bunch of redundant startup_dir ==/!= NULL checks. It can't be NULL here.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Feb 12 14:07:17 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/241475effe9d6c09d677b323
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Since on at least Debian 12.4, the ttydefaults array is completely
    wrong, do c_cc the stupid (but POSIXly correct) way with a billion
    supporting.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Feb 12 14:26:47 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/d1642fb88cf3d8ac38c6d8e2
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Explicitly initialize c_cc to _POSIX_VDISABLE since we can't know
    that we're setting all the values anymore. :(
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Feb 12 14:54:00 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/9db2d372ed865d17b7fb4ce2
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Don't use i for loop index since it's signed.
    --- 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 Fri Apr 26 17:11:49 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/40280934edd931d5d3516b7e
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Convert CP437 to UTF-8 (when necessary) for *nix stdio doors (e.g. DOSEMU)

    ... as requested by "ben" in #synchronet at irc.synchro.net

    Currently, this assumes all stdio doors aren't "UTF-8 native", which might be an incorrect assumption.
    --- 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 Fri Apr 26 17:25:56 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/5277021c97929fc46c742093
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Fix GCC-aarch64 compile (caught be pipeline)

    error: cannot bind non-const lvalue reference of type ‘long unsigned int&’ to an rvalue of type ‘long unsigned int’

    Just getting rid of more use of ulong (replaced with size_t).
    --- SBBSecho 3.20-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 Fri Apr 26 19:16:06 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/da313d28ca8be77e28f96d8e
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Fix MSVC compiler issues introduced in previous commit

    And use DWORD insteaad of 'unsigned long' where specified by Win32 API.
    --- 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 Sat Mar 1 15:05:35 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/76fa22e427a7b9978084bf94
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Remove lprintf() call from child process of fork() call on *nix

    the info-level debug message "Detaching external process"... as this appears
    to be the cause of background events hanging sometimes, on Linux (at least). --- SBBSecho 3.23-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Oct 20 20:05:53 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/35d530c3a4eccd6b2ed1964b
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Disable pause when running an external program.

    Not sure if this is from the terminal overhaul or from the unicode
    support, but passthru_thread calls rputs() which calls cp437_out()
    which calls outchar() which calls check_pause().

    Also, put an EINTR wrapper around waidpid()... that wasn't the
    problem I was seeing, but it's a theoretically possible one.
    --- SBBSecho 3.30-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Mon Oct 20 20:24:10 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/47e263f1e72073e9488db9f8
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Remove unneeded debug logging.
    --- SBBSecho 3.30-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tue Oct 21 01:09:42 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/00d24f1bfc0f8e2f5453579f
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Revert "Disable pause when running an external program."

    This reverts commit 35d530c3a4eccd6b2ed1964bf21cbcf9237da721.
    --- SBBSecho 3.30-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 Wed Dec 31 01:59:39 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/26904b5dc456d76dc1b0ec29
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Only attempt to unlock the input_thread_mutex if we previously locked it

    This *might* fix issue #1038
    --- 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 Sun Jan 11 19:36:10 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/5d43eed990eda19d808d8c92
    Modified Files:
    src/sbbs3/xtrn.cpp
    Log Message:
    Don't use dosemu paths in command-lines when dosemu support is disabled

    This just adds to confusion when debugging weird errors, like this:

    pack_qwk.cpp line 753 (pack_qwk) executing "H:\zip -jD /sbbs/data/file/0230.qwk --- SBBSecho 3.34-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)