- Dec 06, 2020
-
-
Rob Swindell authored
printfile() assumes you want the file displayed starting in column 0, so will send a CRLF to insure that it does (unless the P_NOCRLF mode flag is specified). But this CRLF printing was happening before the file was opened and when the P_NOERROR mode flag is specified, this should be a silent failure with no print output. So move the CRLF printing to *after* the file is opened. This expose an issue in the latest xtrn_sec.js where it makes several calls to bbs.menu() with the P_NOERROR mode flag set, expecting nothing to happen if/when the optional display files (e.g. xtrn*_tail.*) don't exist. Reported by JC via IRC.
-
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.
-
Rob Swindell authored
- MSG_THREAD_ID - MSG_THREAD_BACK - MSG_THREAD_NEXT - MSG_THREAD_FIRST for John (JCBBS). Not sure what you're going to use these for, but there you have them. <shrug> :-)
-
- Dec 04, 2020
-
-
Rob Swindell authored
-
Rob Swindell authored
The default is still full-streaming mode. The default can be changed by setting [ZMODEM] MaxWindowSize in sexyz.ini to a maximum window size to use by default (e.g. "100K"). Additionally, a [ZMODDEM] TargetWindowSize can be set to a duration (e.g. 60s) to dynamically adjust the maximum window size to match the through-put rate while keeping the outstanding data in-flight to an estimated "duration". When TargetWindowSize is used, the MaxWindowSize only specifies the *initial* maximum window size. The new '-w' command-line option can be used to control Window Management support (e.g. over-riding the .ini set default) - by using '-w' or '-w0', Window Management won't be used or by using '-w<max-size>', a maximum window size will be imposed (subject to the TargetWindowSize setting mentioned above). <max-size> can be specified in bytes or multiples (e.g. "-w100K"). Ths option is similar to the [l]sz '-w' option except no space is expected between '-w' and the (optional) max-size value. Also new, when receiving [ZMODEM] FullDuplex can be set to FALSE to disable streaming mode: if the RecvBufSize is not set (0), the sender should use the subpacket data length (block size, e.g. 1K) as the segment size. Otherwise, setting FullDuplex=FALSE should produce the same behavior as setting the RecvBufSize would before (the result being the use of "segmented ZMODEM" instead of "streaming ZMODEM"). All sexyz command-line options are case-sensitive now (not just the 'cmds'). A lot of code clean-up in zmodem.c. Incremented zmodem.c rev to 2.0. Incremented sexyz version to 3.0.
-
Rob Swindell authored
-
- Dec 03, 2020
-
-
Rob Swindell authored
If no description is given, just make the default/short description, literally, "No description given" - rather than refusing to add the file.
-
- Dec 02, 2020
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
I don't think the function xtrn_access() *ever* existed, but this prototype seems to have been around forever.
-
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).
-
Rob Swindell authored
It enables the keyboard insert mode by default (for Nelgin).
-
Rob Swindell authored
The "DOS" ARS keyword was always evaluating to false, on all platforms, for the C version of chk_ar(), which is used for populating JS *_area objects and for the User.compare_ars() implementation. Unfortunately, the startup (sbbs.ini) "NO_DOS" option is not recognized here (yet), so it'll report true (e.g. for Win64 or Linux systems with DOSemu) even if/when the NO_DOS option is set.
-
Rob Swindell authored
e.g. don't log the error "term !ERROR resolve_ip example.com failed with error -2", just let the script deal with the failure and log an error if it wishes.
-
- Dec 01, 2020
-
-
Rob Swindell authored
Pre-increment would've worked too.
-
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.
-
Rob Swindell authored
cmdstr() is often called for non-executable command-lines (e.g. for @include: file name/path arguments), so don't default to native unless a mode value was specified. Hopefully addresses issue reported by bobrob without breaking anything else (again).
-
Rob Swindell authored
This reverts commit 1597e9a9.
-
- Nov 30, 2020
-
-
Rob Swindell authored
Always check the command-line for a '*' or '?' prefix and compare the executed filename against the native program list. For DOSEMU magic drive/path name command-line specifier substitution, but only when invoking DOS programs. Reported by bobrob via IRC.
-
Rob Swindell authored
xmodem_cancel() would return an error if putcom() failed, *before* setting the "cancelled" [sic] flag. xmodem_cancel() in response to the receipt of a remote cancel request (^X character).
-
- Nov 29, 2020
-
-
Rob Swindell authored
-
Rob Swindell authored
Don't do the DOSEMU drive-letter dance for xtrn startup directory if the xtrn's command line is implicitly native (e.g. Baja or JS). Also, recognize Baja command-lines as native in cmdstr() - for %n, %!, etc. DOSemu expansion hack.
-
Rob Swindell authored
If a node's configuration can't be loaded (e.g. nodeX/node.cnf is missing), fall-back and load the "first node" (e.g. Node1) configuration. On recent *nix installs (since the migration to Git), the node2+/node.cnf files were not copied/created, so let's solve that soon-to-be-FAQ now.
-
Rob Swindell authored
Fixes issue introduced in last commit to this file (the each-node-has-its-own-config-in-memory enhancement) that would prevent users from logging in because their time was reduced for an upcoming event that had already run. The change assumes the event thread is running (its the thing that reads the event last-run info from time.dab). Thanks to mlong for the report.
-
Rob Swindell authored
... between all nodes of a instance sbbs instance. That's now no longer true.
-
Rob Swindell authored
Previously, all nodes shared the same copy of the configuration in memory. This prevented any node from seeing an updated configuration until all nodes were offline or waiting for connection and could be recycled. Now, no recycling of the server is needed for a node to load a new config. A node in-use *still* cannot reload configuration until the user disconnects, but all you have to do is logon to another unused node and you (or that user) will get an updated configuration. Bots or server recycling problems will no longer prevent the sysop or user from getting a current configuration when connecting to any node. This is one of those instances of giving the sysop what he wants rather than what he asked for. I should've done this a long time ago, but the idea just occurred to me. You're welcome. :-)
-
Rob Swindell authored
Let UIFC do the truncation as necessary to fit windows/forms, when applicable. Thanks for jc and nelgin for pointing this out via IRC.
-
Rob Swindell authored
The name length is limited to 25 chars, so we don't need a 50-char wide menu here.
-
- Nov 28, 2020
-
-
-
Rob Swindell authored
-
Rob Swindell authored
More logging details (e.g. subpacket byte progress). Identify XON and XOFF by name (e.g. when purging receive buffer). Some variable naming and comment improvements.
-
Rob Swindell authored
Also, zmodem_send_raw() was saving the "last sent" char, even if it wasn't successfully sent. Eliminated the "errors" mode of zmodem_recv_header_raw() since was no longer used. Eliminated zmodem_recv_header_and_check() since it's no longer used. Some debug-log fix-ups (e.g. with progress/offset).
-
Rob Swindell authored
-
Rob Swindell authored
only when the errored data subpacket was a ZCRCW (waiting for ZACK). To resolve a non-streaming failure to recover after CRC error issue.
-
Rob Swindell authored
-
Rob Swindell authored
... like the last commit that did this, but do in the other 2 places where stderr output is logged as log messages. Also, include the extended program name in the stderr log messages, making it easier to find the output you're looking for.
-
Rob Swindell authored
... based on the configuration setting. Also, prompt for upper or lowercase after setting the editor information file type, so no "door drop file" needs to be selected to change the case of the editor information file. - reported by mlong
-
- Nov 27, 2020
-
-
Rob Swindell authored
Makes easier trace/debugging of issues (e.g. matching up with sending side logs). No functional change.
-
Rob Swindell authored
__FUNCTION__ cannot be used a string literal in GCC.
-
Rob Swindell authored
Previously, a ZRINIT frame would be sent even after a failed file download, and this could be misinterpreted by the sender as a successful file receipt acknowledgement. 'lrz' just completely aborts the receive "batch" under the same conditions, so we'll just do the same to prevent the sender (e.g. BBS) from mistakenly counting this as a successful transfer (download). A lot of log message updates: additions, removals, and use of the __FUNCTION__ macro.
-