- Sep 24, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
These were problematic (crash, could corrupt filebases) and unsupported, so just change the programs to stubs that alert the sysop that they need to switch to using the JS versions of these utilities immediately.
-
- Jun 09, 2023
-
-
Rob Swindell authored
So Clang-FreeBSD was warning (in compiles of scfg/scfg*.c by Deuce): result of comparison of constant 100000 with expression of type 'uint16_t' (aka 'unsigned short') is always true Why? Cause a uint16_t's max value is 65535 (less than 100000). Sure we could have just lowered the UIFC max number of config items to 65535, but that would have been too easy. And why are these compared-with values of type uint16_t to begin with? Because most ctrl/*.cnf lists (of configuration items) were limited to 65535 entries cause ... 16-bit DOS, historically. Now that *.cnf files aren't used, we could just increase these scfg_t.*_total type sizes from 16 to 32-bits, yeah? The result is this commit. I went to (signed) int so we could still keep -1 as the special illegal sub/dir num value (e.g. INVALID_SUB, which is sometimes used to indicate the email message base). Theoretically, 2 billion configuration items could be supported in these lists, but SCFG will limit you to 100000 anyway. So there's a whole lot of s/uint/int in this commit. I'd be very surprised if this doesn't result in some new GCC/Clang warnings, but at least the old "comparison of constant 100000" warnings are now gone!
-
- Jun 05, 2023
-
-
Rob Swindell authored
Mostly (all?) about unchecked return values. Unexpected failures to read or write some files could've definitely led to some weird bugs.
-
- Jun 02, 2022
-
-
Rob Swindell authored
Also a bit more constification and cleared up the legacy sbbs_get_ini_fname() usage: the hostname argument hadn't be used in a long, long time.
-
- Apr 30, 2022
-
-
Rob Swindell authored
1. Was not setting f->dir to the correct directory number, so only ftp-uploads to the *first* directory (dirnum = 0) would extract DIZ files of uploaded files. Removing the 'dirnum' parameter to addfile() since that implied that you did not have to initialize the 'dir' element of the passed file_t, but you do: to get the correct file path for file size/date detection and the DIZ extraction. 2. Was getting heap-corruption when freeing the imported/formatted DIZ text on Windows once the above problem was fixed: can't free() in one DLL memory that was allocated in another DLL. Created and now using free_diz() to free the memory allocated in read_diz(). format_diz() handles a NULL 'lines' argument correctly/gracefully, so no need for the NULL lines check in sbbs_t::uploadfile(). Added FTP server log messages for successful file upload or update by user.
-
- Mar 28, 2022
-
-
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.
-
- Mar 04, 2022
-
-
Rob Swindell authored
Triggered by CID 33630: Unbounded source buffer
-
- Jan 13, 2022
-
-
Rob Swindell authored
Not sure why, as this utility has been deprecated. :-/
-
Rob Swindell authored
warning: ‘%s’ directive writing up to 4096 bytes into a region of size between 4034 and 4097
-
Rob Swindell authored
Wouldn't work with the new filebase if you tried to use it anyway. Just noticed while watching the v3.19b new feature video that the [.alt_path] was still listed as a command-line option.
-
- May 14, 2021
-
-
Rob Swindell authored
-
- May 02, 2021
-
-
Rob Swindell authored
This will allow fast/easy display of archive contents without actually reading the archive files. Introduces some new functions: - list_archive_contents() - smb_adddfile_withlist() A new SMB convenience variable ("tail", aliased as "content" for a file). A new file detail level ("file_detail_content", exposed in JS as FileBase.DETAIL.CONTENTS) which adds a "content" array property to file metadata objects for JS FileBase.get(). Files already added to the new filebases won't have this archive content automatically - I'm looking into that now (likely a new or updated JS script to run).
-
- Apr 26, 2021
-
-
Rob Swindell authored
Fixes CID 33498
-
- Apr 24, 2021
-
-
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.
-
- Apr 22, 2021
-
-
Rob Swindell authored
Increase total extended description length from 1024 to 4000 characters. Perhaps this should be configurable?
-
- Apr 17, 2021
-
-
Rob Swindell authored
This is still broken (errors when updating existing files) and is still planned for deprecation.
-
- Apr 16, 2021
-
-
Rob Swindell authored
Even though this is going to be removed / deprecated.
-
- Apr 04, 2021
-
-
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...
-
- Feb 15, 2021
-
-
Rob Swindell authored
Hopefully not introducing any bugs in the process.
-
Rob Swindell authored
Hopefully not introducing any bugs in the process.
-
- Feb 14, 2021
-
-
Rob Swindell authored
Don't return an error if the node#/node.cnf file can't be opened for all uses of load_cfg() except from the terminal server. This fixes #214 for Tracker1
-
- Jan 18, 2021
-
-
Rob Swindell authored
We were just trusting that the error strings would be shorter than 256 (usually), but since we're including paths and strerror() results, we really have no control over the length of the error strings. So enforce some healthy boundaries. This could explain the crashes that Divarin of Mutiny is seeing with SCFG on WinXP or maybe it was the truncsp(strerror()) stuff that was just removed as well. We'll see...
-
- Dec 03, 2020
-
-
Rob Swindell authored
If no description is given, just make the default/short description, literally, "No description given" - rather than refusing to add the file.
-
- Nov 23, 2020
-
-
Rob Swindell authored
The goal of this commit is that: only modules that either are part-of sbbs.dll/libsbbs.so or need to link with/use that library, will #include "sbbs.h" and thus be dependent on its subsequent includes (e.g. cryptlib.h, jsapi.h). This should mean extdeps.mk can be trimmed way down. I also removed CVS keyword/comments and trimmed up the boilerplate copyright notice in modified and added source/header files in this commit. There is no functional change in behavior in this comment.
-
- Nov 06, 2020
-
-
Rob Swindell authored
I'm fed-up with MSVC assertions in ctype functions (e.g. isdigit, isprint, isspace, etc.) when called with out-of-range (e.g. negative) values. This problem only affects MSVC debug builds, but if you run them (like I do), these things are like little time bombs that can drive you crazy (knocking your board out of service). The new macros names are bit more descriptive as well.
-
- Sep 19, 2020
-
-
Rob Swindell authored
-
- Aug 17, 2020
-
-
Rob Swindell authored
-
- Aug 16, 2020
-
-
Rob Swindell authored
If jsexec is used for a CGI script and the SBBSCTRL env var was not set, a warning would be printed (to stderr), even if the -c option was used to specify the path to the ctrl dir. get_ctrl_dir() now accepts a boolean argument to specify whether to print a warning when the default value ("/sbbs/ctrl") is used. Pass FALSE for jsexec, TRUE for other callers (currently).
-
Rob Swindell authored
-
- May 12, 2020
-
-
rswindell authored
this should allow the import of a bare filename list (no descriptions or white-space after each filename required).
-
- Jan 03, 2020
-
-
rswindell authored
not set (or blank), use the default ("/sbbs/ctrl") and print a warning to stderr. This resolves a FAQ for sysops that struggle with setting the SBBSCTRL env var, but do have sbbs install in /sbbs or a symlink from /sbbs to where sbbs is actually installed. Note: this function is different than the one previously defined in getctrl.c but never used. If/when we ever really need to support PREFIX, then perhaps we'll use that one (which copies a string to a buffer).
-
- Aug 19, 2019
-
-
rswindell authored
In *nix builds of addfiles, when adding a file list (e.g. files.bbs), the case (capitalization) of the filenames is taken literally from the file list, and that may be incorrect in same cases. Detect the correct case of the filename and use it when importing into the filebases.
-
- Aug 12, 2019
-
-
rswindell authored
to put in the description (in strftime() format). Can also be used in combination with '-t' if you want today's date/time instead. It's not very clear from the help/usage output, but if you specify both -f (or -F) and -t, you'll *only* get today's date in the description (not both the file date and today's date).
-
- Jul 18, 2019
-
-
rswindell authored
get_file_diz() was reading the contents of the DIZ/SDI file into a local variable and not returning it or writing to the database. Poof! Also, read the existing extended description if there is one, when updating existing files.
-
- Mar 16, 2019
-
-
rswindell authored
- filenames must begin with an alpha-numeric char. Might want to relax this in the future if it's a problem, but generally filenames on BBSes do begin with alpha-numeric characters and this will help us to identify an ignore "garbage" filenames in listfiles. - always check if the file actually exists, even when parsing the length of the file from the listfile. This will also help us to ignore garbage filenames. - also removed an inexplicable unpadfname() call. Filenames in file lists should *not* normally be padded (like "this .txt") - so I'm not sure why this was in there. Perhaps for lists generated from filelist.exe (?). Anyway, out of an abundance of caution, removed it. Padded filenames are going away.
-
- Mar 13, 2019
-
-
rswindell authored
types twice - first to see if one matches the requirements. If none match, then search again just for an extractor matching the file extension. Modernize the get_file_diz() function a little bit (e.g. return bool).
-
rswindell authored
function. Constify mycmdstr() arguments. Removed trailing whitespaces. No functional changes expected by this commit.
-
- Jul 09, 2017
-
-
rswindell authored
Must read the filebase index *before* comparing the upload date. Also, implement support for -p when a filename is specified on the command-line (without -s or a list).
-
- Jul 07, 2017
-
-
rswindell authored
When using this option, the file's timestamp is compared with the stored upload timestamp. If the file is the same or older than the upload date/time, it is skipped. I think this is what he was asking for.
-