- 21 Mar, 2022 1 commit
-
-
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.
-
- 03 Mar, 2022 1 commit
-
-
Rob Swindell authored
So this started with addressing CID 174264: Big parameter passed by value (PASS_BY_VALUE), but then I fell down the constification rabbit hole. :-)
-
- 20 Jan, 2022 1 commit
-
-
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.
-
- 02 Jan, 2022 1 commit
-
-
Rob Swindell authored
-
- 30 Dec, 2021 1 commit
-
-
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.
-
- 28 May, 2021 1 commit
-
-
Rob Swindell authored
This is the last thing needed to complete the new temp/archive menu module implemented in JavaScript for v3.19. File list generation can easily be done in JS (see filelist.js for example), but since we have this function already in C++ (i.e. for including filelists in QWK packets) - might as well make it available for use in JS.
-
- 27 May, 2021 1 commit
-
-
Rob Swindell authored
To list/view file/archive contents.
-
- 04 Apr, 2021 2 commits
-
-
Rob Swindell authored
-
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...
-
- 15 Feb, 2021 5 commits
-
-
Rob Swindell authored
Reverted the SAFECOPY() NULL source-pointer magic "(null)" string thing as that caused a different Coverity issue. Explicitly check for NULL at the call-sites instead.
-
Rob Swindell authored
Reverted the SAFECOPY() NULL source-pointer magic "(null)" string thing as that caused a different Coverity issue. Explicitly check for NULL at the call-sites instead.
-
Rob Swindell authored
Hopefully not introducing any bugs in the process.
-
Rob Swindell authored
Hopefully not introducing any bugs in the process.
-
Rob Swindell authored
Identified by Coverity.
-
- 25 Dec, 2020 1 commit
-
-
Rob Swindell authored
Exposes the FTN BBSID value from the message header (if there is one).
-
- 20 Dec, 2020 1 commit
-
-
Rob Swindell authored
Technically, forward_msg() can work on any message base but really should only be used in the 'mail' base.
-
- 01 Dec, 2020 1 commit
-
-
Rob Swindell authored
... or when passed an invalid external program code or number, rather just just returning false. The underlying exec_xtrn() C++ function may return false (failure) for other reasons, so let's not obfuscate the other potential failure causes.
-
- 06 Nov, 2020 1 commit
-
-
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.
-
- 19 Sep, 2020 1 commit
-
-
Rob Swindell authored
-
- 16 Aug, 2020 1 commit
-
-
Rob Swindell authored
-
- 26 May, 2020 2 commits
-
-
rswindell authored
If sbbs_t::menu() is called with a menu file/code that includes wildcard characters (? or *), do the random menu thing. This is true for Baja MENU function and JS bbs.menu() as well as MENU/CONDMENU @-codes, so no longer need a bbs.random_menu() function (removed).
-
rswindell authored
Create sbbs_t::random_menu() (JS bbs.random_menu()) - to make the display of a randomly-chosen menu file from text/menu, very easy.
-
- 14 May, 2020 1 commit
-
-
rswindell authored
SCFG for Win32 is linked against a load_cfg lib that builds withOUT SCFG defined, so these compiled AR elements were allocated and then many SCFG operations (e.g. copy/paste, create new) would copy the allocated ARs to another configuration and then be subjected to double-free upon exit/clean-up (resulting in exception or crash). Just get rid of this cruft and some other related RAM-byte-saving hold-overs from the MS-DOS days.
-
- 30 Apr, 2020 1 commit
-
-
rswindell authored
the name of a scalar property in either the current scope (by default) or the scope of the object passed to: - bbs.menu() - console.putmsg() - console.printfile() - console.printtail() The 'name' cannot be an array element (e.g. myprop[0]) or a nested object reference (e.g. myobj.myprop): just a single property name that can be converted to a string. Also, bbs.menu() now accepts an optional print-mode argument (default: P_NONE).
-
- 24 Apr, 2020 2 commits
- 23 Apr, 2020 1 commit
-
-
rswindell authored
- external programs section (default: "xtrn_sec") - logon list (default: "logonlist") This ties the Baja XTRN_SECTION and USERLIST_LOGONS functions and the JS bbs.xtrn_sec() and bbs.list_logons() methods to the loadable modules (if configured) automatically without the exec_bin hackery in *.src. Also, allow the xtrn section argument to be passed to the JS/C++ method to go directly to a specific xtrn program section. The bbs.list_logons() can also accept an argument to pass to the module (e.g. "-y" for yesterday's logons).
-
- 09 Apr, 2020 1 commit
-
-
rswindell authored
is called without a "mode" specified. This uses the new default SCAN_INDEX mode. If you need the old behavior (does not invoke the listmsgs_mod), specify a different mode value (e.g. SCAN_READ). All of the mode values (other than SCAN_INDEX) will not start the list message module, but rather use the internal C++ logic. This provides an intuitive way to actually invoke the list messages module from JS without hard-coding bbs.exec("?module") into a cmd shell, for example.
-
- 20 Mar, 2020 1 commit
-
-
rswindell authored
Fixed some JSDOC strings.
-
- 01 Mar, 2020 1 commit
-
-
rswindell authored
to an object with JSVAL_TO_OBJECT(). Go figure.
-
- 10 Jan, 2020 1 commit
-
-
rswindell authored
-
- 02 Aug, 2019 1 commit
-
-
rswindell authored
(defauls to enabled, for backward compatibility). Added new autohang args to bbs.send_file() and bbs.receive_file() (default:true) Added support for "description" argument to bbs.send_file() as well.
-
- 16 Jul, 2019 1 commit
-
-
rswindell authored
error (e.g. can't convert 2147745800 to an integer), so use JS_ValueToECMAUint32() rather than JS_ValueToInt32() where we possibly need a full 32-bit value.
-
- 04 May, 2019 2 commits
-
-
rswindell authored
MSVC had no problem with this. <sigh>
-
rswindell authored
Use this in place of JS_GetPrivate() in native class methods that need the class instance's private data pointer and will do bad things if that pointer points to something other than what is expected. mcmlxxix (matt) discovered that using Object.apply(), you can invoke class methods where the 'this' instance is a different class. This would result in "Internal Error: No Private Data." or a crash. So now, gracefully detect this condition and report a meaningful error: "'<class-name>' instance: No Private Data or Class Mismatch" Also, important to note: if the method uses JS_THIS_OBJECT to get the JSObject* to pass to JS_Get*Private, then it must do this *before* it calls JS_SET_RVAL. From jsapi.h: * NB: there is an anti-dependency between JS_CALLEE and JS_SET_RVAL: native * methods that may inspect their callee must defer setting their return value * until after any such possible inspection. Otherwise the return value will be * inspected instead of the callee function object. The js_crypt*.c files still need this treatment.
-
- 02 May, 2019 2 commits
-
-
rswindell authored
Expanded codes will not *not* go beyond the terminal column width (minus 1). If you need the old/wrap behavior, add a "-W" modifier to your @-code. If a length value is specified with -W, it is ignored. - MSG_TO, MSG_FROM, MSG_SUBJECT now reflect the header values passed to sbbs_t::show_msghdr(), JS bbs.show_msg_header() and not necessarily the actual stored (e.g. MIME-encoded) header values. New codes: - MSG_CC - reflect a message's CC list, if it has one - DATETIMEZONE - combines DATETIME and TIMEZONE in one string
-
rswindell authored
show_msghdr(), over-riding the values from the passed smbmsg_t. This is useful for, say, displaying MIME-decoded values rather than the MIME-encoded versions of the header fields that you often find in email today.
-
- 11 Apr, 2019 2 commits
-
-
rswindell authored
-
rswindell authored
console.msghdr_top_of_screen): a hack to let scripts know whether the most-recently displayed message header was displayed on the top of the terminal screen (or not). This allows us to show avatars at the top of the screen when the header is up there, rather than relevative to the bottom of the header (the pos can vary, depending on stuff).
-
- 10 Apr, 2019 1 commit
-
-
rswindell authored
download_file_attachments() and expose via new JS "bbs" method. Currently this only reall works for the mail base.
-