• src/vdmodem/vdmodem.c

    From Rob Swindell@VERT to Git commit to main/sbbs/master on Wed Jun 1 04:28:27 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/27e3468a88c6fff91dcac3e9
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Store connecting-client information (e.g. IP address) in file

    by default, client.ini in the current working directory.
    Configurable filename via ClientFile key in the root section of svdm.ini.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Thu Jun 2 06:08:46 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/ccb4d7ddc3363d0e07fd1d73
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Accept all incoming connections in listen_thread()

    This sets the stage for "Caller-ID" support and IP/host filtering (before sending a "RING" result and requiring an auto-answer or host/BBS software to send "ATA").

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Thu Jun 2 06:08:46 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/2283ec95465cabd3052f624e
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Add "Caller ID" support, enabled with AT#CID=1 or AT+VCID=1

    Also controlled via [modem] CallerID key in svdm.ini fiile.
    Reports the connected IP address between the first and second RING result. Required a fix to reset the ringcount to 0 upon new connection.

    Simplified the AT command parsing logic a bit.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Jun 5 06:06:50 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/2c9fd9cdb94f0edd806ecef7
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Print build details (date, time, compiler version) with -V output.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Jun 6 02:08:40 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/e042d5d97a4a505de59fb654
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Reset "hangup event" (dropped DTR indication) upon connection

    Resolves issue with SBBS v2.30 not be able to answer an incoming "call".

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Jun 6 02:08:40 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/0c39be96ab5441694509b78f
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Enable binary-transmit mode in server by default, disabling CR->CRLF expansion

    Don't expand CR->CRLF when in binary mode that was requested locally
    (option value is DO, instead of WILL), using new telnet_opt_enabled().

    Request binary-transmit mode by default in Telnet server/answer mode.
    Set ServerBinary=false in svdm.ini to disable.

    This fixes the extra line-feeds in Telnet-server mode.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Thu Jun 9 01:25:49 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/61fc51b0cce472d017870904
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Support unlimited number/address aliases in [alias] section of ini file

    Add support for an unlimited number of dial string (e.g. phone number) aliases in the [alias] section of the read .ini file. While the AT&Z, ATDSn support for stored numbers should work fine for the same use cases, it's limited to 20 numbers (that could be easily increased) and may be less obvious to users who it works. The [alias] aliases does not use AT commands to query/store the number aliases, just .ini file edits.

    Re-read .ini file when ATZ command is received. This allows applying dynamic changes to the .ini file without re-running SVDM.

    Address some memory-leaks when reading or making changes to .ini file.

    Fix ATIn command results. The normal result format (from an actual modem) is: <text>
    <blank-line>
    OK (or 0)

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From deon@VERT/ALTERANT to Rob Swindell on Thu Jun 9 19:08:20 2022
    Re: src/vdmodem/vdmodem.c
    By: Rob Swindell to Git commit to main/sbbs/master on Wed Jun 08 2022 03:25 pm

    Log Message:
    Support unlimited number/address aliases in [alias] section of ini file

    Nice :)

    If I read it correctly, then this enables the "phone book" style dialing that I was hoping to see? ie: atdt12345 (or atds...) could result in a connection to "my.bbs.com:23"? Which makes svdm functionally consistent with tcpser (which is what I was basing my request off of...)

    Very useful :)

    On parallel topic, (I dont think you do much with DOS(?),) but I think if (a some smart cookie) compiled on DOS, it would be an updated version of RLFOSSIL - although I dont know if it is worth the effort..? Memory is a challenge on DOS and RLFOSSIL takes up too much, so not sure if the effort would result in anything more effecient? I saw somebody doing updates to mTCP so was just curious if this was even a possibility...

    Love your work...


    ...ëîåï

    ---
    þ Synchronet þ Alterant | an SBBS in Docker on Pi!
  • From Digital Man@VERT to deon on Thu Jun 9 03:24:34 2022
    Re: src/vdmodem/vdmodem.c
    By: deon to Rob Swindell on Thu Jun 09 2022 09:08 am

    Re: src/vdmodem/vdmodem.c
    By: Rob Swindell to Git commit to main/sbbs/master on Wed Jun 08 2022 03:25 pm

    Log Message:
    Support unlimited number/address aliases in [alias] section of ini file

    Nice :)

    If I read it correctly, then this enables the "phone book" style dialing that I was hoping to see? ie: atdt12345 (or atds...) could result in a connection to "my.bbs.com:23"? Which makes svdm functionally consistent with tcpser (which is what I was basing my request off of...)

    Very useful :)

    Yeah. It's very similar to the [modem] Save# keys (that are dialed with ATDS#), but more aligned with what you were asking for (and not limited to 20).

    On parallel topic, (I dont think you do much with DOS(?),) but I think if (a some smart cookie) compiled on DOS, it would be an updated version of RLFOSSIL - although I dont know if it is worth the effort..? Memory is a challenge on DOS and RLFOSSIL takes up too much, so not sure if the effort would result in anything more effecient? I saw somebody doing updates to mTCP so was just curious if this was even a possibility...

    I haven't run bare DOS in a long long time, so yeah, not really interested in that. I don't think much of this project would really be reusable on anything but Windows NT-based OSes. Little pieces, like the telnet stuff, I suppose, sure, but that's not a large portion.

    Love your work...

    Thanks! Writing this reply-message in Telix for DOS!
    --
    digital man (rob)

    Synchronet "Real Fact" #107:
    Weedpuller "Beat It Out Of You" http://youtu.be/xWZ6vFvx4Kg
    Norco, CA WX: 84.8øF, 45.0% humidity, 6 mph SSW wind, 0.00 inches rain/24hrs ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From deon@VERT/ALTERANT to Digital Man on Thu Jun 9 21:29:16 2022
    Re: src/vdmodem/vdmodem.c
    By: Digital Man to deon on Wed Jun 08 2022 05:24 pm

    Thanks! Writing this reply-message in Telix for DOS!

    Nice.

    Will you release an updated build zip file? I noticed that svdm01.zip is still the only one there.

    I did go looking to see if it was in a build artifact (for sbbs-windows) but it seems only scfg is in that artifact :(


    ...ëîåï

    ---
    þ Synchronet þ Alterant | an SBBS in Docker on Pi!
  • From Digital Man@VERT to deon on Thu Jun 9 08:05:58 2022
    Re: src/vdmodem/vdmodem.c
    By: deon to Digital Man on Thu Jun 09 2022 11:29 am

    Re: src/vdmodem/vdmodem.c
    By: Digital Man to deon on Wed Jun 08 2022 05:24 pm

    Thanks! Writing this reply-message in Telix for DOS!

    Nice.

    Will you release an updated build zip file? I noticed that svdm01.zip is still the only one there.

    Yeah, I was planning to make a 0.2 release shortly.

    I did go looking to see if it was in a build artifact (for sbbs-windows) but it seems only scfg is in that artifact :(

    I just added a CI build rule for SVDM. Thanks for the reminder.
    --
    digital man (rob)

    This Is Spinal Tap quote #4:
    David St. Hubbins: He died in a bizarre gardening accident...
    Norco, CA WX: 65.5øF, 83.0% humidity, 3 mph SSE wind, 0.00 inches rain/24hrs ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Fri Dec 23 13:49:25 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/195455873cefdd03670b3971
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Add clock related variable values to debug output

    Just in case there's some clock wrap around issue causing issue #468. Seems unlikely with a 64-bit clock, but there are a lot of conditions in the xp_timer64() implementation that could evaluate differently on different versions of Windows or on different computers.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon Dec 26 16:23:33 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/2a6d9983113de055617151b6
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Add more debug log output around the select() for recv call

    ... in hopes of debugging issue #468

    Also clean up drop files unless -d option is passed.

    Incremented version to 0.3.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Thu Dec 29 14:16:20 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/e4bfafb683347243348c54ba
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Add clock related variable values to debug output

    Just in case there's some clock wrap around issue causing issue #468. Seems unlikely with a 64-bit clock, but there are a lot of conditions in the xp_timer64() implementation that could evaluate differently on different versions of Windows or on different computers.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows)@VERT to Git commit to main/sbbs/master on Fri Aug 4 12:20:33 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/4c10ab2bf40baa46d71f3eb3
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Don't leave socket open when dial() reports "NO CARRIER"

    As reported by Deon on DOVE-net, when the call to socket_recvdone() returns true (socket is disconnected and all data has been recv()ed), dial() would report "NO CARRIER" but leave the open socket opened, thus preventing any subsequent dial attempt ("Can't dial: Already connected" and "ERROR").

    Also removed the source file path/name from the debug print statements - don't need that noise.

    Incremented the version to 0.4

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Mon Mar 25 16:29:51 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/c4644bf9460dcfe2090eee73
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Initialize telnet options when passed -h option (withouth -l)

    As requested by Fzf (FQBBS):

    When SVDM uses an inherited socket (the -h option) no telnet negotiations
    are done. As a result, the connection is assumed to be in ASCII mode and
    server side CR characters are translated to CR/LF. Since most programs are
    already transmitting a CR/LF this gets translated to CR/LF/LF with the
    expected results. When using an external socket in telnet mode, could SVDM
    set the telnet.local_option and telnet.remote_option variables as so:

    A. Assume both remote and local have already suppressed GA and set the two
    options accordingly

    B. Set the remote telnet echo option to off and set the local telnet echo
    to follow the ServerEcho option from the .INI file

    C. Set both remote and local BINARY_TX options to follow the ServerBinary
    option from the .INI file

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Mon Mar 25 16:29:51 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/5fd72f315ee20a5a40818e0b
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Add 2 new .ini settings: MainLoopDelay and SocketSelectTimeout (default: 0)

    - MainLoopDelay - in milliseconds
    Set this to a non-zero value to add some CPU yielding to the main loop
    - SocketSelectTimeout - in milliseconds
    Set this to a non-zero value to add some CPU yielding while waiting for
    receive data from the TCP socket

    These are 2 knobs created for Fzf (FQBBS) to "to reduce the CPU usage". Their default values are currently 0, so you'll need to set these to non-zero values to play with each of them and see their inpact on CPU utilization and responsiveness. I'd suggest starting with low values (e.g. 1) and experimeting from there.

    Incremented version to 0.5

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed Apr 10 23:07:19 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/af28c04c28270ddfcba180e2
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    When server_binary option is set, request remote BINARY_TX option

    As reported by Fzf (FQBBS):

    It addresses the local configuration but unfortunately it still doesn't set remote options. The remote is usually going to be in binary mode but SVDM has the remote option set to ASCII by default. A CR from the remote then gets held up until a second byte is sent.

    Also suggested by Fzf, when server_binary mode is not configured, then advertise
    and request binary mode is/be disabled, explicitly.

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