- Mar 24, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
We don't have a use case negative byte values in strings anywhere that I can think of. Created wrapper for MSFT _ui64toa_() - unsigned 64-bit integer to ASCII string. Add Petabyte (actually, Pebibyte) support to byte_count_to_str() and byte_estimate_to_str(). Removed 'B' suffix from byte_estimate_to_str() output for values < 1024. Callers may display this returned string followed by "bytes" (or similar) and thus the 'B' suffix is redundant in that case. If the caller needs a 'B' suffix, they can detect no suffix and add it.
-
- Mar 21, 2022
-
-
Rob Swindell authored
warning: invalid suffix on literal; C++11 requires a space between literal and string macro
-
Rob Swindell authored
To fully support files > 4GB in size in file bases, credit values larger than 32-bits must be supported too. There's a couple of todo comments/items included in this commit, but that's mainly to do with messages (which don't really have costs anyway). The main thing to deal with now is the fact that users can't have more than 4GB in credits in the first place! That's got to be fixed next.
-
Rob Swindell authored
comparison of integer expressions of different signedness: ‘off_t’ {aka ‘long int’} and ‘uint64_t’ {aka ‘long unsigned int’}
-
Rob Swindell authored
Used the reserved 16-bits in the file index record to extend the supported index-file-size from 4294967295 (4GB) to 281474976710655 (281TB). I think that's big enough for the foreseeable future. :-)
-
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.
-
Rob Swindell authored
-
Rob Swindell authored
Query the disk for file's current "size" and "time" values when get_list() or get() method is used with a "detail" level of >= DETAIL.NORMAL and the "check file existence" toggle option is enabled for this directory in SCFG. I pondered and contemplated whether this configuration setting should be checked/applied here or in the various JS scripts (e.g. filelist.js) and decided here was best to provide the most uniform/expected behavior, even though there is a performance impact. If a script doesn't need/use these properties, they should probably be specifying the DETAIL.MIN (minimal) detail level in their queries anyway, which will then bypass these performance-impacting disk queries.
-
Rob Swindell authored
There are lot of places in the code where subnums and dirnums (especially) are compared against total_subs and/or total_dirs or >= 0 without a ton of consistency. We should migrate to use these functions for validity-checking going forward.
-
Rob Swindell authored
This option actually controls whether the disk will be queried for the current file size and modification date/time (when listing) too.
-
- Mar 20, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
By setting sbbs.ini [web] FileIndexScript to an SSJS or XJS script filename, that script (by default, from your exec directory) will be executed when a file area/base listing has been http[s]-requested. File area/base requests are of the form <vpath_prefix> (for the list of libraries), <vpath_prefix>/<lib-name>/ (for list of directories of a library) or <vpath_prefix>/<lib-name>/<dir-code-suffix>/ (for a list of files in a directory). The new http_request "lib" and "dir" properties indicate that a library or directory listing was requested (if neither are defined, that's a request for the root / list of libs). The same configured script is executed to handle all 3 types of index/list requests. A sample script (webfileindex.ssj) will be committed soon. Authentication (via HTTP-AUTH) will be required if user #0 does not have access to all libraries or all directories within a required library. file_area.lib[].link has been changed from "/<vdir>/" to just "<vdir>" (no slashes) and renamed to "vdir". file_area.dir[].link has been changed from "/<vpath>/" to "<vpath>/" (no leading slash) and renamed to "vpath". Added file_area.dir[].vdir property that contains just the directory's virtual directory name. I don't think anyone was using these "link" properties since the dynamic FTP HTML index scripting feature is no longer supported. Added can_user_access_lib() to insure that the user has access to at least one directory of a library before allowing access to the library (e.g. via JS). Something similar should be created for message groups.
-
Rob Swindell authored
Resolves issue with filelist.js trying to pass 4294967295 (-1) to system.datestr() resulting in: !JavaScript /sbbs/exec/filelist.js line 13: Error: can't convert t to an integer
-
- Mar 17, 2022
-
-
Rob Swindell authored
-
- Mar 14, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
std::min() requires both arguments be of same type too.
-
Rob Swindell authored
More immediately. I wanted to debug the ETA value here and the action wasn't written to the node file here, but later.
-
Rob Swindell authored
Resolve issues displaying file sizes > 4GB and calculating credit values.
-
Rob Swindell authored
To display (rather than "Searching for Dupes") when calculating file hashes.
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
qp_decode (quoted-printable in-place decode of a string) could write 2 characters *beyond* the allocated buffer by appending "\r\n" to a string that was not quoted-printable in the first place. i.e. the contents of buf were not actually changed in the decode loop. This could result in a corrupted heap and crash of sbbs or smbutil when reading such a message. This change may result in a lack of CRLF appended to decoded plain text output, so we'll have to keep an eye out for that and resolve it some other way. One possibility could be to only append the CRLF if the destination pointer is sufficiently behind the source pointer. This solves the crash that Kirkman reported with a specific message in his "mail" base. The header for the message said it was quoted-printable encoded, but the body text was not actually encoded at all: OtherHeader Content-Type: text/plain; charset="iso-8859-1" OtherHeader MIME-Version: 1.0 OtherHeader Content-Transfer-Encoding: quoted-printable
-
Rob Swindell authored
-
- Mar 13, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
<Dan_C> DigitalMan: minor install issue noted today - during a fresh (Linux) install on a test box, the build failed because it was unable to execute the "sudo setcap ..." command. This was on Slackware 15.0, where the setcap executable is located in /sbin , and that directory is not in the $PATH of a normal user, or even when a normal user uses the 'sudo' command.
-
Rob Swindell authored
-
Rob Swindell authored
Actually probably doesn't fix it, but what'evs
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
Also, when hitting ESC at the "Use Real Names" prompt, don't prompt for the Lower-casing of the drop file name.
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
... and USERS.SYS file creation using new C++ type definitions in pcbdefs.hpp. This mostly fixes issue #366.
-
Rob Swindell authored
PCBOARD.SYS is officially the worst file format ever invented, not just the worst BBS drop file format ever invented. What were these guys smoking?!? I don't know what reference I used almost 30 years ago when I first implemented PCBOARD.SYS file support, but this time I used the PCBoard v15.3 source code (e.g. sys.c and usersys.c) and even their own code seems to work really hard to conform to these crazy file formats. USERS.SYS is a little more sane, but not by a lot. C++ features make this cleaner/easier, but man... there's just so much polish you apply to these turds. I guess (and hope) that nobody's really running programs that depend on/use these file formats. <shrug>
-