• docs/v322_new.md src/sbbs3/sbbsexec.c vdd_func.h xtrn.cpp

    From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Sun Oct 25 14:40:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/eb6e30af8af755f35dc494bc
    Modified Files:
    docs/v322_new.md src/sbbs3/sbbsexec.c vdd_func.h xtrn.cpp
    Log Message:
    Allow concurrent DOS doors on the same node number from two BBS hosts

    The mailslots and events the Windows VDD (sbbsexec.dll) and its host
    share were named by node number alone since 7e3e47141a (2000-10-10),
    so a second BBS instance on the same system (another Synchronet install
    or a different BBS package using our FOSSIL/UART driver) running a DOS
    program for the same node number failed its launch with an ERR_CREATE
    on the rd mailslot.

    The host now creates the legacy names first, the mailslot before the
    events since its name is machine-global and CreateMailslot() fails
    atomically when it exists. On ERROR_ALREADY_EXISTS it retries once
    with a ".<pid>" suffix and launches the VDM with SBBSEXEC_INSTANCE=<pid>
    in its environment; the VDD appends the suffix to every name it opens.
    With no variable set the VDD uses the exact legacy names, so an older sbbsexec.dll keeps working wherever a launch worked before.

    Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
    --- SBBSecho 3.38-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)