- Sep 22, 2024
-
-
Deucе authored
It's likely time to find a nice format that can be used to generate HTML and PDFs and such now.
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
Prevents crashes on modern FreeBSD systems that default to implicit PROT_MAX in the JS code. (It's possible that +wxneeded will be needed too.. still experimenting)
-
Deucе authored
-
Deucе authored
The first entry I tried adding was "Example..." which was not a valid hostname, but was copied into the address and looked silly. Now only copies into address if it's a valid, usable hostname. Also, add a convenience macro to check if a connection type uses the network or not. New functions in netwrap: bool isValidHostname(const char *str); bool isValidAddressString(const char *str); bool isResolvableHostname(const char *str); We ust the last one (which calls the other two) for this feature now.
-
- Sep 21, 2024
-
-
Rob Swindell authored
Use byte_estimate_to_str() to display upload/download byte totals (better support for totals in gibibytes, tebibytes, etc.).
-
Rob Swindell authored
I discovered that sbbs_t::editfile() (exposed as JS console.editfile) just silently failed if it couldn't write to the destination file (e.g. permission denied by OS).
-
Rob Swindell authored
iniReadFile() can return NULL upon file read error or malloc error. Let's not crash if that happens.
-
Rob Swindell authored
Even if the empty, iniReadFile() should return an empty list (not NULL), NULL indicates a file read (or unlikely malloc failure) - so don't write back what we read and return false (result) instead. Part of likely work-around of issue #791: it's better to not increment stats upon a file read error than to reset them all to zero.
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
Part of potential fix (or work-around) for issue #791
-
Rob Swindell authored
The file position should always be at the EOF after reading the contents. This should help detect (log errors) upon potential cause of issue #791. - use a little easier to read .ini style - add a NULL argument check to local function write_dstats() return false rather than deref the NULL pointer
-
Rob Swindell authored
Previously, the partially-read lines would be returned in an allocated string list. This is a suspected cause of issue #791: even though the file was successfully opened exclusively (using sopen... SH_DENYRW), it's possible that Samba had already allowed another client or local process to open the same file, but is now a denying read (most likely, the first read). As Deuce pointed out, the xpdev *nix implementation of sopen() locks the region/record of the entire file. So before this change, strListReadFile() might fail on the first read, and a function that uses iniFileRead() to modify the contents of an ini file, might end up writing back the empty list (with added keys), thus deleting all the existing content of the file. Also in this change: - Eliminated the unnecessary local/wrapped str_list_read_file() function. - Elminate unecessary null-before-free check - Fixed potential memory leak upon malloc failure (the potentially-allocated list wasn't freed).
-
Deucе authored
Using FAT=1 one the make command-line
-
Rob Swindell authored
Revisiting this script due to usability issues reported by W5jsn (TUCUMCAR). Dynamically figure out the file path rather than storing another property ('path') in the list objects (which ends up in the .ini file). The absence of the path property (when the file didn't exist) could result in script-ending exceptions. .ini files are supposed to be open for read/write access (even when just writing), so open the file in "w+t" mode in write_list(). Clear console.aborted flag before menu listings: hitting Ctrl-C in some point could display just header and prompt of lists with no contents.
-
- Sep 20, 2024
-
-
Rob Swindell authored
This should help identify the function(s) used when the corruption occurs.
-
Rob Swindell authored
-
Rob Swindell authored
iniWriteFile() returns bool, not int. Removed inapplicable function comment.
-
Rob Swindell authored
Hopefully help to determine cause of issue #791 (when is the apparent corruption of this file occurring?)
-
- Sep 19, 2024
-
-
Rob Swindell authored
This should address issue #787
-
- Sep 18, 2024
-
-
Rob Swindell authored
scan_cfg and last_read props too. This gives us use of the entire 32-bit range of an unsigned int. But does someone actually have a message base with message numbers in the billions? This is an attempt to fix isssue #792, but I suspect scan_ptr might instead be trying to be set to NaN or ... ?
-
Rob Swindell authored
-
Rob Swindell authored
fclose() returns 0 on success.
-
- Sep 17, 2024
-
-
Rob Swindell authored
DDFileLister: Fix for replacing cursor-right codes to allow finding & replacing all of them in a string See merge request !461
-
Eric Oulashin authored
DDFileLister: Fix for replacing cursor-right codes to allow finding & replacing all of them in a string
-
Rob Swindell authored
-
Rob Swindell authored
The terminating NUL is actually part of the index record, but with file corruption, it's technically possible the NUL could be missing. Fixes CID 509552 Use strnicmp() insted of stricmp() in smb_removefile() Fixes CID 509551
-
Rob Swindell authored
The terminating NUL is actually part of the index record, but with file corruption, it's technically possible the NUL could be missing. Fixes CID 509554
-
Rob Swindell authored
Multiple directory searching functions wouldn't terminate on Ctrl-C
-
Rob Swindell authored
If the user didn't supply a wildcard, only a single file (the first file matching the liberal file pattern) would ever be listed in the file listing/searches, even when multiple files in the directory matched the liberal file matching pattern. This is not a new bug.
-
Rob Swindell authored
Commit 3a3c889b (2 years ago now) changed loadfiles() to use liberal file matching (e.g. "syncterm.exe" matched both "syncterm.exe" and "syncterm_v1.2b.exe"). This could produce surprising results when doing file list querieis/operations with the FileBase methods via JS (e.g. jsexec utils) and (now that I look at it), the FTP server too. So we should not have been doing liberal file matching *everywhere* loadfiles is used, just where it was a usability issue (due to displayed filenames being truncated to 12 chars for <=80 column terminals). Now solved by add/use of new liberal_filepattern() function only in the built-in file listing methods: sbbs_t::listfiles() and sbbs_t::listfileinfo(). Note: Custom JS file searching/listing scripts may now need their own work-arounds for this usability issue, if they have it.
-
Rob Swindell authored
Clarify that this is the method to use to rename a file.
-
- Sep 16, 2024
-
-
Rob Swindell authored
Since sorting works on the file index record date-time (date/time added) it was confusing to display dates that didn't always match the sort order.
-
Rob Swindell authored
Should fix issue #790
-
Rob Swindell authored
If you want to "touch" a file in the filebase (so it appears a new again) this is the script to use to do that.
-
Rob Swindell authored
-
Rob Swindell authored
DDFileLister: When displaying a file description, remove/replace cursor movement characters, which can corrupt the display See merge request !460
-