Skip to content
Snippets Groups Projects
  1. Nov 13, 2024
    • Rob Swindell's avatar
      Add a 'misc' field for System/Fixed Events allow disabling and "Native" · fd4bbce4
      Rob Swindell authored
      Configured in SCFG->External Programs->Fixed Events and the Node Daily Events
      configured in SCFG->Nodes, now can be disabled (without just clearing the
      command-line) and toggle-on "Native", so the program doesn't have to be added
      to the dreaded "Native Program List" in order to *not* be treated as a 16-bit
      DOS program (the default).
      
      Eventually I'll allow multiple of each time of system fixed event, but this
      is an improvement for now at least.
      fd4bbce4
  2. Mar 23, 2024
    • Rob Swindell's avatar
      Add/use sbbs_t::fremove() to remove files with logged error on failure · b8e2c852
      Rob Swindell authored
      This should resolve CID 487088: Unchecked return value from library
      as well as add some more instrumentation upon unexpected failures removing
      files.
      
      Consider: do some callers of this function need to know the success status
      (return bool)? That then starts to get into the some callers check and some
      don't situation (Coverity issue). For now, this is a void function.
      
      Also, all remove failures are logged as errors. Consider possibly passing
      a log level and calling lprintf() instead of errormsg(). errormsg() displays
      a notice to the user, which maybe we don't want.
      b8e2c852
  3. Mar 03, 2024
  4. Feb 27, 2024
    • Rob Swindell's avatar
      Don't send NodeLoggedOff msgs to other nodes if kicked before logon completed · 1bf6346b
      Rob Swindell authored
      Address this problem report:
      <nelgin> Right but I'm getting a lot of "logged off" without ever having a "logged on"
      <nelgin> Node 3: Keyop logged off 02/26/24 18:35:45
      <nelgin> Node 5: Keyop logged off 02/26/24 18:36:39
      <nelgin> There was never a login, so there can't be a logoff.
      <nelgin> That would break the time-warp continium.
      <nelgin> time-space whatever :)
      
      This could happen when non-G-exempt user was kicked before logon completed due
      to already being logged onto another node. This change should fix that.
      1bf6346b
  5. Jan 15, 2024
    • Rob Swindell's avatar
      Don't expand @-codes automatically for all node messages/telegrams saved · 839c3a31
      Rob Swindell authored
      This recent enhancement (Commit 61a3ab2d) introduced security and usability
      concerns.
      
      So I created (and am now using where requested) a wrapper for formatting
      text.dat/ini strings which will automaticlaly detect @-code encoded strings
      and expand/use them *only* (instead of printf %-specifiers).
      
      This might impact issue #696 since although unintentionally, it actually was
      possible to mix @-codes and %-specifier usage in certain (node status)
      text.dat/ini strings, but that should not be possible now. It's either/or:
      @-codes or %-specifiers, not both.
      839c3a31
  6. Jan 13, 2024
  7. Nov 22, 2023
  8. Jun 04, 2023
  9. Feb 19, 2023
  10. Feb 16, 2023
    • Rob Swindell's avatar
      Report correct upload/download Kbytes in data/logs/<date>.log files · 04e3bb9a
      Rob Swindell authored
      After the move to 64-bit upload/download byte counts, these integers are different width than 'long' on 32-bit builds (e.g. Windows), so these numbers were wrong on all but 64-bit *nix builds.
      
      The change here also uses the cool byte_estimate_to_str() function so that large byte totals are not expressed in 'K' but rather 'M', 'G', 'T' etc. suffixes.
      
      The formatting is otherwise consistent with the pre-existing log line format save for the use of an uppercase suffix now.
      
      Before:
      @- 02:19p  T: 12   R:  0   P:  0   E:  0   F:  0   U:  0k 0   D:420k 1
      After:
      @- 02:07p  T:  0   R:  0   P:  0   E:  0   F:  0   U:  0K 0   D:420K 1
      
      Before:
      @- 02:23p  T:  0   R:  0   P:  0   E:  0   F:  0   U:  0k 0   D:1359k 1
      After:
      @- 02:26p  T:  1   R:  0   P:  0   E:  0   F:  0   U:  0K 0   D:1.3M 1
      
      This fixes issue #519. I'm glad to hear that sysops still use these log files!
      04e3bb9a
  11. 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
  12. Oct 20, 2022
  13. 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
  14. Apr 25, 2022
  15. Apr 19, 2021
    • Rob Swindell's avatar
      Control sound-mute via semfile (ctrl/sound.muted) rather than sbbs.ini · df1fbd1e
      Rob Swindell authored
      There was a bug with reloading the configuration files in sbbsctrl where the sound button no longer reflected the truth and the sysop's previous click-state of the button was lost. Rather than going through writing the OPT_MUTE flag to the Options fields of all the sections of the sbbs.ini and then re-loading that file as a result, just do like we did with the sysop chat availability: use a semfile. So much simpler.
      
      If anyone ever needs instance-specific muting, we can create/check instance/host-specific mute semfiles then. Doubt that'll happen though.
      
      Also, removed the old sysavail control methods of ntsvcs too.
      df1fbd1e
  16. Apr 18, 2021
    • Rob Swindell's avatar
      Update sound (WAV) file play-on-event support in Windows build · b1d61c14
      Rob Swindell authored
      A "hack attempt" sound file is now supported in the Terminal Server, Mail Server,  and Services.
      
      "login" and "logoff" sound files are now supported in the Terminal Server, FTP Server, Web Server, Mail Server, and Services.
      This enhancement fixes Issue #157
      
      The following sound files may now be configured in the [Global] section of the ctrl/sbbs.ini file, if desired to set the default sound files for all servers/services in on place:
      - AnswerSound
      - LoginSound
      - LogoutSound
      - HangupSound
      - HackAttemptSound
      b1d61c14
  17. Apr 04, 2021
    • Rob Swindell's avatar
      A poll() failure with EINTR does not mean a socket is closed. · 925e3b0a
      Rob Swindell authored
      This won't impact Synchronet as it has a separate signal handling
      thread, but we still need to behave properly for processes that
      don't.  I'm also saying that ENOMEM does not indicate a disconnection,
      though it may be better to pretend it was disconnected...
      925e3b0a
  18. Dec 21, 2020
  19. Nov 05, 2020
  20. Aug 16, 2020
  21. May 05, 2019
  22. Oct 06, 2018
    • rswindell's avatar
      Don't call putmsgptrs() from logout() unless the SS_USERON sys_status flag · e63bf13b
      rswindell authored
      is set: this insures that uninitialized msg-scan ptrs/cfg won't be
      written to disk unless a successful logon()/getmsgptrs() was called first.
      This probably fixes the sighting that echicken reported where a failed
      SSH login caused his sub-scan config file (data/user/0001.subs) to contain
      uninitialized/garbage values.
      logout() could be called from multiple places (e.g. JS and Baja modules),
      even before a successful login is completed, so this sighting is not
      entirely impractical.
      e63bf13b
  23. Jul 25, 2018
    • rswindell's avatar
      sbbs_t::lputs() now handles the adding of the log message prefixes · 9e0fcab8
      rswindell authored
      ("Node X", user alias, etc.) - so removing a lot of the redundancies.
      Also, logging the current timed event code and other prefixes in the
      event thread log messages - something I've wanted for a while now.
      There might be some redundant "Node X" strings, so if you see some funny
      looking log message, please let me know.
      9e0fcab8
  24. Feb 20, 2018
  25. Nov 30, 2015
    • rswindell's avatar
      Introduce new node status (NODE_LOGOUT), which is used for the status of a node · 1d847ed3
      rswindell authored
      after a user (has been) disconnected and before the node transitions to waiting
      for connection (WFC) status. Usually the duration of this status is very short,
      but it can be longer (e.g. for running log-out module and event) and for (new)
      msg-scan pointer fix-ups.
      Updated logout() to remove some cruft and add some more log/debug output.
      Automatic new-scan pointer fix-ups when performing new-message scans (if the
      current pointer is greater than the last message number, set it to the last
      message number) and when saving message pointers.
      Passing user_t* to get/putmsgptrs() instead of message number now (to better
      detect Guest account).
      1d847ed3
  26. Nov 27, 2015
  27. Oct 19, 2011
  28. Mar 06, 2010
  29. Mar 20, 2009
  30. Jul 11, 2007
  31. Sep 20, 2005
  32. Feb 23, 2004
  33. May 22, 2003
  34. Feb 01, 2003
  35. Jan 31, 2003
  36. Nov 13, 2002
Loading