• exec/ircd.js exec/load/ircd/core.js exec/tests/ircd/shutdown.js

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Mon Nov 9 21:51:51 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/9f32ca5516fcc302ee397167
    Modified Files:
    exec/ircd.js exec/load/ircd/core.js exec/tests/ircd/shutdown.js
    Log Message:
    ircd: close every socket when the script exits

    An exit that does not go through DIE or RESTART (a script error, or
    termination by the host) left every client, link and listening socket
    open. Under "jsexec -l" the script is re-run in the same process, so the previous run's listener on the default port stayed bound alongside the new
    one and went on receiving connections that nothing accepted: the server
    linked out to its hub but could not be reached.

    Register Close_All_Sockets() as an exit handler. It is registered before
    the shutdown notification and exit handlers run last-in first-out, so
    peers are sent the QUITs before the sockets close. The P-line listeners
    are now kept in PLine_Sockets so that they can be closed too.

    Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>

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