- Jan 20, 2022
-
-
Rob Swindell authored
Default the progress time interval to 500 milliseconds (twice a second). Don't specify a count/call interval in the call-sites, since we really want to use time-based progress updates now only and the default probably will work fine everywhere.
-
Rob Swindell authored
To send less text over slow (e.g. 4800bps) modems. For Nelgin. This makes the interval argument unnecessary I think.
-
Rob Swindell authored
system.illegal_filename() - check if contains illegal chars/sequences system.safest_filename() - check if contains only safest chars system.allowed_filename() - check if meets criteria from SCFG->File Options system.check_filename() - check if legal and meets configured criteria and is not in file.can bbs.check_filename() - ditto, except will display badfile.msg as appropriate Now scripts can utilize the sysop-controlled filename criteria and security of the BBS.
-
- Jan 19, 2022
-
-
Rob Swindell authored
Only in debug builds. If this check fails, then we may be producing/using potentially un-terminated strings and need to do something about that. By default, xpdev/genwrap.h redefines snprintf() as safe_snprintf(), so this check *should* always succeed.
-
Rob Swindell authored
The default is 'size' parameter value is 12 characters, not 13.
-
- Jan 18, 2022
-
-
Rob Swindell authored
If an extended description contains nothing but Ctrl-A codes and white-space, don't display it in a file listing (in place of the normal short description).
-
Rob Swindell authored
Apparent copy/paste error in sbbs_set_sound_settings() - I was wondering why the HangupSound key wasn't saving to the sbbs.ini file from SBBSCTRL.
-
Rob Swindell authored
This is an experimental feature that's been in the code for quite a while without any supporting help/docs (there was the original commit message, I'm sure). I'm not sure how much value this feature is without providing automatic access to the *files* within the sub-directories, but there you have it.
-
- Jan 17, 2022
-
-
Rob Swindell authored
"Request for x is outside of the web root" was already logged (with a "NOTICE" log level), but would not sound the hack attempt alarm (on Windows) or log to the hack.log. Now it does.
-
- Jan 16, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
file_area.web_vpath_prefix file-metadata-object (return value of FileBase.get()).vpath
-
Rob Swindell authored
These methods also (optionally) accept a file-meta-object as an argument.
-
Rob Swindell authored
Similar to the ctrl/ftpalias.cfg file, the new ctrl/web_alias.ini file (optional) can be used to map a portion (the first portion, only) of a web request path to a different physical or virtual path. For example, I'm using it to map: /Synchronet/ = /files/main/sbbs/ for filebase access to my main->sbbs directory of Vertrauen's filebase using a /Synchronet/* web request (i.e. for slightly prettier or shorter custom URLs, if desired).
-
Rob Swindell authored
By setting SCFG->File Options->Web File Virtual Path Prefix to something (e.g. "/files/"), all HTTP or HTTPS requests to the Synchronet Web Server with request paths beginning with this prefix will be interpreted as filebase access requests (with full access control enforcement). This is configured here (in SCFG) rather than, say, the [web] section of sbbs.ini, because I have plans for the terminal server to use this prefix to generate Web-URLs for files to display or email to users. Currently, only requests to *files* (for download) are supported (no index generation, file information, etc. and definitely no upload support). Full access control (using HTTP auth, not cookies) is used for libraries and directories with controlled access. Credits are deducted and awarded and uploaders are notified of downloads, as one would expect. Requests to any dynamic-web-content files (e.g. .SSJS, .XJS, etc.) will be treated as static file download requests (no script will be executed). I'm reusing the same virtual path parsing logic from the FTP server (moved to the userdat lib), so the virtual path to a file for download would be, for example, http://yourdomain/files/lib/dir-code/filename.ext The main motivation for this feature is: FTP-links in email and web pages are just not useful to many users these days and I don't think that sysops should have to rely on a SSJS web UI (e.g. ecWebv4, cool as it is), to provide web-access to the filebases. Using this feature, you can share simpler/shorter web links to your files that will be more enduring.
-
- Jan 14, 2022
-
-
Rob Swindell authored
CID 345291 It's actually a false positive because if an extension (".suffix") exists in filespec, it must also exist in newfilespec since it's a copy, but whatever. It's better form to check.
-
Rob Swindell authored
libarchive apparently cannot be used for in-place modification of (e.g. adding files to) existing archives, so if a bundle already exists, this code would over-write it with a new archive containing just the latest packet. Issue reported by acn (IMZADI) via DOVE-Net. I could and might create an update_archive() function which extracts and re-creates an archive with additional files, but since I don't have that yet, just disable this for now and always use an external archive utility to create or update bundles (so again, an "Archive" configuration is required in your sbbsecho.ini file, which you most likely already have).
-
- 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
When searching descriptions for text, include these new metadata fields in the content to search.
-
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.
-
- Jan 11, 2022
-
-
Rob Swindell authored
Default to 64 characters. Maximum value is 65535 characters, but filenames larger than 64 characters may be problematic (e.g. searching for them, displaying them, security concerns), so only increase with caution. Shorter values are fine, but 0 will just revert back to the default.
-
Rob Swindell authored
Prefixed or trailing white-space characters would be hard to discern without this.
-
Rob Swindell authored
As discovered while making the Synchronet v3.18b feature video (https://www.youtube.com/watch?v=_IWzIV0_sZ4), when only a shortened version of a long filename is displayed (e.g. due to 80 column terminal width limitations), trying to download that filename by specifying the filename at the Download File(s) Filespec [All Files]: prompt can be problematic. For example (as seen in the video), the file "SyncTERM-1.1-setup.exe" is displayed as "SyncTERM.exe" (on an 80-column terminal), yet trying to download "SyncTERM.exe" (or "syncterm.exe") using the 'D'ownload command would fail to find a file with that name (understandably, but frustratingly so). This change will transform the requested filename-to-load if it is at least 12 characters in length and contains no wildcards (* or ?), to include a filename extending wildcard: "filename.txt" will become "filename*.txt" and "longfilename" will become "longfilename*". For requested filespecs of NULL (all files) or specs containing wildcards or specs (filenames) less than 12 characters in length, no filespec transform takes place: so trying to list/download "a" doesn't match "apple.txt".
-
- Jan 05, 2022
-
-
Rob Swindell authored
-
- Jan 04, 2022
-
-
Rob Swindell authored
By extracting with with_path=true, the file_list matching won't match the nested DIZ files.
-
Rob Swindell authored
Previously, extracted files were always overwritten (so that is the "default" for Archive.extract() and mostly what I'm specifying in the C/C++ code by default now), but this caused a problem with DIZ extraction: archives that contained multiple DIZ files (e.g in sub-directories), the last to be extracted would be used. A maximum of 3 DIZs can be extracted, so it would usually be the 3rd DIZ in the archive if there were that many. Another solution would be to *only* extract DIZ files from the root of the archive and I should look into that as well, but the always-overwrite behavior also seemed to be wrong, so that *also* needed fixing (allow caller to control behavior). This fixes issue #317, at least for archives where the root DIZ exists *before* any nested DIZ files. I'll have to try and create a purposeful archive to test the other conditions (where the root DIZ would appear *after* the nested DIZ(s)).
-
Rob Swindell authored
-
- Jan 02, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
I wanted to use an unordered bullet list, but the CSS tricks are making those not-displayed, so going with ordered (numbered) list for now.
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
- Jan 01, 2022
-
-
Rob Swindell authored
-
- Dec 30, 2021
-
-
Rob Swindell authored
Default connect timeout is now 10 (seconds), and can be overridden by passing an additional number argument to bbs.telnet_gate() or bbs.rlogin_gate(). Addresses issue #314 by Nelgin.
-
Rob Swindell authored
log an error message and disable the transmit-relay in this detected-misconfiguration case. Fixes issue #315 reported by Nelgin.
-