• src/vdmodem/vdmodem.c

    From Rob Swindell@VERT to Git commit to main/sbbs/master on Wed May 11 00:37:31 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/254176a6b602169c66fdea30
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Set Telnet-server options (e.g. will echo) in answer()

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun May 15 23:49:56 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/0eb0f451162febc4a27bbefd
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Implement svdm.ini file support to store settings and modem NVRAM

    e.g. AT&W writes the current settings to the [modem] section.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon May 23 18:04:14 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/2926ff0b6bf742431d1d51c7
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Save modem "NVRAM" settings to ini file

    Support [sockopts] (socket options) settings in ini file

    CamelCase the ini key names

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon May 23 18:04:14 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/d38c2400f1181eda83c8296e
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Usage/syntax help output, read svdm.ini from path of svdm.exe

    Support specifying an additional or alternate .ini file to read using -c<fname> option.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Mon May 23 19:30:00 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/13648112108b9adfbe7bd9bb
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Don't close externally opened/passed socket descriptors

    Set sbbs_hungup event state correctly based on initial online state (i.e. FALSE if already connected/online).

    Allow BusyNotice (string) to be configurable via .ini file.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Tue May 24 21:58:46 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/e0dc8d54b253746771116317
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Include Git branch/hash in detailed version output

    svdm -V and "ATi1" output.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Fri May 27 13:02:57 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/a7934b7cb7314b7d26f2f1ef
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Increment version to 0.1

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun May 29 18:52:13 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/198ef67f9a1952947aeced0c
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Fix port parsing in dial string

    More case-insensitivity in parsing special "number" values (e.g. 'L' for last number).

    Default to Telnet mode (not Raw TCP).
    Default to unspecific address family (not IPv4).
    Case-insensitive "-telnet" and "-raw" option recognition.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun May 29 18:52:13 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/d7b1f25e17057c45d105b1e7
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Send a "banner" when accepting incoming connections.

    Fix a corner case where an invalid command-mode escape sequence (e.g. "+.+.+") could've been interpreted as valid.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun May 29 18:52:13 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/a6d7c5805f6f4996c700af65
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Resolve the socket protocol/address family issues with IPv4 vs. IPv6

    When listening, the address family cannot be PF_UNSPEC, so default to PF_INET (IPv4), when not specified.
    Not sure why we're setting ai_flags to PF_UNSPEC (copied from syncterm) - that's just 0, but otherwise the PF_ and AI_ flags are not compatible.
    Don't set the ai_flags to anything here since they don't seem to change the behavior.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun May 29 19:19:50 2022
    https://gitlab.synchro.net/main/sbbs/-/commit/d375556d8f6c6d40e0ae778c
    Modified Files:
    src/vdmodem/vdmodem.c
    Log Message:
    Enable experimental sbbsexec modes (e.g. redir DOS I/O)

    Added undocumented experimental options -I and -O to enable DOS input and output interception modes in sbbsexec (e.g. to be used possibly with '-h'). Also -M to specify sbbsexec mode value by number (e.g. 3 to enable DOS Input/Output redir).

    Added '-n' option to specify node number (probably no real value/need).

    Safe string formatting.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Tue May 31 18: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 Wed Jun 1 20: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 Wed Jun 1 20: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 Sat Jun 4 20: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 Sun Jun 5 16: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 Sun Jun 5 16: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 Wed Jun 8 15: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 09: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 Wed Jun 8 17: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 11: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 Wed Jun 8 22: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