- Mar 29, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
- Mar 28, 2023
-
-
Rob Swindell authored
changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion] if(bytes < 0 || bytes > INT64_MAX) ~ ^~~~~~~~~ /usr/include/x86/_stdint.h:90:19: note: expanded from macro 'INT64_MAX' #define INT64_MAX 0x7fffffffffffffff ^~~~~~~~~~~~~~~~~~
-
Rob Swindell authored
gravyard - Added missing declaration in exit_game See merge request !274
-
-
Rob Swindell authored
Use the Synchronet-supported FTN/QWKnet routable addressing in the from fields of messages posted via those network types. Using the mailutil.js fidoaddr_to_emailaddr() function that was apparently created for listserver.js but then made unnecessary (and thus unused for several years). I think this addresses the concerns from issue #487. Reading a message via NTTP (using the Synchronet NNTP service) in Thunderbird, one can now reply to sender via email and it "just works" so long as the sysop has configured the network support for those net-types correctly and Thunderbird is configured with the Synchronet mail server as its SMTP server to use for that newsgroup folder. Whether the Synchronet mail server is configured to use direct delivery or relay is not relevant (though mentioned in the issue description).
-
Rob Swindell authored
-
Rob Swindell authored
Move the Mail Server->SendMail* settings to their own sub-menu. Added popups while reading sbbs.ini
-
Rob Swindell authored
Fixed reversal of logic for FTP Server->Sysop File System Access option
-
Rob Swindell authored
And display an error message upon failure.
-
Rob Swindell authored
-
Rob Swindell authored
-
- Mar 27, 2023
-
-
Rob Swindell authored
Dasme/gravyard See merge request !272
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
- Mar 26, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
Still needs online help text.
-
Rob Swindell authored
This allows the [Global] section to be applied to each server section correctly Before this change, changing BindRetry in the global settings would result in the original global BindRetry value being added to each server/section of the sbbs.ini file.
-
Rob Swindell authored
The address needed to be converted to a string first.
-
Rob Swindell authored
Remove values, not keys, when setting a key with a global default. Use UInt16 functions for getting/setting TCP ports (this fixes an issue with the FTP PasvHigh port being set to -1 (instead of 65535). Use iniGetUInteger instead of iniGetShortInt for most other key values. First sbbs.ini save support in SCFG, still experimental.
-
Rob Swindell authored
Remove trailing white-space (e.g. after the equals or colon following the key) in iniRemoveValue().
-
Rob Swindell authored
This function is used in sbbs_ini.c, but was always returnning non-zero, even when both string lists were identical.
-
- Mar 25, 2023
-
-
Rob Swindell authored
Allows SCFG to more easily display the most relevant .ini file using the UIFC timedisplay() callback.
-
Rob Swindell authored
Running 'scfg -id -w' would crash due to NULL pointer dereference and display prompts with a "[(null)]" title. Fixed.
-
Rob Swindell authored
-
Rob Swindell authored
I'm surprised more people haven't wondered aloud: why are all the Synchronet server settings in this huge sbbs.ini file? Well... this kind of answers that question: it's a hell of a lot of settings! And this isn't even everything (several advanced/rarely-used/borderline-deprecated settings aren't included)! As part of this change, I've replaced the old date/time display with the current config file path/name that's being edited (more or less). This will help when a sysop has multiple sbbs.*.ini files and makes it clear if you have multiple sbbs installs (like me), which one you're editing at any given time. I have not implemented any of the server setting edits (other than a couple simple toggles) or help text yet and this does not detect changes or save them to the sbbs.ini file, but I wanted to get this committed at this stage anyway. If you're running sbbsctrl.exe (or maybe even gtkmonitor), then maybe this is completely redundant and unnecessary, but I figured it was good to have these settings in one edit find/edit platform-agnostic location anyway. Hoepfully this will (when its done) make SBBS for *nix just that much easier for a newbie sysop/sysadmin.
-
- Mar 24, 2023
-
-
Rob Swindell authored
Since commit fd90eec6 (2 months ago), the Synchronet Web Server on my Windows systems has occasionally gone into a state where every HTTP session thread was causing 100% CPU utilization and each new HTTP session thread would just exacerbate the problem eventually leading to complete system instability/unresponsiveness until the sbbs instance was terminated. This was more readily reproducible on a Win7-32 VM, but would occasionally, though much less frequently, happen in a native instance on Win10-64 as well. Using the VisualStudio debugger, I was able to narrow it down to this: Each new HTTP thread (eventually, hundreds of such threads) would get stuck in this loop in http_output_thread(): while(session->socket!=INVALID_SOCKET) { /* Wait for something to output in the RingBuffer */ if((avail=RingBufFull(obuf))==0) { /* empty */ if(WaitForEvent(obuf->data_event, 1000) != WAIT_OBJECT_0) continue; /* Check for spurious sem post... */ if((avail=RingBufFull(obuf))==0) continue; // <--- data_event signaled, but never cleared } There appears to be a race condition where this logic could be executed immediately after the output ringbuf was created, but before writebuf() was ever called (which would have actually placed data in the output buffer), causing a potential high-utilization infinite loop: the data_event is signaled but there is no data and the event is never reset and nothing can ever add data to the ringbuf due to starvation of CPU cycles. Uses of ringbuf's data_event elsewhere in Synchronet don't seem to be subject to this issue since they always call RingBufRead after, which will clear the data_event when the ringbuf is actually empty (no similar loops to this one). The root cause just appears to be a simple copy/paste issue in the code added to RingBufInit(): the preexisting 'empty_event' was initialized with a correct initiate state of 'signaled' (because by default a ringbuf is empty) but the newly added events (data_event and highwater_event) should *not* be initially-signaled because... the ringbuf is empty. So I added some parameter comments to these calls to CreateEvent() to hopefully make that more clear and prevent similar mistakes in the future. Relieved to have this one resolved finally.
-
Rob Swindell authored
-
Rob Swindell authored
DDMsgReader: Bug fix for deleting multiple selected messages See merge request !271
-
-
- Mar 23, 2023
-
-
Rob Swindell authored
This resolves the issue of the results of string commands not being visible in novice menu mode. I don't see this issue when running default.bin. ┌────────────────────────···· │ Subj: nlog │ Attr: Replied │ To : All │ From: Greg Meckel (1:153/143) │ Date: Wed Mar 22 2023 10:40 am UTC-9:00 (22.7 hours ago) └───────────────────────────────────────────────······ I attempted to check my node log this morning using ;nlog but it only flashed on the screen briefly and was gone. Do I possibly have something set wrong?
-
- Mar 22, 2023
-
-
Rob Swindell authored
Fixed tagLineFilename capitalization error in SlyEdit_Misc.js. Fixes #538 Closes #538 See merge request !270
-
-