- Dec 12, 2020
-
-
Rob Swindell authored
New @-codes: GIT_HASH and GIT_BRANCH New JS system properties: git_hash and git_branch
-
- Dec 06, 2020
-
-
Rob Swindell authored
When system.new_user() was called but the current "client" object is uninitialized (e.g. has NULL protocol, host or IP address fields because there is no active client, e.g. because is was called from a timed event with active user online) - this code would dereference a NULL pointer and crash the b0rad. Reported by Mortifis.
-
- Dec 02, 2020
-
-
Rob Swindell authored
-
Rob Swindell authored
Like bbs.text(), except the "system" object is more widely available (e.g. in JSexec, mail server, web server, services) - in case any text.dat strings are useful in those execution environments tool. Requested by mlong. Also cleaned up the argument validation in some of these other system methods (throw useful error exceptions rather than just returning false).
-
- Sep 19, 2020
-
-
Rob Swindell authored
betwen 4 (the default) and 40 (the maximum) characters
-
- Sep 17, 2020
-
-
Rob Swindell authored
- JS system.operator_available property (read/writeable) - SYSAVAIL @-code which expands to LiSysopAvailable or LiSysopNotAvailable (use the new SYSAVAIL @-code in the chat menu to show availabilty to chat) - ;avail sysop command (in str_cmds.js) to toggle sysop availability - Changed LiSysopIs text.dat string to be a format string (include %s) and the trailing \r\n, so that it can be used in str_cmds.js or anywhere else to report sysop availability to chat, or can be set to blank string to display nothing (this would not work previously).
-
- Sep 14, 2020
-
-
Rob Swindell authored
-
- Aug 16, 2020
-
-
Rob Swindell authored
-
- Mar 31, 2020
-
-
rswindell authored
- min_password_length (currently hard-coded to 4) - max_password_length (currently hard-coded to 40) Remove 2 unused system properties (nobody uses PostLink/UTI drivers any more): - psname - psnum
-
- Mar 29, 2020
-
-
rswindell authored
use this in place of system.node_list[] if you're going to be using a lot of the properties and passing them around to methods which are going to each possibly dereference the values, as *each* deference results in a read of the node record in the node.dab. On my system, a simple node list (e.g. /L command) would result in between 60 and 100 reads of the node.dab (for a 13 node system), which was nuts. The system.get_node() method currently leaves the node record unlocked and there is currently no equivalent put_node() method, so you still need to use the system.node_list[] for modification of node records. But, I now see there are race conditions with the current methods of read-modify-writes of the node_list[] properties. We should be locking a node.dab record, reading it, modifying it, writing it, and then unlocking it - as is done in the C/C++ code. So... that's a todo item. Also created system.stats.node_gets to track the number of node.dab reads from a single instance of the system object. May remove this any time.
-
- Mar 24, 2020
-
-
rswindell authored
"getter". Don't call getstats() when querying properties that aren't actually stats (e.g. total_users) - performance optimization.
-
- Sep 02, 2019
-
-
rswindell authored
The scfg_t instances are often shared between threads and we can't really share file descriptors between threads, so we ended up with file descriptor leaks and race conditions. Instead, define/allocate/free a new js_system_private_t where the scfg_t* and the nodefile (descriptor) are kept - per "system" instance.
-
- Aug 31, 2019
-
-
rswindell authored
(ctrl/node.dab) is constantly closed and re-opened for every non-locking read. This is really slow across network file systems and unnecessary, so use a similar optimization as the C++ sbbs_t class where the file can (and normally is) left open across multiple consecutive reads. Create/use opennodedat() function. Uses the new CLOSE_OPEN_FILE() macro from xpdev/filewrap.h.
-
rswindell authored
(user) Inactivity" system setting (in days, 0 = disabled).
-
- Aug 20, 2019
-
-
deuce authored
-
- May 04, 2019
-
-
rswindell authored
declaration
-
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.
-
- Mar 10, 2018
- Feb 20, 2018
-
-
rswindell authored
-
rswindell authored
HANDLE_PENDING() contains a return, so it's theoretically possible that the memory allocated by the previous JSVALUE/STRING_TO_... allocation could be leaked. So now we pass an optional pointer to HANDLE_PENDING() which will call free() on it if it's not NULL, and then sets it to NULL for good measure.
-
- Nov 16, 2017
-
-
rswindell authored
-
- Nov 13, 2017
-
-
rswindell authored
Server via the new 'V' command from the Reading Mail prompt allows you to toggle between all mail (including SPAM, the default), SPAM only, or HAM only. Also added a new '/' (search text) command from the reading mail prompts. Mail imported before the mailsrvr added support (recently) for the MSG_SPAM attribute flag will not be counted/filtered as SPAM. SBBSecho will have a commit (next) to support the new loadmail() usage, it will not compile until then.
-
- Oct 23, 2017
-
-
rswindell authored
-
- Dec 02, 2016
-
-
rswindell authored
-
- Nov 10, 2015
-
-
deuce authored
node_dir.
-
- Aug 25, 2015
-
-
deuce authored
-
- Aug 22, 2015
-
-
deuce authored
-
- Aug 20, 2015
-
-
deuce authored
New Features: - Multiple bindings for each service Use comma-separated interfaces on Interface= lines in the ini file. Default is now "0.0.0.0,::" - IPv6 support - TLS support for the webserver and (non-static) services New TLS option in services.ini (ie: Options=TLS) - Decrease LEN_SCAN_CMD to 35 chars, increase the CID field to 45 chars, and rename the MAIL_CMD string to IPADDR. I think this frees up the note field for SysOp use.
-
- Jul 29, 2015
-
-
deuce authored
if one isn't specified. For backward compatability with versions before 3.16c, this argument should still be provided.
-
- Aug 19, 2014
-
-
rswindell authored
bit-flag macros).
-
- Apr 06, 2014
-
-
rswindell authored
-
- Sep 30, 2013
-
-
deuce authored
object from working properly. Fix up jsdocs. view http://nix.synchro.net:7070/jsobjs.html and let us know what else is wrong!
-
- May 10, 2013
- Apr 27, 2013
-
-
deuce authored
char. Thanks for the bug reports.
-
- Feb 08, 2013
-
-
deuce authored
-
- Jun 15, 2012
- Jun 01, 2012
-
-
rswindell authored
I'm pretty sure this wasn't broken before the great spidermonkey upgrade of 2011, but whatever. :-)
-