• src/doors/syncdoom/mp_server.c xtrn/syncdoom/syncdoom_lib.js

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun Jun 21 15:31:29 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/f6cb31ded76c799d5c496f87
    Modified Files:
    src/doors/syncdoom/mp_server.c xtrn/syncdoom/syncdoom_lib.js
    Log Message:
    syncdoom: quit empty matches fast + reap dead servers' registry files

    Two fixes so abandoned/dead games stop lingering in the Browse list:

    - mp_server.c: once a client has connected, an empty match (creator cancelled,
    everyone left, or the game finished) now quits after ~8s instead of the full
    60s idle timeout. A never-joined spawn keeps the full grace (its creator's
    connect is still in flight). An empty match is already hidden from Browse, so
    nobody can join it during the wait anyway.

    - sd_list_games: a clean shutdown removes its own .ini, but an unclean death
    (kill/crash) leaves it frozen at its last heartbeat. Reap (delete) such a
    file once it's well past stale (x3, leaving margin for SMB attribute-cache
    lag on a shared cross-host games dir); a still-live server re-creates its
    file on the next heartbeat. The merely-stale window still just hides it.

    Validated: reap test deletes only the ancient orphan, keeps stale/empty ones hidden-but-present, lists the joinable game.

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

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