- Aug 08, 2024
-
-
Rob Swindell authored
And really, more importantly, the msg header field_list array length would always be interpretted as 0-length! ... introduced in commit 54523145
-
Rob Swindell authored
... introduced in commit 54523145
-
Rob Swindell authored
Include -pause and -loop options in usage help output. Don't delay (sleep) one second when looping and -pause option is used. Flush the output before waiting for key-press (-pause option is used). This should all address issue #365. Sorry for the long wait.
-
Rob Swindell authored
When a user has a "default download protocol" selected (configured for their user account), don't display a menu of file transfer protocols when we're just going to auto-select their default anyway (e.g. when downloading a QWK packet). This change also introduces an argument (%s, the protocol name) in the StartXferNow text.dat string, so that if/when the user forgets which default download transfer protocol they had selected, they'll be reminded ("oh yeah, I need start an XMODEM download!"). This fixes issue #767
-
Rob Swindell authored
As was discovered as part of investigation into issue #769, a JavaScript could crash SBBS (cause a segfault) due to a NULL pointer dereference when the script passes 'null' to native JS functions where an object is expected. The issue raised was with console.gotoxy(), but it turns out that *many* Synchronet native JS functions would call JSVAL_TO_OBJECT() and then, without checking for NULL/nullptr, pass its return value to JS api functions such as JS_GetPrivate, JS_GetProperty, JS_GetClass, JS_ObjectIsFunction, JS_IsArrayObject, JS_GetArrayLength, JS_DefineProperty, JS_Enumerate, etc. All of these JS API functions dereference the passed object pointer without NULL/nullptr checking. The fix here is to either call JSVAL_IS_NULL() or JSVAL_NULL_OR_VOID() and if true, not call JSVAL_TO_OBJECT() and/or check the return value for the NULL value before using as an argument to any other JS API functions.
-
- Aug 07, 2024
-
-
Rob Swindell authored
The calling script will still terminate if it does this, but at least the caller will get a useful JS exception. Related to fix for issue #769
-
Rob Swindell authored
I'm not sure under what script conditions this could happen, but apparently Nelgin was able to produce this null pointer deref (and segfault) using DDMsgReader. This should fix issue #769
-
- Aug 04, 2024
-
-
Rob Swindell authored
See issue #765 for background.
-
Rob Swindell authored
to the getkey inactivity timeout. By setting a socket timeout shorter or equal to the getkey timeout, the getkey timeout effectively does nothing.
-
Rob Swindell authored
If a sysop doesn't want this warning to do anything, then no need to save and restore the current (last displayed) line of text.
-
Rob Swindell authored
We've had this value as the default in sbbs.ini for a while now, so should be safe to use as the upgrading-sysop (who wouldn't have this value in their sbbs.ini file, most likely) setting. Not all default sbbs.ini values are true "defaults" (meaning, if they don't exist in the file, then same value would be used) - but we should do an audit and correct those mismatches at some point.
-
- Jul 12, 2024
-
-
Rob Swindell authored
looks better, more consistent with the log messages before/after it.
-
Rob Swindell authored
We removed the large-scope 'i', but didn't update the Unix-only blocks of code (dealing with UNIX domain spy sockets).
-
Rob Swindell authored
This is just a code quality (readability) improvement. No functional change.
-
Rob Swindell authored
-
Rob Swindell authored
The other server stats (e.g. error_count, served) are zeroed upon startup, so the highwater mark should be zeroed too.
-
Rob Swindell authored
Like the other servers. A sysop likely would want to know which services/protocols had what utilization (as a portion of the total highwater mark), so that'll have to be added later.
-
Rob Swindell authored
We don't log highwater valeus of 1, though those are published to MQTT. Not dealing with 'services' server yet, cause that's kind of tricky with the sysop likely wanting to know per-service stats (served counter, highwater mark, etc.)
-
Rob Swindell authored
-
- Jul 11, 2024
-
-
Rob Swindell authored
Only log the hightwater mark when it's > 1. :-)
-
- Jun 21, 2024
-
-
Rob Swindell authored
Fix CID 497098
-
Rob Swindell authored
If a file descriptor is passed to getnodedat() and the lock retry counter was reached, the file would be closed, but the passed file descriptor reference would not be set to -1. This could result in exceptions (from subsequent read attempts on the referenced file descriptor) in cases where the node.dab could not be locked or read by getnodedat() and was thus closed. The set/get_node_* helper functions (used by MQTT) were not initializing the node.dab file descriptor (i.e. to -1), so it's possible getnodedat() could try to read from and close an invalid/wrong open file descriptor. If the local variable happened to be initialized to a value <= 0, then, no problem, but this is undefined behavior (UB).
-
Rob Swindell authored
This is the proper way to manually-restore the most recently saved window (via the WIN_SAV mode flag to the list() method). I wanted something that was backward comaptible with earlier builds of SBBS, so just doing a magic thing when decrementing the save_num rather than adding a new method seemed the seamless way to do it.
-
Rob Swindell authored
caught by valgrind
-
- Jun 20, 2024
-
-
Rob Swindell authored
We need to read the file header (not just index) entry to get the actual full filename. Also, removed some extraneous calls to getfilepath() that served no purposed.
-
Rob Swindell authored
This was only a problem when these methods were passed a file-meta-object instead of the file name. In hindsight, that's kind of a dumb API "feature" since we're just parsing the name property out of the object. The file_t.file_idx.name is limited to 64 chars, so don't use that struct element to store the parsed "name" property of the passed file-meta-object.
-
- Jun 19, 2024
-
-
Rob Swindell authored
uifc option lists are always NULL-terminated string lists (not static arrays of char arrays, as is often used in other UIFC utils), so grow the ability to have blank options (list items). This was needed for fileman.js to accurately edit extended file descriptions that contain blank lines.
-
- Jun 18, 2024
-
-
Rob Swindell authored
-
Rob Swindell authored
Working on fileman.js, when moving files to another base, the output of unzip (trying to extra a FILE_ID.DIZ) was corrupting the display. We don't really want a DIZ file to get imported when moving files between bases anyway. So the second parameter to FileBase.add() can be either: - undefined: will try to extract/use DIZ only if there's no ext desc already - true: will try to extract/use a DIZ even if there's an ext desc already - false: will never try to extract/use a DIZ If the directory is not configured for DIZ support, then the DIZ extraction/use will never occur under any condition.
-
Rob Swindell authored
Cosmetic change only, output of 'smbutil s' command when used on a filebase. Increment the SMBUTIL version from 3.19 to 3.20
-
- Jun 10, 2024
-
-
Rob Swindell authored
I noticed these redundant properties were being logged for every logon in logon.jsonl. We don't need these properties separately enumerable, and really they shouldn't be used anyway. computer is an alias of host_name modem is an alias of connection
-
- Jun 09, 2024
-
-
Rob Swindell authored
Fixes cosmetic/readability issue when imported DIZ files that have line/word wrapped text and the space between words was being removed.
-
- Jun 04, 2024
-
-
Rob Swindell authored
Just for testing/experimenting with proper recording locking support. e.g. when one process or network node (on a LAN) has the SMB header locked, another process/node should not be able to lock it or reading the status header.
-
Rob Swindell authored
Now can include command-line specifiers.
-
- Jun 02, 2024
-
-
Rob Swindell authored
The exception is: DOS programs on Linux (e.g. Linux DOSEMU), due to the funky drive letter mappng, this can't be supported for those external programs. As requested by Fluid via IRC, for Frotz support, to store user-unique data files in data/user/####.something (e.g. "%juser/%4.zork").
-
- May 28, 2024
-
-
Rob Swindell authored
-
Rob Swindell authored
And warning about signed/unsigned compare
-
Rob Swindell authored
Meaning, it'll negotiate all Telnet options with the remote server (assuming not an RLogin server), so long as the TG_PASSTHRU option is *not* set. This allows more Telnet servers to work as expected, especially when the client (BBS user) is not using a Telnet client! Fix issue #432
-
- May 26, 2024
-
-
Rob Swindell authored
... for uifc/ciolib settings And make default video mode LCD 80x25
-
Rob Swindell authored
-