• src/sbbs3/ftpsrvr.cpp mailsrvr.cpp main.cpp services.cpp websrvr.cpp s

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat May 2 20:14:22 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/fa9cf1d4f06f454d8e74545e
    Modified Files:
    src/sbbs3/ftpsrvr.cpp mailsrvr.cpp main.cpp services.cpp websrvr.cpp src/xpdev/semfile.c semfile.h
    Log Message:
    sbbs3 servers: ctrl/clear semfile + outcome logging for per-IP clear

    Extend the ctrl/clear semfile (and its .ftp/.mail/.web/.services/.term variants) so every TCP server reads it, not just the terminal server.
    Each server now initializes, primes, polls, and frees its own clear_attempts_semfiles list alongside its existing
    shutdown/pause/recycle ones, sharing the parsing logic introduced for
    main.cpp in cdd821ac1.

    Move readSemfileIp() from main.cpp's static helper out to
    xpdev/semfile.{h,c} as semfile_first_line(), so all five servers can
    use it without duplicating the fopen/fgets/truncsp boilerplate.

    Log the outcome of each per-IP clear: report how many entries were
    removed (which may legitimately be zero if the IP was never on the
    list), or warn if the address failed to parse. Makes it possible to
    tell from the log whether a clear request actually targeted anyone.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

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