- 29 Dec, 2022 1 commit
-
-
Deucе authored
We've never really cared how many times the ring buffer has become empty, how many times data was added to it, or how many times we've been over the highwater mark. These have effectively always been event signalling, with extra hackiness to clear "extra" semaphore posts. This commit removes RINGBUF_SEM entirely, and uses events for everything. There's an empty event (set when the ring buffer is empty), a data event (set when the ring buffer is not empty), and a highwater event (set when the ring buffer has at least highwater mark bytes). A RingBufWrite() will set data and highwater events if applicable, and clear the empty event. A RingBufRead() will set empty event and clear data and highwater events if applicable. RingBufReInit() will now set the empty event, and clear the data and highwater events. These are the only actions the RingBuf API will perform on the events, it does *not* clear the highwater event on a RingBufWrite() if the buffer does not have enough bytes in it for example, this will *only* be done by RingBufRead() or RingBufReInit(). This allows consumers to force specific behaviours (such as forcing the highwater event on shutdown to prevent waiting for it). Since the current code was able to deal with the semaphores having arbitrarily high counts, the existing code shouldn't have any issue with this. For things that want to shut something down, we're now setting both the data and highwater events to ensure it doesn't wait for a timeout (even for things that don't use highwater like the inbuf). The RingBuffer API should grow a thing to do this (RingBufferFlush perhaps?) rather than the consumers poking into the innards arbitrarily. Tested on the webserver and RLogin server and seems to be working great. sexyz builds. It seems there's some Windows thing that uses the ringbuffer sem for something, but I couldn't figure out what... updated the build file, but no clue if that's broken or not now... I'm sure DigitalMan will be happy to fix it if CI doesn't catch it. ;) This should allow the console object to grow a "flush" method that will set the highwater and data events.
-
- 12 Dec, 2022 1 commit
-
-
Rob Swindell authored
Currently, sbbs.exe only Includes non-Unix build fix in sbbscon.c for issue introduced in previous commit
-
- 02 Jun, 2022 1 commit
-
-
Rob Swindell authored
I just wanted to reuse findstr() in vdmodem.c and I fell down this hole :-) findstr.* is new (findstr() related functions moved from str_util) getctrl.* is now finally the real home of get_ctrl_dir(), moved from str_util trashcan* functions moved from str_util to scfglib other scfg_t dependent functions moved from str_util to scfglib net_addr() appears to be a function that was never created/used (?) This will definitely break the *nix build, for now.
-
- 24 May, 2022 1 commit
-
-
Rob Swindell authored
So it can be reused for other projects more easily
-
- 24 Apr, 2021 1 commit
-
-
Rob Swindell authored
Inspired by Blocktronics (and other ANSI art group) packs' FILE_ID.DIZ/ANS files: * Support (and prioritize) FILE_ID.ANS * Convert ANSI color/attribute sequences in DIZ files to Ctrl-A equivalent (uses SAUCE width and ICE color, if specified) * Don't treat DIZ as a series of lines, they're not always nowadays. * New putmsg() mode: P_INDENT to print files indented by current column * Display full (up to 64-char) filenames in lists when using 132+ column terminal. * Use the Author, Group, and Title fields from the SAUCE if present/non-blank * 2 new text.dat strings: 301 (FiAuthor) and 302 (FiGroup) * Also fix bug with repeated Cost header field on bulk-uploaded files. I know this'll break the *nix build (sauce.c dependency), but I'll fix that next.
-
- 04 Apr, 2021 1 commit
-
-
Rob Swindell authored
This won't impact Synchronet as it has a separate signal handling thread, but we still need to behave properly for processes that don't. I'm also saying that ENOMEM does not indicate a disconnection, though it may be better to pretend it was disconnected...
-
- 12 Dec, 2020 1 commit
-
-
Rob Swindell authored
-
- 15 Sep, 2020 1 commit
-
-
Rob Swindell authored
This fixes the stat() issue on Windows XP/2K3 by allowing sbbs to benefit from the run-time library updates that Microsoft releases periodically (like https://www.microsoft.com/en-us/download/details.aspx?id=53840). For more info on the stat() issue which caused all kinds of sbbs errors (e.g. creating directories initially, but a lot more): https://stackoverflow.com/questions/32452777/visual-c-2015-express-stat-not-working-on-windows-xp Since we are using cryptlib which requires the MSVC runtime DLL anyway (it is the default build behavior of MSVC), we weren't really gaining anything from statically linking the CRTL (LIBCMT.LIB). And for some reason, an up-to-date MSVC2019 still has (links-in) a LIBCMT.LIB file that includes this stat bug. All the online help resources I found just to seem to suggest updating the CRTL DLLs (on the target system), with no mention of any fixes available for the static CRTLs on the build system. But with the no gain from ...
-
- 07 Aug, 2019 1 commit
-
-
rswindell authored
js_socket.obj : error LNK2001: unresolved external symbol _in6addr_any
-
- 18 Jul, 2019 1 commit
-
-
rswindell authored
Visual Studio 2017 - Windows XP (v141_xp) toolset
-
- 10 Jul, 2019 1 commit
-
-
rswindell authored
-
- 08 Jul, 2019 1 commit
-
-
rswindell authored
New function (derived from sbbs_t::utf8_to_cp437()): unicode_to_cp437() New utf8 functions: utf8_replace_chars(), utf8_str_is_valid(). utf8_getc() enhancement: val arg may be NULL (for length/validation uses). Convert quoted UTF-8 message text to CP437 when terminal is not UTF8. Set Fido CHRS: UTF-8 header field when posted message is UTF-8.
-
- 06 Jul, 2019 1 commit
-
-
rswindell authored
-
- 29 Jun, 2019 2 commits
- 28 Jun, 2019 1 commit
-
-
rswindell authored
translation.
-
- 24 Feb, 2018 1 commit
-
-
rswindell authored
-
- 26 Nov, 2017 1 commit
-
-
rswindell authored
-
- 23 Aug, 2015 1 commit
-
-
deuce authored
-
- 22 Aug, 2015 2 commits
-
-
deuce authored
You get a warning if a minimum version is specified and SubSystem is not. WINDOWS is for "applications that don't require a console" (like the DLLs) and apparently the only difference is in standard (main/WinMain/etc) entry point handling... which shouldn't be an issue in the DLLs.
-
deuce authored
If DigitalMan uses the Edit and Continue feature, he can fix it. :-)
-
- 16 Dec, 2014 1 commit
-
-
rswindell authored
defines XPDEV_THREAD_SAFE (not currently used in Windows builds) and LINK_LIST_THREADSAFE (notice the inconsistent use of underscore :-) Use of this property sheet fixes the problem with the terminal server global variable 'uptime' getting corrupted when jsrt_GetNew() called listInit() from js_rtpool.c which didn't #include sbbs.h and therefore had a different idea about the size of link_list_t and thus corrupted the global data region (zeroing out the 'uptime' variable, probably amonst other important things).
-
- 19 Nov, 2014 1 commit
-
-
rswindell authored
-
- 28 Mar, 2014 1 commit
-
-
rswindell authored
application" error message (when run on XP) and reportedly will allow target executables to run on non-SEE (pre-Pentium III) CPUs. Seriously, anyone really running Windows XP on a Pentium II today? I guess it's possible <shrug> and we really get little benefit from SSE in Synchronet. I couldn't get Windows 2000 running in Hyper-V, so I guess Windows 2000 is now officially unsupported by Synchronet (and long unsupported by Microsoft). Thanks to Android8675 for the bug report and Rushfan for the solution tip.
-
- 13 Mar, 2014 1 commit
-
-
rswindell authored
of these files for now (if you don't want to upgrade just yet).
-
- 21 Oct, 2011 1 commit
-
-
rswindell authored
-
- 16 Oct, 2011 1 commit
-
-
rswindell authored
(e.g. src/js/win32.release/*).
-
- 09 Oct, 2011 1 commit
-
-
rswindell authored
JavaScript-C (SpiderMonkey).
-