- May 24, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
Support specifying an additional or alternate .ini file to read using -c<fname> option.
-
Rob Swindell authored
Support [sockopts] (socket options) settings in ini file CamelCase the ini key names
-
- May 19, 2022
-
-
Rob Swindell authored
When looping to highest user number, use system.lastuser, not system.stats.total_users. This explains why not all userbases would be affected by the just-fixed issue in js_user.c. If the total_users happens to equal lastuser, then you would have hit the issue in js_user.c. If you had at least one deleted or inactive user account, then system.stats.total_users would be less than system.lastuser and your system would *not* have triggered that bug.
-
- May 18, 2022
-
-
Rob Swindell authored
When the 'number' property of an instance of User was incremented beyond the last user, the call to fgetuserdat() on subsequent property 'get' operation would fail and zero-out the user structure (including the user number). This resulted in an infinite loop in load/birthdays.js where the user number would go from lastuser to 1 in one operation (u.number++). Reported by DesotoFireflite (VALHALLA)
-
- May 17, 2022
-
-
Rob Swindell authored
DD area choosers: Fixes for searching & related error reporting See merge request !171
-
Eric Oulashin authored
-
Rob Swindell authored
Build using WinXP-compatible toolset.
-
Rob Swindell authored
sbbsctrl build failed, it needs another winsock header. <sigh> Oh what a rabbit hole this has been.
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
And create IPv4AddressToStr(), a wrapper for inet_ntop (or inet_ntoa, when inet_ntop isn't available).
-
- May 16, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
Fixes CI and nightly build.
-
Rob Swindell authored
e.g. AT&W writes the current settings to the [modem] section.
-
Rob Swindell authored
Use inet_ntop and inet_pton instead. Use 32-bit arguments and return values for IPv4 addressess for all target platforms (ulong is 64-bit on LP64, e.g. Linux-x64, targets).
-
- May 11, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
Have a service (e.g. imapservice.js) that logs errors that you'd rather not fill your error.log file with? Set that service's "LowestLogLevel" to "Warning" in your services.ini file ("lower" means "more severe" when it comes to log levels, so this would set the maximum severity to Warning).
-
- May 10, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
Some responding programs will automatically remove the trailing white-space from subject when replying and that would mess up the subject-linkage-by-CRC. So let's just ignore trailing whitespace in the first place.
-
Rob Swindell authored
-
Rob Swindell authored
Reducing log output (lowering log level of line 437 from LOG_INFO to LOG_DEBUG) highlighted an issue with Telix stopping RX. That was fixed by checking RTS in input_thread(). Qmodem needs RTS checked when writing the MCR. This improved RTS support has been tested with Telix, Qmodem, Telemate, and Banacom at full data rates.
-
- May 09, 2022
-
-
Rob Swindell authored
New option to disable local screen display for door programs: sets the 'Screen' value appropriately in door.sys or pcboard.sys drop files and on Windows, doesn't create a new console window. Also, now parsing the DOSXTRN.ERR file created by the latest/greatest dosxtrn.exe when failing to execute the child/DOS program and log the parsed error details (errno value and description), helpful in debugging the reason why a DOS program may not have been successfully executed by DOSXTRN.
-
- May 08, 2022
-
-
Rob Swindell authored
The other msgbase property values are stored in the smb.status or other private_t members which retain their value when the message base is closed, unlike the 'first_msg' property which required a read of the message base index to get the value (and that doesn't work when the message base is closed, so would return 0). for deon (ALTERANT)
-
Rob Swindell authored
First commit. Right now it just connects/accepts-connections using raw TCP. As demonstrated in YouTube video: https://www.youtube.com/watch?v=fxp38Nde3fg
-
Rob Swindell authored
In the process of creating/testing the new Synchronet Virtual DOS Modem (SVDM) project, I made the following significant improvements: - Don't default the log level to DEBUG for debug builds - Add a "carrier change" event so carrier low to high transitions can be tracked too - Replace several lprintf() calls with lputs() for performance reasons - Specify 'volatile' storage for pending_interrupts - Interrupts are re-asserted if there are any pending interrupts after reading IIR register - Emulate FIFO enablement - Support RTS flow control signal - Remove conditional/configurable yields when polling LSR and MSR register, would just unnecessarily slow down terminal programs - Report "DCD change" in MSR correctly - Clean-up (e.g. close handles) in VDD_CLOSE handler - VDD_LOAD_INI_FILE allows an optional ini filename (instead of directory) as its argument - for loading an ini filename other than sbbsexec.ini (e.g. svdm.ini). Initialize log level in VDDInitialize(). For versions of Windows/NTVDM that use/call the "init proc" (this function), we just re-initialize global variables here.
-
Rob Swindell authored
If a 4th optional argument is provided, use that as the ini filename for virtual UART/FOSSIL driver settings instead of "sbbsexec.ini". Using this feature requires an updated sbbsexec.dll that supports an ini-filename argument (instead of a directory) to the VDD_LOAD_INI_FILE command. If DOSXTRN fails to execute the passed command-line, _spawnvp() returns -1, log the errno value and description to DOSXTRN.ERR (in the same directory as DOSXTRN.ENV). This will help diagnose issues executing DOS command-lines (e.g. file not found). Upon failure to open/create DOSXTRN.RET, don't prematurely terminate as that would skip a lot of important cleanup.
-
Rob Swindell authored
Long hostnames would prevent the protocol from being shown. Also, non-operators should be able to see the protocol used to upload files.
-
- May 01, 2022
-
-
Rob Swindell authored
Tried using this function in a new project and didn't work. My guess: it wasn't tested. <looks at Deuce>
-
- Apr 30, 2022
-
-
Rob Swindell authored
1. Was not setting f->dir to the correct directory number, so only ftp-uploads to the *first* directory (dirnum = 0) would extract DIZ files of uploaded files. Removing the 'dirnum' parameter to addfile() since that implied that you did not have to initialize the 'dir' element of the passed file_t, but you do: to get the correct file path for file size/date detection and the DIZ extraction. 2. Was getting heap-corruption when freeing the imported/formatted DIZ text on Windows once the above problem was fixed: can't free() in one DLL memory that was allocated in another DLL. Created and now using free_diz() to free the memory allocated in read_diz(). format_diz() handles a NULL 'lines' argument correctly/gracefully, so no need for the NULL lines check in sbbs_t::uploadfile(). Added FTP server log messages for successful file upload or update by user.
-
Rob Swindell authored
Don't repeat call atoi() unnecessarily.
-
- Apr 29, 2022
-
-
Rob Swindell authored
Allows quick traversing through timed events (e.g. for comparison of settings).
-
Rob Swindell authored
This really shouldn't be necessary to toggle (at least now) on Windows, since we treat all off-line executions as "native", but for *nix, it could make a big difference if trying to invoke a native program or shell script for a QWKnet call-out and it would either fail due to no DOS support or try to executing using Linux-DOSEMU (unless the command's program name was in the global "native program list" configured in SCFG->External Programs).
-
Rob Swindell authored
We shouldn't need a virtual UART/FOSSIL driver to execute "offline" program (e.g. timed events) in the first place, and our virtual UART/FOSSIL for Windows wouldn't work right in the scenario anyway even if it did load successfully. This resolves the reported issues with timed events configured as not "native" returning error 255 (and not running successfully) on Windows with SBBS v3.19. I'm not even sure what changed exactly in xtrn.cpp, dosxtrn.c, and sbbexec.c between v3.18 and v3.19 that's causing this to now fail, but it (using DOSXTRN to run offline DOS programs) really shouldn't have been attempted in the first place. So that was just a design issue that happened to kind of sort of work up until v3.19.
-
- Apr 28, 2022
-
-
Rob Swindell authored
Some programs (e.g. sbbs.exe v2.30) check for CTS (when configured/enabled for hardware flow control), so reflect the signal (Clear To Send) accurately.
-
Rob Swindell authored
Subpacket OVERFLOW means received subpacket byte offset is >= the max subpacket length.
-
Rob Swindell authored
This insures that the 'R'emove file option will work correctly if when displayed sorted.
-
Rob Swindell authored
... regardless of the timing of the last progress report. For cases where the progress output isn't erased once done doing the thing.
-
Rob Swindell authored
This eliminates some link-list management and the debug-level log message "Scrolled x mouse hot-spots" for non-mouse-enabled user terminals.
-
Rob Swindell authored
This fixes an observed crash in sexyz for Windows. The crash was in RingBufWrite() where 'remain' was set to -1 (4.2B) apparently because pHead and/or pTail changed (to pTail=pHead) during the invocation of the RINGBUF_FILL_LEVEL() macro, because it wasn't thread-safe. Amazing this problem never came up before.
-