- Feb 25, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
Remove the (now) unnecessary explicit initializations (e.g. to zero, blank, etc.) from the sbbs_t constructor.
-
Rob Swindell authored
Configured in SCFG->System->Loadable Modules: Scan Dirs: User scans one or more directories for (e.g. new) files List Files: User lists files within a file directory View File Info: User views detailed information on files in a directory This addresses/fixes feature request #521 for Nightfox Will need to document the mode argument bit values on the wiki, but it's the usual suspects: FL_* for scandirs and listfiles and FI_* for fileinfo. The scandirs_mod will be passed an extra bool (0/1) arg that indicates whether or not the user is scanning *all* directories. Test results would be welcome
-
- Feb 23, 2023
-
-
Rob Swindell authored
-
- Feb 22, 2023
-
-
Rob Swindell authored
from sysop input, automatically.
-
Rob Swindell authored
e.g. this a way to set the K_TRIM mode globally for all keyboard input
-
Rob Swindell authored
K_TRIM causes leading and trailing whitespace to be trimmed. K_NOSPACE disallows any whitespace characters to be added to the string. Previously, trailing whitespace was always trimmed. Now, only do that if/when K_TRIM is specified.
-
Rob Swindell authored
When sending an SMB message header via SMTP or POP3, some header fields (lines) could potentially be longer than 1024 and yet sockprintf() was limited to sending 1024 bytes (actually 1022 plus CRLF). This could result in some messages not being sent correctly: header field truncated, not CRLR-terminated, and notably resulting in MIME message contents not being decoded properly in a message viewer/reader. Example (Content-Type is part of the previous header field/line): x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?cm9T1Q9G65VC/lKTTqhODKhy5lHT2y6WWMb/WyvJ+EeGEwYmY7ILhzE3yfNM?= =?us-ascii?Q?KeFWN9T/PqHBya1plKf/sHgaw0iRmI7Hq+u9Dp4bG8OqdniKQlK+Aa27oXMd?= =?us-ascii?Q?Hly6OEYaSu7jbhGGY89LF0gyRVqquqxkaMfpKvG+h4cQnnu4Tl8YAKeE39a2?= =?us-ascii?Q?lHW3372ulmb9jvvZU72J2RtZYkuoIr+Wsqhfyuj39wTZ/+C4qKCsYrmTxrki?= =?us-ascii?Q?fBZ4gMPzWkrcWAr7zPcXBg8bphJJB8VJFUjQyksA3EG4dtH8+TZeEcNNBmHf?= =?us-ascii?Q?oCGnV9wHr9HszzrSkkZ2GGyh3QZLHAVDNe7wDXSy7HJttZugf9kNqKGeaYQL?= =?us-ascii?Q?TpljH1aHPe7MiSP9Dmp/xHQ/DWQOZDx5guNS+iMciMt5p5ad+SkQye0hWRhd?= =?us-ascii?Q?usHvpllclzIee6lxJ0VSPAzHGlAOhtOolrHdDB2ODjvkEzU7L2Fj2f5x7p9q?= =?us-ascii?Q?9d6sUgSz7vZVx8yyR3KPq3jIX0QUnl0xr2Mix9xcmMNcg0yFLPcznqBdLVa8?= =?us-ascii?Q?IC7j0+8oy4BjYxr8Z3elxMC2JKq13gPYgR95cwm6hMDiZbMB4EW/J1uJhD/I?= =?us-ascii?Q?RIIqTZ+Ywt8nKOfXj6/a9Aauf0wN71QKKA+in7KY9oksIhkUGvWOrtJwkVDL?= =?us-ascii?Q?Q2UFrBBJyQHJgumj5Y+bG8FDk/55IfyV9XYEcsdLL4bCF+HX4QPHZCw4P+li?= =?us-ascii?Q?bRvN+UxOO8hgXVkgB1q8mNJ62yQuaj0AContent-Type: multipart/alternative; boundary="_000_SN6PR07MB454477F4C32C66D48BA0B02187A09SN6PR07MB4544namp_" Solved by using asprintf() instead of snprintf() for dynamic string formatting and allocation in one go. Using realloc() to expand the buffer for the appended/required CRLF.
-
- Feb 21, 2023
-
-
Rob Swindell authored
Yes, finally, you can write a command shell in JS without needing a .bin "stub" Baja module to execute it. Fixes issue #504.
-
Rob Swindell authored
User list is more similar to logonlistl and nodelist is more similar to 'who's online'.
-
Rob Swindell authored
Also modifying the existing (sample) userlist.js to mimic the hard-coded sbbs_t::userlist() function (from str.cpp), suitable as a user list module. Also added sort-by-laston-date functionality to this module, thus fixing issue #518.
-
- Feb 20, 2023
-
-
Rob Swindell authored
Previously, many/most loadable modules were limited to just 8 chars, so while technically you could include a command-line option with a very short module name, now all modules can be configured with full (up to 63 char) command-lines.
-
Rob Swindell authored
-
Rob Swindell authored
using gcc version 12.2.0 (Debian 12.2.0-14), e.g. js_console.cpp: In function ‘JSBool js_handle_ctrlkey(JSContext*, uintN, jsval*)’: sbbs.h:230:56: warning: writing 8 bytes into a region of size 2 [-Wstringop-overflow=] 230 | (ret)[JSSTSpos]=(char)JSSTSstrval[JSSTSpos]; \ | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ In file included from sbbs.h:255: /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: destination object of size 2 allocated by ‘__builtin_alloca’ 77 | #define alloca(sz) __builtin_alloca(sz) | ~~~~~~~~~~~~~~~~^~~~ sbbs.h:228:43: note: in expansion of macro ‘alloca’ 228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \ | ^~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ sbbs.h:230:56: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 230 | (ret)[JSSTSpos]=(char)JSSTSstrval[JSSTSpos]; \ | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size 2 allocated by ‘__builtin_alloca’ 77 | #define alloca(sz) __builtin_alloca(sz) | ~~~~~~~~~~~~~~~~^~~~ sbbs.h:228:43: note: in expansion of macro ‘alloca’ 228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \ | ^~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size 2 allocated by ‘__builtin_alloca’ 77 | #define alloca(sz) __builtin_alloca(sz) | ~~~~~~~~~~~~~~~~^~~~ sbbs.h:228:43: note: in expansion of macro ‘alloca’ 228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \ | ^~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size [1, 2] allocated by ‘__builtin_alloca’ 77 | #define alloca(sz) __builtin_alloca(sz) | ~~~~~~~~~~~~~~~~^~~~ sbbs.h:228:43: note: in expansion of macro ‘alloca’ 228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \ | ^~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 670 | JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL); | ^~~~~~~~~~~~~~~~~~ sbbs.h:230:56: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] 230 | (ret)[JSSTSpos]=(char)JSSTSstrval[JSSTSpos]; \ | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~
-
Rob Swindell authored
Limited to 6 chars, yet some values are as long as 12 chars. Also, eliminates this warning from RELEASE builds (only) using gcc version 12.2.0 (Debian 12.2.0-14): js_uifc.c: In function ‘js_uifc_init’: sbbs.h:230:56: warning: writing 8 bytes into a region of size 7 [-Wstringop-overflow=] 230 | (ret)[JSSTSpos]=(char)JSSTSstrval[JSSTSpos]; \ | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_uifc.c:609:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 609 | JSVALUE_TO_ASTRING(cx, argv[1], mode, 7, NULL); | ^~~~~~~~~~~~~~~~~~ In file included from sbbs.h:255: /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:20: note: destination object of size 7 allocated by ‘__builtin_alloca’ 77 | #define alloca(sz) __builtin_alloca(sz) | ^~~~~~~~~~~~~~~~~~~~ sbbs.h:228:43: note: in expansion of macro ‘alloca’ 228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \ | ^~~~~~ sbbs.h:242:9: note: in expansion of macro ‘JSSTRING_TO_ASTRING’ 242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \ | ^~~~~~~~~~~~~~~~~~~ js_uifc.c:609:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’ 609 | JSVALUE_TO_ASTRING(cx, argv[1], mode, 7, NULL); | ^~~~~~~~~~~~~~~~~~
-
Rob Swindell authored
Missing part of yesterday's commit, whoops
-
Rob Swindell authored
Move the pack and unpack commands to an "Advanced" sub-menu since they are completely optional now. Set QWKhub 'VERT' to disabled by default in a new install. Fixes issue #506
-
Rob Swindell authored
warning: passing argument 1 of ‘ra’ discards ‘const’ qualifier from pointer target type
-
Rob Swindell authored
-
- Feb 19, 2023
-
-
Rob Swindell authored
More 'long int' purging.
-
Rob Swindell authored
If login by number is supported and a client attempts login with an invalid usernumber, don't log an error, e.g. mail 3264 SMTPS [46.148.x.x] !ERROR -2 getting data on user (6123) But rather treat it as an invalid login attempt. Also change lastuser() and total_users() to return int instead of uint. 2 billion users should be plenty.
-
Rob Swindell authored
Vestiges of MS-DOS and 16-bit ints and local keyboard access.
-
Rob Swindell authored
Make the wizard use the same width (76) as the help screen to help identify text wrapping issues. Looks a bit better too.
-
Rob Swindell authored
Fixes Borland and mingw-GCC builds.
-
Rob Swindell authored
Warning W8066 .\ini_file.c 416: Unreachable code in function iniRemoveKey
-
Rob Swindell authored
%lu -> %u (part of the great 'long int' purge)
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
[s]printf format fix-ups
-
Rob Swindell authored
Likely a part 4 coming next after building with GCC.
-
Rob Swindell authored
Be consistent with the other action/* topics.
-
Rob Swindell authored
The format string used did not insure there was any space between fields leading to very hard to parse stats, like this: User 2 SSH 12:25 12:39 14554 0 0 0 0 0 That's 554 msgs read in 14 minutes online, but well, you see what I'm say'n.
-
Rob Swindell authored
Mostly [s]printf format fixups
-
Rob Swindell authored
At one time, Synchronet was a 16-bit DOS project, plagued by the 16-bit [u]int, so long's were used everywhere > 16-bits were known to be needed/wanted (This is before the days of the standard sized types from stdint.h), and they've persisted. But '[u]long int' is 64-bits on *nix 64-bit builds, 32-bits everywhere else (even 64-bit Windows builds if/when we ever get around to that), so this could lead to insidious bugs that would only show up on one flavor or the other. Since [u]int is 32-bits on everything we currently support, we'll use that instead of [u]long. This "part 1" because I'm sure there's going to be warnings and errors from the GCC/Clang builds as a result, which I'll get to next.
-
Rob Swindell authored
-
Rob Swindell authored
modem init strings, alt file paths, PostLink name/number, node-specific command-lines, etc., many of these haven't been used since SBBS v2.
-
- Feb 18, 2023
-
-
Rob Swindell authored
With this commmit, the logic is now: If the NetMail destination is a point and there's no linked-node for it and the boss node for this point is not one of our AKAs then route to the boss node (no linked-node match needed) if the boss node matches a linked-node with a route configuration then route to that configured route destination (2-levels of routing and thus 2 "Routing NetMail" msgs will be logged in this scenario) If the NetMail destination is a point and there is a linked-node for it then the netmail will not be routed unless that linked node has a route configuration NetMail destined for non-points are treated the same as before this commit. No change in the routing of echomail for points. I think this change fixes issue #520 which can be traced back to commit 7bd42e56 for poindexter FORTRAN (REALITY), 2 years ago almost to the day, where that change added point->boss routing, but only if the boss had a matching linked-node configuration (for both echomail and netmail). This commit also re-thinks commit ffe69b43 (for Alterego) which would not route a point netmail if any our local AKAs matched the destination address, igorining the point value. I think what was intended here (I coudln't locate the original enhancmenet request or issue), was to not route if a local AKA was the *boss* of the point. And with this commit, that's now how it now works. As before, "test results appreciated".
-
Rob Swindell authored
No functional change.
-
Rob Swindell authored
-
Rob Swindell authored
-