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>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net