- Feb 22, 2023
-
-
Rob Swindell authored
The details (dates, author, revision numbers) are often stale and misleading, so start removing them. Where the Revision tag was used for a version/revision, just bump it by one and use a string constant instead (Git doesn't provide any similar facility for auto-incrementing revision numbers). More remains. Perhaps a commit hook to alert me when committing that I should clean up as I go rather than try to do this in bulk. <shrug>
-
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
-
-
echicken authored
-
echicken authored
-
echicken authored
This allows for greater flexibility with the options, and the possibility of querying your own (or some other) wttr server.
-
echicken authored
-
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
Include some other new key values (migrated from node.ini)
-
Rob Swindell authored
DDMsgReader: Updated the readme for installation as a loadable module for Synchronet 3.20+ as of 2023-02-20 See merge request !257
-
Eric Oulashin authored
DDMsgReader: Updated the readme for installation as a loadable module for Synchronet 3.20+ as of 2023-02-20
-
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
And other potential occurrences of this when not in a channel
-
Rob Swindell authored
Be consistent with the other action/* topics.
-
Rob Swindell authored
-
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.
-