Skip to content
Snippets Groups Projects
  1. Mar 04, 2023
  2. Feb 27, 2023
  3. Feb 19, 2023
  4. Feb 02, 2023
  5. Jan 30, 2023
    • Rob Swindell's avatar
      The 3rd great MQTT data scheme update (sorry Nelgin) · e94281e6
      Rob Swindell authored
      - Most published messages (besides log entries) have a timestamp (in ISO8601 format) prepended and tab-separated
      - The order and number of elements in client messages (list and activities) has been updated, now includes user number
      - Server client lists are now published to .../SERVER/client/list
      - Server client activities (connect, disconnect, update) are now published to .../SERVER/client/action/#
      - Server client count is now published to .../SERVER/client (with the maximum client count, if applicable)
      - Server states are now just represented by name (e.g. initializing, ready, stopping, stopped) and not number
      - BBS errors are logged to sbbs/BBS/action/error/LEVEL (where LEVEL is the log level name, e.g. "critical" or "error')
      - All server hack-attempts, SPAM attempts, logins, logouts, uploads, downloads, are published to sbbs/BBS/action/ACTION/*
      - Chat pages are published to sbbs/BBS/action/page/node/#
      - New users (on the terminal server) are published to sbbs/BBS/action/newuser
      - Posted messages and executed external programs (on the terminal server) are published to sbbs/BBS/action/ACTION/CODE topic
      - The event thread started/stopped status is published to .../SERVER/event
      
      Yeah, the wiki will get updated soon to reflect/document all these changes
      e94281e6
  6. Oct 21, 2022
  7. Oct 20, 2022
  8. Oct 18, 2022
    • Rob Swindell's avatar
      Full read/write support of new user.tab userbase file · 8a22b246
      Rob Swindell authored
      Also resolved some 32 vs 64-bit 'long' issues/ambiguities that have long-remained. :-)
      
      This commit also removes logon.lst file support.
      
      There's a TODO block remaining in js_user.c for setting portions of a user's birthdate (e.g. just the year or month or day).
      8a22b246
  9. Apr 14, 2022
    • Rob Swindell's avatar
      Add configurable log size limit and retention count · 549c79aa
      Rob Swindell authored
      For the following log files:
        hungup.log
        error.log
        crash.log
        hack.log
        spam.log
        guru.log
      
      ... they can be limited in size, in bytes, by the sysop, along with a maximum retention limit (number of *.#.log files). Configured in SCFG->System->Advanced.
      
      By default, the limit and keep numbers are 0, so "unlimited" (same behavior as before). Once sufficiently tested, I'll change the default in a stock main.cnf file to use a sensible limit (e.g. 10 log files of 10MB each, something like that).
      549c79aa
  10. Mar 24, 2022
    • Rob Swindell's avatar
      Support user credits and transfer stats > 4GB in total · 2d4ec7b8
      Rob Swindell authored
      Credits and daily free credits are accurate to the byte up to (a maximum) of 18446744073709551615 (that's 18 Exbibytes - 1).
      
      User's upload and download byte stats are now similarly extended in maximum range, but the accuracy is only "to the byte" for values less than 10,000,000,000. Beyond that value, the accuracy declines, but is generally pretty damn accurate (to 4 decimal places beyond the nearest multiple of a power of 1024), so I don't expect that to be an issue. This method of storing upload/download byte stats allowed me to use the same 10-character user record fields in the user.dat file.
      
      As a side-effect of this enhancements:
      * User and file credit values are now expressed in multiples of powers of 1024 (e.g. 4.0G rather than 4,294,967,296).
      * Free credits per day per security level has now been extended from 32 to 64-bits (to accommodate values >= 4GB).
      * adjustuserrec() now longer takes the record length since we can easily determine that automatically and don't need more "sources of truth" that can be out-of-sync (e.g. the U_CDT field length going from 10 to 20 chars with this change).
      * setting the stage for locale-dependent thousands-separators (e.g. space instead of comma) - currently still hard-coded to comma
      * more/better support for files > 4GB in size (e.g. in the batch download queue)
      * user_t ulong fields changed to either uint32_t or uint64_t - I didn't realize how many long/ulong's remained in the code (which are sometmies 32-bit, sometimes 64-bit) - ugh
      * Steve's ultoac() function renamed to u32toac() and created a C++ wrapper that still uses the old name, for homage
      2d4ec7b8
  11. Mar 02, 2022
  12. Dec 01, 2021
  13. May 14, 2021
    • Rob Swindell's avatar
      Fix-ups for the "continuous random tone" sysop chat pager · b03cb43f
      Rob Swindell authored
      I haven't played with this chat pager in *years*! The lowest tones were inaudible (raise the range from 0-800Hz to 400-1200Hz).
      Increase the msgabort() tone from 1 to 10ms, sounds like those computerized voice recognition phone systems now.
      
      Remove the redundant "<user> paged you to chat" notifications (and log message) when turning *off* the chat pager.
      b03cb43f
  14. Feb 22, 2021
  15. Feb 15, 2021
    • Rob Swindell's avatar
      Address more Coverity issues · 141e01bf
      Rob Swindell authored
      Reverted the SAFECOPY() NULL source-pointer magic "(null)" string thing as that caused a different Coverity issue. Explicitly check for NULL at the call-sites instead.
      141e01bf
    • Rob Swindell's avatar
      Address more Coverity issues · dd000f6e
      Rob Swindell authored
      Reverted the SAFECOPY() NULL source-pointer magic "(null)" string thing as that caused a different Coverity issue. Explicitly check for NULL at the call-sites instead.
      dd000f6e
  16. Jan 05, 2021
  17. Nov 25, 2020
  18. Nov 06, 2020
    • Rob Swindell's avatar
      Replace ctype.h function calls with new MSVC-safe XPDEV macros · ec20d959
      Rob Swindell authored
      I'm fed-up with MSVC assertions in ctype functions (e.g. isdigit, isprint, isspace, etc.) when called with out-of-range (e.g. negative) values.
      
      This problem only affects MSVC debug builds, but if you run them (like I do), these things are like little time bombs that can drive you crazy (knocking your board out of service).
      
      The new macros names are bit more descriptive as well.
      ec20d959
  19. Oct 04, 2020
    • Rob Swindell's avatar
      New functions to return a user's birthdate in multiple formats · 34c23c9a
      Rob Swindell authored
      e.g. MM/DD/YY for drop files that assume that format, or either MM/DD/YY or
      DD/MM/YY (depending on sysop preference) for backwards compatibility in
      expanded @-codes, Guru chat keyword.
      
      Fixed the birthdate check while logging on to work with new/all birthdate
      formats.
      34c23c9a
  20. Sep 19, 2020
  21. Sep 18, 2020
  22. Aug 16, 2020
  23. Aug 15, 2020
  24. May 14, 2020
    • rswindell's avatar
      No longer dynamically allocate compiled access requirment (AR) strings for configuration items. · 110cc8ac
      rswindell authored
      SCFG for Win32 is linked against a load_cfg lib that builds withOUT SCFG defined, so these compiled AR elements were allocated and then many SCFG operations (e.g. copy/paste, create new) would copy the allocated ARs to another configuration and then be subjected to double-free upon exit/clean-up (resulting in exception or crash).
      Just get rid of this cruft and some other related RAM-byte-saving hold-overs from the MS-DOS days.
      110cc8ac
  25. Apr 21, 2020
    • rswindell's avatar
      3 new configurable system loadable modules: · df3de69c
      rswindell authored
      - nodelist (default: "nodelist")
      - who's online (default: "nodelist -active")
      - private message (default: "privatemsg")
      
      This allows the nodelist and private message modules to be "installed" without
      over-riding global hot key events (SCFG->External Programs->Global Hot Key
      Events), allows the Baja functions NODELIST_ALL, NODELIST_USERS, and
      PRIVATE_MESSAGE and JS bbs.list_nodes(), bbs.whos_online(), and
      bbs.private_message() methods to use external modules (JS or Baja)
      automatically.
      
      The old C++ logic remains for these features if the module's are cleared (set
      to a blank string) in SCFG, but at some point, that code will likely be removed.
      df3de69c
  26. Aug 20, 2019
  27. Oct 26, 2018
  28. Oct 22, 2018
  29. Aug 03, 2018
  30. Jun 21, 2018
  31. Mar 17, 2018
  32. Feb 25, 2018
  33. Feb 20, 2018
Loading