• src/sbbs3/ftpsrvr.cpp mai

    From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Friday, February 06, 2026 02:45:00
    https://gitlab.synchro.net/main/sbbs/-/commit/3647500dae6b2959d2fe1841
    Modified Files:
    src/sbbs3/ftpsrvr.cpp mailsrvr.cpp services.cpp trash.h websrvr.cpp
    Log Message:
    Create/use C++ class wrapper for cached ip/host/ip-silent.can files

    I have a pretty well maintained text/ip.can file, and it is still over 500KB. That half-MB file was being read over a network share for every single TCP connection. This fixes that.

    I'm not using this for the terminal server yet since it doesn't get hit nearly as frequently as the other servers and there's special handling of .can files there (the auto display of bad*.msg files).

    This commit also includes fixes for a lot of new warnings in ftpsrvr.cpp when built with g++.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From MRO@VERT/BBSESINF to Rob Swindell (on Windows on Friday, February 06, 2026 06:24:00
    Re: src/sbbs3/ftpsrvr.cpp mailsrvr.cpp services.cpp trash.h websrvr.cpp
    By: Rob Swindell (on Windows 11) to Git commit to main/sbbs/master on Fri Feb 06 2026 02:45 am

    https://gitlab.synchro.net/main/sbbs/-/commit/3647500dae6b29
    59d2fe1841 Modified Files: src/sbbs3/ftpsrvr.cpp
    mailsrvr.cpp services.cpp trash.h websrvr.cpp Log Message:
    Create/use C++ class wrapper for cached ip/host/ip-silent.can
    files

    I have a pretty well maintained text/ip.can file, and it is still
    over 500KB. That half-MB file was being read over a network share
    for every single TCP connection. This fixes that.

    I'm not using this for the terminal server yet since it doesn't
    get hit nearly as frequently as the other servers and there's
    special handling of .can files there (the auto display of bad*.msg
    files).

    This commit also includes fixes for a lot of new warnings in
    ftpsrvr.cpp when built with g++.



    so will this speed things up for people with just large .can files?
    i remember telling you years ago that mine was big and there was a large
    delay to login. i had to trim it down short.


    --
    "Before using Wildcat....This Company did not have a convenient way of
    looking after some of the richest clients in the world...Now we do!"
    ---
    þ Synchronet þ ::: BBSES.info - free BBS services :::
  • From Digital Man@VERT to MRO on Friday, February 06, 2026 15:33:00
    Re: src/sbbs3/ftpsrvr.cpp mailsrvr.cpp services.cpp trash.h websrvr.cpp
    By: MRO to Rob Swindell (on Windows on Fri Feb 06 2026 06:24 am

    so will this speed things up for people with just large .can files?
    i remember telling you years ago that mine was big and there was a large delay to login. i had to trim it down short.

    Yes, but the speed up is only for the non-terminal servers (e.g. the web, mail, ftp, and services servers) right now.
    --
    digital man (rob)

    Synchronet "Real Fact" #50:
    JAM and Squish were considered before developing Synchronet Message Base format Norco, CA WX: 67.2øF, 63.0% humidity, 8 mph W wind, 0.00 inches rain/24hrs
    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Friday, February 06, 2026 17:25:00
    https://gitlab.synchro.net/main/sbbs/-/commit/7a5c8108401d75b376a97ac1
    Modified Files:
    src/sbbs3/ftpsrvr.cpp mailsrvr.cpp services.cpp trashcan.hpp websrvr.cpp
    Log Message:
    Use the configured (per-sever) sem check interval for the can file chk interval

    The future came fast. :-)

    This setting's default value is 2 seconds, that's fine.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Tuesday, February 10, 2026 03:04:00
    https://gitlab.synchro.net/main/sbbs/-/commit/9db594ae4ecfe41d624d7839
    Modified Files:
    src/sbbs3/ftpsrvr.cpp mailsrvr.cpp main.cpp readmsgs.cpp trash.c trash.h websrvr.cpp
    Log Message:
    Just a little function rename fun: <thing>_is_<something>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Tuesday, February 10, 2026 03:04:00
    https://gitlab.synchro.net/main/sbbs/-/commit/bc4ae42b438e0a784b6c155b
    Modified Files:
    src/sbbs3/ftpsrvr.cpp mailsrvr.cpp main.cpp services.cpp userdat.c websrvr.cpp
    Log Message:
    Eliminate redundant reads of ipfilter_exempt.cfg

    We were still reading this file from disk in loginBanned() (we don't even need to call that function if the host is exempt) and other places. Nothing even calls host_is_exempt() now.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Thursday, February 12, 2026 21:37:00
    https://gitlab.synchro.net/main/sbbs/-/commit/972f8f999377383d7dd2846f
    Modified Files:
    src/sbbs3/ftpsrvr.cpp mailsrvr.cpp websrvr.cpp
    Log Message:
    Increase maximum rate limit message length (accounting for IPv6 addresses)

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Sunday, March 01, 2026 05:36:00
    https://gitlab.synchro.net/main/sbbs/-/commit/46aff3363721657bd2726091
    Modified Files:
    src/sbbs3/ftpsrvr.cpp mailsrvr.cpp services.cpp websrvr.cpp
    Log Message:
    Don't deref filter file objects upon cleanup if null (e.g. never allocated)

    This makes the servers resilient (not crash) if load_cfg() fails.

    This resolves the segfault reported as part of issue #685 follow-up discussion:

    Program terminated with signal SIGSEGV, Segmentation fault.
    426 /usr/include/c++/10/bits/atomic_base.h: No such file or directory. [Current thread is 1 (Thread 0x400005cc61c0 (LWP 11))]
    (gdb) bt

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, March 11, 2026 00:53:00
    https://gitlab.synchro.net/main/sbbs/-/commit/61695ba1a683ef1a7a50223c
    Modified Files:
    src/sbbs3/ftpsrvr.cpp mailsrvr.cpp main.cpp services.cpp websrvr.cpp Log Message:
    Ensure absolutely nothing executes after thread_down()

    Round 1 (2fb010d6c3) moved heavy shared-resource ops before thread_down
    but left lprintf calls after it. Every lprintf goes through lputs which
    calls mqtt_lputs(&mqtt, ...) Ä and cleanup destroys mqtt via
    mqtt_shutdown(). In services.cpp, the post-thread_down lprintf calls active_clients() which iterates the service[] array reading
    protected_uint32 values (CRITICAL_SECTIONs on Windows) that cleanup
    destroys at line 1807. Since all server DLLs share the CRT heap,
    corruption from any server is detected when another server calls free().

    Move all remaining lprintf calls before thread_down. For log messages
    that reported the thread_down() return value as "threads remain", use protected_uint32_value(thread_count) - 1 as an approximation instead.

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

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