• src/sbbs3/main.cpp sbbs.h

    From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Tue Apr 9 18:03:00 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/221507a8d36e31306b0e9a6d
    Modified Files:
    src/sbbs3/main.cpp sbbs.h
    Log Message:
    Reduce the Terminal Server thread outcom timeout from 80 seconds to 800 ms

    Since the Terminal Server is a single thread, let's not block for long
    periods of time trying to send bytes to a client (e.g. send the badip.msg
    file contents to a client with a blocked IP address), effectively DoSing the terminal server.

    This should address the problem reported via IRC:
    <theviper4> ³Apr 9 15:38:11 viper-bbs synchronet: term Terminal Server timeout(outcom) 0000 0000
    <theviper4> ³Apr 9 15:38:35 viper-bbs synchronet: term Terminal Server !ERROR 110 sending on socket 39
    <theviper4> ³Apr 9 15:38:35 viper-bbs synchronet: term Terminal Server !ERROR 32 sending on socket 39
    <theviper4> ³Apr 9 15:38:35 viper-bbs synchronet: term Terminal Server !ERROR 32 sending on socket 39
    <theviper4> ³Apr 9 15:38:36 viper-bbs synchronet: term 0039 Telnet !CLIENT BLOCKED in ip.can: 117.95.153.33

    Also, make the outcom timeout error message more helpful (e.g. include the
    sock descriptor of the client) and don't use the old rioctl() function
    here any more.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Tue Apr 9 18:03:00 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/424dfe1073b2f29f039431d8
    Modified Files:
    src/sbbs3/main.cpp sbbs.h str.cpp
    Log Message:
    Create/use sbbs_t::flush_output(timeout)

    If client socket is connected, wait up to the specified timeout period (in ms) for the output buffer to be emptied.

    This is much preferred over blindly calling mswait() after sending some data (e.g. a file) and possibly waiting much longer than necessary.

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