• src/vdmodem/vdmodem.c

    From Rob Swindell@VERT to Git commit to main/sbbs/master on Wednesday, May 11, 2022 00:37:31
    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 Sunday, May 15, 2022 23:49:56
    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 Monday, May 23, 2022 18:04:14
    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 Monday, May 23, 2022 18:04:14
    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 Monday, May 23, 2022 19:30:00
    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 Tuesday, May 24, 2022 21:58:46
    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 Friday, May 27, 2022 13:02:57
    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 Sunday, May 29, 2022 18:52:13
    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 Sunday, May 29, 2022 18:52:13
    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 Sunday, May 29, 2022 18:52:13
    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 Sunday, May 29, 2022 19:19:50
    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 Tuesday, May 31, 2022 18:28:27
    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 Wednesday, June 01, 2022 20:08:46
    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 Wednesday, June 01, 2022 20:08:46
    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 Saturday, June 04, 2022 20:06:50
    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 Sunday, June 05, 2022 16:08:40
    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 Sunday, June 05, 2022 16:08:40
    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 Wednesday, June 08, 2022 15:25:49
    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 Thursday, June 09, 2022 09:08:20
    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 Wednesday, June 08, 2022 17:24:34
    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 Thursday, June 09, 2022 11:29:16
    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 Wednesday, June 08, 2022 22:05:58
    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 Friday, December 23, 2022 13:49:25
    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 Monday, December 26, 2022 16:23:33
    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 Thursday, December 29, 2022 14:16:20
    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 Friday, August 04, 2023 12:20:33
    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 Monday, March 25, 2024 16:29:51
    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 Monday, March 25, 2024 16:29:51
    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 Wednesday, April 10, 2024 23:07:19
    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