Skip to content
Snippets Groups Projects
  1. Oct 21, 2022
  2. Oct 20, 2022
  3. 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
  4. 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
  5. 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
  6. Mar 02, 2022
  7. Dec 01, 2021
  8. 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
  9. Feb 22, 2021
  10. 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
  11. Jan 05, 2021
  12. Nov 25, 2020
  13. 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
  14. 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
  15. Sep 19, 2020
  16. Sep 18, 2020
  17. Aug 16, 2020
  18. Aug 15, 2020
  19. 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
  20. 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
  21. Aug 20, 2019
  22. Oct 26, 2018
  23. Oct 22, 2018
  24. Aug 03, 2018
  25. Jun 21, 2018
  26. Mar 17, 2018
  27. Feb 25, 2018
  28. Feb 20, 2018
  29. Jan 07, 2018
  30. Dec 06, 2017
  31. Nov 24, 2017
  32. Nov 16, 2017
  33. Oct 12, 2017
  34. Oct 06, 2016
Loading