- Feb 05, 2022
-
-
Rob Swindell authored
Don't let (or at least try to prevent) a sysop create a duplicate message group or file library internal code prefix (which could lead to duplicate internal codes for subs and dirs, pretty easily and accidentally).
-
- Feb 04, 2022
-
-
Rob Swindell authored
When manually adding a message/file area or modifying an internal code value, reject the code if it's a duplicate. This required that getsubnum() and getdirnum() support non-prepped configurations (where the full internal code has already been constructed from the prefix and suffix).
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
- Feb 02, 2022
-
-
Rob Swindell authored
These 3 'stats' properties were read-only (never used when adding a file). To support moving files between FileBases while retaining these stats, support the parse/use of these file-meta-object property values. Should fix issue #333 reported by Nightfox.
-
- Feb 01, 2022
-
-
Rob Swindell authored
So Hobo and I have noticed that Global War was leaving game lock (*.LOK) files behind when he disconnected while in the game (e.g. due to the game not responding or something). This was happening because GWAR was not recognizing the loss of connection ("carrier detect" or DCD) and SBBS would ungracefully terminate the process after 5 seconds of being disconnected, thus the game lock files would remain and requiring manual clean-up. I discovered that if I changed the WAR.CFG file to use FOSSIL instead of UART, Global War would then correctly recognize the loss of carrier and exit gracefully (and not leave any .LOK files behind). So... I suspected an issue with the Virtual UART driver. It turns out, that a program that relies on the modem status register change interrupt (and doesn't "poll" the UART MSR register) might never know that the "carrier" was lost. This is fixed by waiting on the hungup_event in the interrupt_thread and deasserting DCD in the "virtual" MSR register and asserting the MSR change interrupt to notify the program that it has in fact changed. Good thing for WaitForMultipleObjects(). Uh huh.
-
Rob Swindell authored
This one was one of the last TODO items for the new filebase implementation: It's been supported (for a *long* time) that a file tester/upload processor could change the uploaded file's name or description by modifying the contents of the sbbsfile.nam and sbbsfile.des files in the node's directory (I know, great names, eh?). These files were not read-back into sbbs to apply any changes in v3.19b and that's now "fixed" though I'm not sure any file upload tester/processor actually ever made use of this feature. Also as part of this change, the '%s' specifier for the tester command-line will now be replaced with the path to the sbbsfile.des file and not the file's description itself (which could easily have been problematic for a command-line). Updated SCFG help text to suit.
-
Rob Swindell authored
Testable File Types and Download Events support working strings (display before/while the command-line executes). Clear the current line (displaying this working string) when the execution completes.
-
Rob Swindell authored
Issue introduced in v3.19: Testable Files (a.k.a. upload processors) with a specified file extension/type (e.g. "ZIP" and not "*") would never run because the file extension comparison logic was "off by one". Testable Files with an extension of "*" (all files/types) would still run however. This fixes issue #331 reported by Nightfox.
-
Rob Swindell authored
If the request is to a virtual web host, don't recognize the filebase vpath prefix (FileVPathPrefix setting) unless FileVPathForVHosts is set to "true" (in the [web] section of sbbs.ini). This addresses another of Deuce's concerns about this feature.
-
- Jan 31, 2022
-
-
Rob Swindell authored
Make it more accurate/clear: "attempted to upload invalid path/filename"
-
Rob Swindell authored
The logged error "!attempted to upload to invalid directory" did log the actual path that was attempted to be uploaded. Added some quotes around other logged paths.
-
Rob Swindell authored
Nelgin: "anyway to get sexpots to report itself differently to syslog" [?]
-
- Jan 30, 2022
-
-
Rob Swindell authored
An int is 32-bits on all supported platforms, so this has always been broken. The actual file size/request-length sent would depend on fun 2's complement math (a 32GB file was being truncated to 433MB). Also fixed some wrong uses of PRIuOFF: off_t is a signed integer, so technically the maximum file size you can request now is 2^63 bytes, which is "big enough".
-
Rob Swindell authored
Only used in manual answer mode, RingCount defaults 1 (answer after the first ring) and RingInterval defaults to 6000 (maximum elapsed milliseconds between rings of the same "call"). This should address issue/feature-request #330 by Nelgin. Give that a try.
-
- Jan 29, 2022
-
-
Rob Swindell authored
Another log message reported by DesotoFireflite (VALHALLA) that can happen when a user has typed something while the programming is running and the program terminates before the data can be sent to it.
-
- Jan 28, 2022
-
-
Rob Swindell authored
It bothered Deuce having a web server setting in scfg_t/SCFG->File Options, so I moved this setting to [web_]startup_t and the sbbs.ini file. The downside is that file_area.web_file_prefix is no longer available to JS environments outside of the web server and terminal server, but meh, probably not going to use it elsewhere anyway? I can imagine use cases for JSexec scripts to want to generate URLs to filebase files. If that ends up being a need, they'll have to find and parse the "right" sbbs.ini file to determine the vpath prefix.
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
This change is just for internal consistency and convenience right now: the lib_t.vdir is a "sanitized" copy of the lib's short name (spaces are converted to dots or underscores based on the logic that the FTP server used in dotname()) and the dir_t.vdir is just a pointer to the dir's code_suffix. No other permutations are made (e.g. lower-casing the strings). Although the virtual directory names of libraries will now appear in mixed case in the FTP server (previously, they were all lowercase), the directory names are actually treated case-insensitively, so it should not make any difference. If forced-lowercase is preferred for some reason, please speak up. This change leads the way to eventually, possibly, making these virtual path elements sysop-configurable. For now, it's just better to have a *copy* of the lib's short name that is appropriately modified to make a suitable directory name and have that vpath element available globally (to all servers and services) in a consistent manner. So Nelgin asked (about filebase access via http), what if the library short name has a space in it? The answer now is, the spaces are replaced with a '.' or '_' (if there's already dots in the name).
-
Rob Swindell authored
... more aligned with a sub-board's internal code help text.
-
- Jan 27, 2022
-
-
Rob Swindell authored
This fixes issue #328. The user actually *can* remove files from the batch queues in v3.19b, but you have to type the filenames which is not obvious from the prompt which implies you need to type the file index position (e.g. '1' for the first file in the queue). In all Synchronet versions prior, you could only remove by number (and not by name). The fix is to allow either the number or the name of the file to be entered at the RemoveWhich prompt and the file is removed from the queue successfully. Thanks Ragnarok!
-
Rob Swindell authored
Fixes issue #327. Also remove some old obsolete comments. Increment the REVISION value manually (no more CVS keywords).
-
Rob Swindell authored
Hitting [Enter] is supposed to select the current/default program section. Instead, it was quitting. This was apparently broken as part of the xtrn_sec.js refactor a year or so ago by/with mlong.
-
Rob Swindell authored
If the child process (e.g. door game) has terminated, don't log errors if/when WriteFile() to the mailslot fails. This would be expected as the mailslot is created/owen-by sbbsexec.dll which would also terminate along with the process, thus closing the mailslot. Hopefully resolves the errors reported by DesotoFireflite (VALHALLA).
-
- Jan 26, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
And don't store the autoterm flags in useron.misc even when correcting a manual-PETSCII configuration.
-
Rob Swindell authored
We shouldn't need to set any of the autoterm flags in useron.misc these days (term_supports() checks autoterm when appropriate). Try this Nelgin.
-
Rob Swindell authored
As reported by Nelgin
-
- Jan 25, 2022
- Jan 23, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
The file_list[] parameter was expected to contain only files, but the directory() function (used to create that file_list[]) returns a list of all directory entries, including sub-directories. I could (and maybe will) add an option to directory() to only include files or dirs, but this seemed the more direct fix for the problem reported by DesotoFireflite (VALHALLA): TickIT's nodelist_handler.js appears to be creating and leaving behind a sub-directory of the temp directory, triggering this error: 1/23 11:36:56a QNET libarchive error -1 (13 opening c:\SBBS\temp\event\nodelist_handler/) creating c:\SBBS\data\VERT.REP Why isn't the temp directory fully cleaned up after/between events? That's another thing to look into.
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
To address CID 345626
-
Rob Swindell authored
We need to re-parse the default sexpots.ini [TCP] section for every new session (when using the Prompt feature) or else there's no way to connect to the default host. Also, telnet to be enabled or disabled (e.g. by setting Telnet=false) in any [TCP] or [TCP:x] section to support a mix of Telnet and non-Telnet hosts.
-