- Dec 03, 2021
-
-
Rob Swindell authored
For some reason this deprecation warning is being treated as an error (and only with newer Windows platform SDKs). Just disable this warning for the GetVersionEx line. See https://stackoverflow.com/questions/22303824/warning-c4996-getversionexw-was-declared-deprecated for details.
-
- Dec 01, 2021
-
-
Rob Swindell authored
Allow "FOSSIL Only" as a configuration option for external programs in SCFG. This is a much easier method of disabling the virtual UART support in the Virtual UART/FOSSIL device driver (if/when necessary) than editing the sbbsexec.ini file (which is still supported).
-
Rob Swindell authored
Function 0Ch (peek) never worked correctly (character was not returned in AX); I guess nothing uses this function (?). Function 01h (transmit char w/wait) now will set the timeout flag (0x8000) in the AX if the VDD_WRITE function fails (returns value other than 1). Optimize Function 18h (read block) - no need for the extra VDD_STATUS call. Use newly defined FOSSIL macros instead of magic numbers of port status bits. Log the git branch/hash values to the Windows debug log (via sbbsexec.dll).
-
Rob Swindell authored
The sem_wait() call from vdd_read() that was fixed in the previous commit to this file was a bad idea to begin with: There is (often) not a 1:1 ratio of bytes in the receive ring buffer and the semaphore count, so we'd often halt here waiting for the semaphore to be signaled even though there were still characters in the receive buffer. This caused (new) stalls/hangs in keyboard input in DOS door games. We didn't see this previously because the sem_wait() call just didn't work (wrong semaphore pointer value). Now, call sem_trywait_block() in vdd_read(), but only if the RingBufRead() returned 0 (no bytes read) and even then, only block/wait for a maximum of 30 seconds (same as X00 FOSSIL driver). This blocking behavior is specified for FOSSIL function 02h (Get received character with wait) and would not have worked previous to the previous "fix", so now we have that corrected behavior too. The FTSC spec says the wait is indefinite, but I think a 30 second timeout (ala X00) is more reasonable. Log the git brach/hash instead of the old CVS revision. GetMailSlotInfo() apparently always fails on Windows 7 with error 87 (even using Microsoft's own sample code), so lower the log message severity of that failure from ERR to DEBUG. Apparently this is pretty harmless anyway as nothing really needs the write-mailslot status. <shrug>
-
Rob Swindell authored
Is this the point when the lost chars problem happens?
-
- Nov 30, 2021
-
-
Rob Swindell authored
-
Rob Swindell authored
As reported via irc by Nelgin, the setcap target was not being passed to 'make -C src/sbbs3' by default (on Linux) due to a misplaced paren.
-
Rob Swindell authored
Yes, you can run 16-bit DOS doors on 64-bit (x64) Windows now. Install NTVDMx64 (http://www.columbia.edu/~em36/ntvdmx64.html, it's not as onerous as it sounds) and re-enable DOS program support in SBBS (i.e. make sure "NO_DOS" is not in your sbbs.ini [bbs] Options value) and voila: DOS doors work. This change adds an empty init routine to sbbsexec.dll since older versions of NTVDM (which NTVDMx64 is based on) required one. Also, the sbbsexec.dll should be located in your Synchronet "exec" directory when using NTVDMx64 (in addition to or instead of your Windows/System32 directory).
-
Rob Swindell authored
Using options (e.g. RINGBUF_MUTEX) from old sbbsexec.dsp
-
Rob Swindell authored
Missing part of commit 4da964dd
-
Rob Swindell authored
Introduced in Revision 1.16 (CVS) Wed May 10 08:52:11 2006 UTC (15 years, 6 months ago) by rswindell This was supposed to wait (block) until there was a new received byte (the ringbuf semaphore was signaled), but we were passing the sem_t value rather than the pointer to the sem_t. Since sem_t (on Windows) is a HANDLE (which is a void*), there was no compiler warning or error. Type-safety in C sucks. So, this just never worked (I'm assuming the call would just fail). I discovered this bug while working on NTVDMx64 support and in that case, this call would block/wait forever. Simple one character fix.
-
- Nov 28, 2021
- Nov 26, 2021
-
-
echicken authored
-
echicken authored
-
echicken authored
-
echicken authored
But also, this needs some revision since I'm supposed to send the header all at once and probably shouldn't be doing a bunch of individual sendBin calls.
-
echicken authored
Added incomplete send of haproxy protocol header. Need to sort out lookup of target (BBS) IP address.
-
echicken authored
other unnecessary work - if the BBS is using HAProxy but we can't do the thing with the stuff because we don't have the things.
-
echicken authored
then throw an error if X-Forwarded-For header was not received, or otherwise do the HAProxy thing upon connecting.
-
echicken authored
-
echicken authored
like to mangle these unless you tell them not to. Capture the value of the X-Forwarded-For header, if present, and stash it in FWebSocketHeader['X-Forwarded-For'].
-
echicken authored
-
- Nov 24, 2021
-
-
Rob Swindell authored
As a work around for TradeWars 2 (v11.14 and v11.20) FOSSIL support: This door game would never call the FOSSIL "get received character" function (02h) . But I did notice that it was calling the "Keyboard read" functions. I never implemented the "Keyboard read" functions (figured the door game could read the keyboard itself if it wanted to), but appparently TW2 won't ever read the COM port (using function 02h) unless the Keyboard read function returns AX=0xFFFF (no keyboard data available). So now, I just do that and TW2 works (with FOSSIL I/O). Incremented the revision to 26. Logging the Git branch/hash and other helpful FOSSIL-debug stuff now.
-
Rob Swindell authored
Needed the actually mapping of XTRN_UART -> EX_UART mode flag here.
-
- Nov 23, 2021
-
-
Rob Swindell authored
When configuring an external program, a Win32 sysop can now choose to *only* enable the virtual UART (and not the FOSSIL driver) feature of the Synchronet virtual UART/FOSSIL driver (dosxtrn.exe/sbbsexec.dll). Some programs (e.g. TradeWars 2) will always use the FOSSIL driver if one is detected and in order to force the use of COM/UART driver for I/O (if that is desired), then one must disable the FOSSIL driver. It's a rare use case, but I can see the potential need. Renamed the "Intercept I/O" option in SCFG to "I/O Method" and make it clear that "Socket" (for native programs) and "FOSSIL or UART" (for 16-bit DOS programs) is the default method (what was previously identified as "No" I/O Interception). If a sysop want to disable the virtual UART support (on Win32, e.g. so *only* FOSSIL is available to one or all DOS programs), they do that via their sbbsexec.ini file.
-
Rob Swindell authored
-
Rob Swindell authored
This change needed to build dosxtrn.exe (again).
-
- Nov 19, 2021
-
-
Rob Swindell authored
warning: format ‘%lx’ expects argument of type ‘long unsigned int’
-
- Nov 18, 2021
-
-
Rob Swindell authored
-
Rob Swindell authored
The internal line editor's quoting feature add some hard-coded strings ("Done" and "All") and the (L)ist key was hard-coded. Use the text.dat string (new and pre-existing) for these now. Also, use the new sbbs_t *_key() methods for referencing the configured key bindings (via text.dat) for these common key-stroke commands. Convert the text.dat strings for keys (e.g. YNQP) to uppercase always as well.
-
Rob Swindell authored
-
Rob Swindell authored
For localization purposes, no more hard-coded text strings or characters in the new-file and file scan configuration menus. This change fixes issue 232. A Hungarian sysop also requested this change via Facebook not long ago.
-
Rob Swindell authored
sbbsctrl.exe is built with Borland C++ still which only has a 32-bit time_t, so to keep the scfg_t definition compatible between MSVC and Borland builds, use time32_t (32-bit time_t) values only. This fixes the reported sbbsctrl.exe error: Error loading configuration cfg->size (23944) != sizeof(scfg_t) (23952) Introduced in commit e535aaac. Reported via DOVE-Net by Daryl Stout (TBOLT), confirmed by Nightfox (DIGDIST).
-
- Nov 17, 2021
-
-
Rob Swindell authored
Since mail server log messages have their white-space condensed, it was not obvious why some sender's name would match a twitlist.cfg line that filters names beginning with a space: "\ *" because the initial space of the sender's name was condensed/combined with space before it in the log message.
-
- Nov 16, 2021
-
-
Rob Swindell authored
As found and reported by Talisam author, apam (HAPPYLND). sscanf() won't initialize the buffer of the argument passed if the format string is not matched, so when there was no hexadecimal/SMB timezone value, the timezone specified in the ISO date/time string (if any) would be overwritten with 0, converted from the uninitialized 'zone' variable (unlikely to be valid hex-ASCII chars). Thanks apam!
-
Rob Swindell authored
where "address" is a QWKnet ID or path or a FidoNet originating address. Wildcards can be used (e.g. "*@VERT"). For Trikester.
-
Rob Swindell authored
%+ will now expand to the current user's real name, automatically enclosed in quotes if it contains any spaces.
-
- Nov 12, 2021
-
-
Rob Swindell authored
The "serialno" field is a bad/naive one (a time_t value), but this is really just an experiment for Ragnarok to see if this fixes issue #306 (with hotdoged receiving AreaFix responses/notices).
-
Rob Swindell authored
Found during review of previous commit. Introduced as part of the new file base branch merge (commit fcf58640).
-