Skip to content
Snippets Groups Projects
  1. Feb 28, 2023
  2. Feb 27, 2023
    • Rob Swindell's avatar
      Update/use newuserdefaults() · 8d9183e9
      Rob Swindell authored
      Update newuserdefaults() to use the new sysop-configured Chat and QWK new user settings/values (commit 56b8fd86).
      
      Use newuserdefaults() in newuser.cpp and makeuser.c, eliminating a lot of copy/pasta.
      8d9183e9
    • Rob Swindell's avatar
      Make new user QWK-related and Chat-related settings configurable · 56b8fd86
      Rob Swindell authored
      Added chat-settings to SCFG->System->New User Values->Toggle Options
      Added new menu: SCFG->System->New User Values->QWK Packet Settings
      
      Moved SCFG->System->New User Values->Question Toggles to:
            SCFG->System->New User Prompts...
      
      This fixes issue #11
      56b8fd86
    • Rob Swindell's avatar
      Add configurable chat section module, defaults to "chat_sec" · 87bee5d8
      Rob Swindell authored
      This includes a new JS bbs method: bbs.chat_sec()
      
      And the old command shells written in Baja now call the PCMS
      chat_section function, as they used to, rather than hard-coding the
      name of the module to execute.
      87bee5d8
    • Rob Swindell's avatar
      Add optional/configurable feedback module · b0a85a1e
      Rob Swindell authored
      Most sysops didn't know it, but if exec/feedback.* existed, it would be
      executed just before any user sent an email to the sysop (user #1),
      excluding new user validation requests:
      - make this module name configurable and loadable from mods
      - support JS module here (exit(1) to abort the feedback)
      - invoke for email being sent to *any* sysop (not just user #1)
      - don't invoke the module when sending *from* a sysop account
      
      This fixes issue #16
      b0a85a1e
    • Rob Swindell's avatar
      019b259f
  3. Feb 26, 2023
  4. Feb 25, 2023
  5. Feb 23, 2023
  6. Feb 22, 2023
    • Rob Swindell's avatar
      Use the new UIFC input mode flags to trim spaces where inappropriate · f5e58c70
      Rob Swindell authored
      from sysop input, automatically.
      f5e58c70
    • Rob Swindell's avatar
      Add uifcapi_t.kmode that can be used to set global key-input mode flags · 640c1355
      Rob Swindell authored
      e.g. this a way to set the K_TRIM mode globally for all keyboard input
      640c1355
    • Rob Swindell's avatar
      Add input K_TRIM and K_NOSPACE mode flags · 5e0d2ef7
      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.
      5e0d2ef7
    • Rob Swindell's avatar
      Fix corrupted RFC822 msg headers when a header field was > 1024 chars · b77a0ba6
      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.
      b77a0ba6
  7. Feb 21, 2023
  8. Feb 20, 2023
    • Rob Swindell's avatar
      All loadable modules can now be configured as full command-lines · add79f03
      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.
      add79f03
    • Rob Swindell's avatar
      Fix warning about signed/unsigned compare · 3cca779f
      Rob Swindell authored
      3cca779f
    • Rob Swindell's avatar
      Fix (false pos?) warnings in use of JSVALUE_TO_ASTRING only in RELEASE builds · 90dc709d
      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)); \
            |         ^~~~~~~~~~~~~~~~~~~
      90dc709d
    • Rob Swindell's avatar
      Fix insufficient 'mode' string length in init() method · 440bc585
      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);
            |                 ^~~~~~~~~~~~~~~~~~
      440bc585
    • Rob Swindell's avatar
      Add an 'enabled' property for QWKnet hubs, defaults to true, part 2 · 51d4a1af
      Rob Swindell authored
      Missing part of yesterday's commit, whoops
      51d4a1af
    • Rob Swindell's avatar
      Add an 'enabled' property for QWKnet hubs, defaults to true · 4656c07c
      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
      4656c07c
    • Rob Swindell's avatar
      Resolve GCC warning · d20d7fd0
      Rob Swindell authored
      warning: passing argument 1 of ‘ra’ discards ‘const’ qualifier from
      pointer target type
      d20d7fd0
    • Rob Swindell's avatar
      7d7f6d48
  9. Feb 19, 2023
Loading