• exec/load/ircd/config.js unregistered.js

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Tuesday, April 28, 2026 20:23:15
    https://gitlab.synchro.net/main/sbbs/-/commit/5ef0f86d30909fafc1d02c90
    Modified Files:
    exec/load/ircd/config.js unregistered.js
    Log Message:
    ircd: phone-patch the webchat repeater (WEBIRC support)

    Add the WEBIRC handshake to ircd.js so a trusted webchat gateway -- think
    HAM phone-patch -- can call CQ as the relay station and announce the real operator's QTH (IP/host) ahead of NICK/USER. Without it, every webchat op
    keys up under the gateway's own callsign: useless for /whois, useless for K-lines, useless for accountability.

    Trusted gateways are configured via [WebIRC:N] sections in ircd.ini, or 'W:gateway-ip:password' lines in legacy ircd.conf -- matching the look of
    the existing [Operator]/[Server]/[Ban] sections (and O:/N:/K: rows).

    * exec/load/ircd/unregistered.js -- new case "WEBIRC" handler. Verifies
    the shared password against the W: line for the connection's source IP,
    rewrites this.ip / this.hostname to the supplied values, cancels any
    in-flight RDNS, and calls Unregistered_Check_User_Registration in case
    NICK/USER have already arrived. Idempotent: a second WEBIRC on the same
    channel is logged and dropped. Untrusted source or bad password is
    silently ignored (logged at WARN) so a misconfigured patch stays
    debuggable instead of breaking the band.

    * exec/load/ircd/config.js -- WLines storage in Clear_Config_Globals,
    ini_WebIRC parser registered in ini_sections, [WebIRC:N] block emitter
    in Write_Config_File, WLine constructor, and a 'W:' case in the legacy
    read_conf_config switch so both config formats round-trip cleanly.

    73 de unregistered.js -- clear and QRT.

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

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