- 13 Jan, 2023 1 commit
-
-
Rob Swindell authored
For Viewable, Testable, Compressible file types and download events, the file extension is no longer limited to 3 characters. 15 characters seemed like "enough". Similarly, a user's temp/QWK file type preference is also extended from 3 to 15 characters. This fixes issue #486, but file types such as *.tar.gz (2 dots in the extension) are still an issue and will be addressed next.
-
- 30 Dec, 2022 1 commit
-
-
Rob Swindell authored
Previously, many servers and services didn't support login by real name (e.g. issue #469) even if the sysop had that option enabled in SCFG. Move login control settings from node.ini to system (main.ini -> login) The 3 node toggle options: - Allow Login by User Number - Allow Login by Real Name - Always Prompt for Password ... have been now moved from SCFG->Nodes->Node x->Toggle Options to SCFG-System->Toggle Options. If you upgraded to v3.20a before now, you'll want to double-check these settings to make sure they're how you want them set. New upgraders that run upgrade_to_v320.js (e.g. via 'jsexec update') will get these settings migrated automatically. Added some error detection/logging to upgrade_to_v320.js when failing to open .cnf files. Constified some more user/login related function args and return types.
-
- 19 Nov, 2022 1 commit
-
-
Rob Swindell authored
This allows the sysop to configure the settings to be used for newly-created and auto-added directories without requiring any "template" directory to be configured. The "template" directory concept goes away (so in this way, File libs/dirs are now different from Message groups/subs in how bulk configuration is done). The Lib->Clone Options menu option was moved to Lib->Directory Defaults->Clone Settings and no longer uses the first sub or the template sub but rather the configured directory defaults to be cloned into all dirs in the lib. I decided to make the dir_defaults their own sections in file.ini rather than combining with all the other lib settings (and deconflicting key names such as "sort" and "settings"). This also allowed me to use the same cfg read/write functions for those directory settings and lib's directory default settings.
-
- 05 Nov, 2022 1 commit
-
-
Rob Swindell authored
So extended internal codes (e.g. for msg and file areas) now have a max length of 32 chars (16 prefix, 16 suffix) and most other internal codes are now limited to 16 chars (instead of 8).
-
- 29 Oct, 2022 1 commit
-
-
Rob Swindell authored
-
- 18 Oct, 2022 1 commit
-
-
Rob Swindell authored
Also resolved some 32 vs 64-bit 'long' issues/ambiguities that have long-remained. :-) This commit also removes logon.lst file support. There's a TODO block remaining in js_user.c for setting portions of a user's birthdate (e.g. just the year or month or day).
-
- 05 Oct, 2022 1 commit
-
-
Rob Swindell authored
-
- 17 Sep, 2022 1 commit
-
-
Rob Swindell authored
-
- 15 Jun, 2022 1 commit
-
-
Rob Swindell authored
By default, each file transfer directory's internal code suffix is used as the source of the sub-directory of the virtual path used to represent a file area in the FTP and Web servers. Now, a sysop can change that source to either each directory's short name or long name, if they prefer. For MRO, because he asked (on DOVE-Net).
-
- 09 May, 2022 1 commit
-
-
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.
-
- 29 Apr, 2022 1 commit
-
-
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).
-
- 25 Apr, 2022 1 commit
-
-
Rob Swindell authored
Previously, if a sysop had set SCFG->System->Toggles->European Date Format (DD/MM/YY) to "Yes", then many of the dates in drop files would have been written in this format. Unfortunately, since most BBS doors and door development kits were written by Americans, MM/DD/YY format is always assumed. So fixed that (using new TM_MONTH macro too). Also, line 37 ("Event Time") of DOOR.SYS was always 00:00, now it'll be the next event time (in HH:MM format). Unfortunately, that time might be tomorrow or days away and there's no way to represent *that* fact in the DOOR.SYS file format. <shrug>
-
- 16 Apr, 2022 1 commit
-
-
Rob Swindell authored
If a sysop wants to prevent new users from using an email address of an existing user, they can set SCFG->System->New User Values->Question Toggles->Force Unique E-mail/NetMail to "Yes". This partially addresses issue #127, at least for the terminal server.
-
- 29 Mar, 2022 1 commit
-
-
Rob Swindell authored
Defines the field indexes for records in csts.ini
-
- 28 Mar, 2022 1 commit
-
-
Rob Swindell authored
*/dsts.dab (daily statistics and running totals) -> */dsts.ini */csts.dab (cumulative statistics / log) -> */csts.tab * dsts.ini now has both daily and total stats for all fields (not just timeon and logons). * dsts.ini is now an easily modifiable text file - no longer need dstsedit (here-by deprecated and soon to be deleted) * dsts.ini and csts.tab support 64-bit upload/download byte stats and are very extensible for future fields to be added or extended > 32-bit (this was the main inspiration for this overhaul, but it was overdue and already designed for v4, pretty much) * csts.tab is a tab-delimited fixed length record format suitable for easy import to a spreadsheet program or parsing with scripts. Each day is a 128-character LF-delimited record with tab-delimited fields of plain ASCII text. * All fields except timeon in dsts.ini files are updated immediately and by more non-terminal servers (e.g. post statistics from web UI scripts). * New user stats are tracked more than just for "today". The upgrade of these files is automatic and built-into SBBS. Still to do: overhaul the slog utility to support the new csts.tab file format.
-
- 24 Mar, 2022 1 commit
-
-
Rob Swindell authored
Credits and daily free credits are accurate to the byte up to (a maximum) of 18446744073709551615 (that's 18 Exbibytes - 1). User's upload and download byte stats are now similarly extended in maximum range, but the accuracy is only "to the byte" for values less than 10,000,000,000. Beyond that value, the accuracy declines, but is generally pretty damn accurate (to 4 decimal places beyond the nearest multiple of a power of 1024), so I don't expect that to be an issue. This method of storing upload/download byte stats allowed me to use the same 10-character user record fields in the user.dat file. As a side-effect of this enhancements: * User and file credit values are now expressed in multiples of powers of 1024 (e.g. 4.0G rather than 4,294,967,296). * Free credits per day per security level has now been extended from 32 to 64-bits (to accommodate values >= 4GB). * adjustuserrec() now longer takes the record length since we can easily determine that automatically and don't need more "sources of truth" that can be out-of-sync (e.g. the U_CDT field length going from 10 to 20 chars with this change). * setting the stage for locale-dependent thousands-separators (e.g. space instead of comma) - currently still hard-coded to comma * more/better support for files > 4GB in size (e.g. in the batch download queue) * user_t ulong fields changed to either uint32_t or uint64_t - I didn't realize how many long/ulong's remained in the code (which are sometmies 32-bit, sometimes 64-bit) - ugh * Steve's ultoac() function renamed to u32toac() and created a C++ wrapper that still uses the old name, for homage
-
- 21 Mar, 2022 1 commit
-
-
Rob Swindell authored
Size is indexed, so might as well sort by it. This does have an issue with files >= 4GB in length however, so I'm looking at that next.
-
- 23 Feb, 2022 1 commit
-
-
Rob Swindell authored
Apparently 4000 characters isn't enough for everyone to describe their files in vibrant colors and "graphics". :-)
-
- 04 Jan, 2022 1 commit
-
-
Rob Swindell authored
-
- 02 Jan, 2022 1 commit
-
-
Rob Swindell authored
-
- 01 Jan, 2022 1 commit
-
-
Rob Swindell authored
-
- 01 Dec, 2021 1 commit
-
-
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).
-
- 23 Nov, 2021 1 commit
-
-
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.
-
- 06 Sep, 2021 1 commit
-
-
Rob Swindell authored
Since users can (and usually do) display extended descriptions in their normal file listings anyway, it makes sense to go ahead and search them for the text (e.g. with the 'F' command from the default command shell File menu/prompt). So the "search/display extended info" prompt has been changed to just "Display extended file info" since it no longer controls whether or not the extended description is searched for the text (it always is). The FL_EXFIND was renamed to FL_EXT and only controls whether the extended info is display (the FL_FIND mode flag, always renamed, must also be specified for a find with extended info). This closes feature request #285 by Phil (@plt).
-
- 06 Jun, 2021 2 commits
-
-
Rob Swindell authored
5 options: - Safest Subset - Most ASCII, Excluding Spaces (the default) - Most ASCII, Including Spaces - Most CP437, Excluding Spaces - Most CP437, Including Spaces
-
Rob Swindell authored
-
- 25 Apr, 2021 1 commit
-
-
Rob Swindell authored
-
- 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.
-
- 22 Apr, 2021 1 commit
-
-
Rob Swindell authored
Increase total extended description length from 1024 to 4000 characters. Perhaps this should be configurable?
-
- 17 Apr, 2021 1 commit
-
-
Rob Swindell authored
I forget who it was that said they were still using this feature in v3.18, but here you go, it's working again (the /D and /U commands). I'm not migrating any file sender/recipient info from v3.18, so only files added after upgrading to this will be downloadable from the "user" directory (if you have one). Something that I never implemented before but noticed is missing is the removal (or dereferencing) of user-to-user files that were sent from/to a user that is then deleted. So that's still a TODO item.
-
- 14 Apr, 2021 1 commit
-
-
Rob Swindell authored
Do nothing if online != ON_REMOTE. Eliminates some if(online == ON_REMOTE) clauses.
-
- 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...
-
- 02 Apr, 2021 1 commit
-
-
Deucе authored
This appears to work and the event handler *should* work on other event types already. Note, this is *nix-only due to the use of poll(). select() will need to be used for Windows to keep XP compatability.
-
- 07 Mar, 2021 1 commit
-
-
Rob Swindell authored
METHODJIT (JägerMonkey) is doing weird stuff with xtrn_sec.js when enabled, so don't introduce that noise.
-
- 06 Mar, 2021 1 commit
-
-
Rob Swindell authored
JavaScriptOptions bit-field can be set in sbbs.ini and jsexec.ini to over-ride the default JS compiler options which have been changed from 0 to (options previously only used by JSDoor): JIT | METHODJIT | COMPILE_N_GO | PROFILING * JIT - TraceMonkey * METHODJIT - JägerMonkey * COMPILE_N_GO - compile-time scope chain resolution of consts * PROFILING - Choose between TraceMonkey and JägerMonkey at compile-time based on profiling results Other options available but not enabled by default: * STRICT - warn on debious practice (i.e. similar to "use strict") * WERROR - convert warnings to errors * VAROBJFIX - use last object on scope chain as the ECMA 'variables object' * RELIMIT - Throw exception on any regular expression which backtracks more than n^3 times, where n is length of the input string * ANONFUNFIX - Disallow function () {} in statement context per ECMA-262 Edition 3. * METHODJIT_ALWAYS - Always whole-method JIT, don't tune at run-time. Also: - Fixed JS warning string formatting (missing space separator). - Removed an extraneous new-line in lprintf() call in mailsrvr. - Added basic assertEq() global method to jsexec, required when running SpiderMonkey test scripts.
-
- 22 Feb, 2021 1 commit
-
-
Rob Swindell authored
-
- 19 Feb, 2021 1 commit
-
-
Deucе authored
-
- 22 Jan, 2021 1 commit
-
-
Rob Swindell authored
Some terminals can send NUL (ASCII 0), e.g. hitting Ctrl-Space in Apple iTerm. Allow users of inkey() (in C++ or JS) to optionally detect the difference by specifying the K_NUL mode flag. In JS, console.inkey() will return null upon timeout (rather than "") when the K_NUL mode flag is used and return an empty string ("") upon receipt of NUL (ASCII 0). The default is the previous behavior where a timeout and the receipt of a NUL character appear the same to the caller of inkey().
-
- 21 Dec, 2020 1 commit
-
-
Rob Swindell authored
We only use NSPR to build libmozjs, not to build sbbs. So define our own MIN and MAX macros if they're not already defined (e.g. from sys/param.h on *nix). Such a simple can o' worms, but wormful can it was.
-
- 01 Dec, 2020 1 commit
-
-
Rob Swindell authored
This reverts commit 94517fdf.
-