Skip to content
Snippets Groups Projects
  1. Sep 24, 2023
    • Rob Swindell's avatar
      Officially deprecate the ADDFILES and DELFILES utilities · 93804ef7
      Rob Swindell authored
      These were problematic (crash, could corrupt filebases) and unsupported,
      so just change the programs to stubs that alert the sysop that they need to
      switch to using the JS versions of these utilities immediately.
      93804ef7
    • Rob Swindell's avatar
      Don't pass all command-line arguments to child programs · 892e5caa
      Rob Swindell authored
      Only the common/UIFC-type arguments should be passed-on.
      
      This fixes issue #646
      
      It also appeared that the user editor spawning wouldn't work correctly
      when arguments were passed to umonitor (missing a space).
      892e5caa
    • Rob Swindell's avatar
      c386262e
    • Rob Swindell's avatar
      Include new text_id module in builds · 29b91ca8
      Rob Swindell authored
      29b91ca8
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      text.dat string IDs can now be used in/as @-codes, directly · 28522b71
      Rob Swindell authored
      The TEXT:<x> @-code can now be used with the text.dat string ID rather than
      the text.dat string number, if preferred.
      
      For convenience and brevity, ALL text.dat string IDs are now valid @-codes
      (case-sensitive). While this functionality is redundant with the TEXT: @-code
      now, if there are any conflicts between new/existing @-codes and text.dat
      string IDs, the TEXT: @-code can be used to overcome such conflicts.
      
      This should help with localization (to other languages) by using common
      single-word replacements (Which, Quit, Next, etc.) in text.dat strings.
      28522b71
    • Rob Swindell's avatar
      Add support for ctrl/text.ini, used for sysop-override of text.dat strings · ad2cee68
      Rob Swindell authored
      The syntax of text.ini is:
      <id>: "string"
      <id>: "string"
      
      Where <id> is the named identifier of a text.dat string as seen ctrl/text.dat
      and string is a literal string value (optionally, in double-quotes). Line
      continuations (for long strings) are not supported: you'll just need to put
      your string all on one long line (up to 1024 char string).
      C-escape characters for control chars and hex-encoded chars are supported.
      
      This should address feature request issue #644
      ad2cee68
    • Rob Swindell's avatar
      Hyphenate "sign-up" in log message · 31baaede
      Rob Swindell authored
      31baaede
    • Rob Swindell's avatar
      Close node socket after waiting one hour to go inactive to run exclusive event · 7a05291a
      Rob Swindell authored
      After 90 minutes of waiting, we'll do the same abort wait (and run the event
      anyway), but closing the node's socket should be enough to get the node_thread
      to terminate and set the node status back to NODE_WFC.
      
      Apparently some sysops like to leave their terminals idling (e.g. running MRC)
      and never disconnect and since they're T-exempt, the BBS won't limit their
      time online to allow events to run. Exclusive events will wait for all nodes
      to become inactive, but give up after 90 minutes of waiting and run the event
      anyway and set node status to WFC at the end. If the node was actually still
      connected/in-use, this could lead to the (new) critical error messages logged
      "!Node X status is WFC, but the node socket (N) and thread are still in use!"
      and other chaos (NODE STATUS FIXUP and the like).
      
      This should prevent all that by just abruptly disconnecting the node after
      waiting 60 minutes for the sysop to gracefully disconnect. The log message
      when this happens:
      "!TIRED of waiting for node N to become inactive (status=X), closing socket Y"
      7a05291a
    • Rob Swindell's avatar
      Clear line counter before starting the user settings/config menu. · acbe2074
      Rob Swindell authored
      Fixes unnecessary [Hit a key] prompt.
      acbe2074
    • Rob Swindell's avatar
      Add space after numeric value on second line of DOORFILE.SR · 7a48bf0a
      Rob Swindell authored
      This appears to work around a bug in BRE, FE, and TAL where they don't
      recognize the "1" (ANSI supported) unless there is at least one other
      character on the line following the decimal digit, resulting in the
      unnecessary prompting of the user:
        This game is much more enjoyable with ANSI graphics enabled.
        Do you want ANSI Graphics? (Y/n)
      
      As reported by "ben" in IRC.
      7a48bf0a
  2. Sep 23, 2023
  3. Sep 20, 2023
    • Rob Swindell's avatar
      Log a critical error message if a node is WFC, but its socket is still in use · 97e74166
      Rob Swindell authored
      This should avoid/work-around issue #630
      
      Nelgin's terminal server log indicated that the node's configuration was being
      reloaded for a new client connection (which doesn't normally/always happen,
      only when there's been a config file change or a node "rerun" requested),
      while there was still a user online using that node. This would explain the
      segfault (configuration fields being freed and reallocated).
      
      The node_socket[] array indicates when a node thread is actively servicing
      a client, so it should contain INVALID_SOCKET for the any node's that WFC.
      If it doesn't, that means something/someone changed the node's status value
      to 0 (WFC) in the node.dab file while the node was still in-use. Let's not
      crash in this case and rather just log the message and give the client the
      next available node (if any).
      97e74166
  4. Sep 18, 2023
    • Rob Swindell's avatar
      Add more detail (e.g. line number) to various "error opening" log msgs · c6f4a39c
      Rob Swindell authored
      Some of the errors could be pretty vague since they looked the same and
      we were depending on the path/file attempted to be opened in the log msg
      to clue us into what exactly was being attempted. But some of these file
      paths are sysop-configurable, and they can put unexpected things in there
      that make it difficult to determine exactly what file was trying to be
      opened and for what purpose. This should help a little bit.
      c6f4a39c
  5. Sep 17, 2023
  6. Sep 15, 2023
  7. Sep 14, 2023
  8. Sep 13, 2023
  9. Sep 12, 2023
    • Rob Swindell's avatar
      Allow JS 'user.editor' and '.shell' to be set for non-users (e.g. user #0) · c0370d3c
      Rob Swindell authored
      The request from Nightfox and Accession via DOVE-Net was to be able to set
      a user's external editor even if there's no user logged-in.
      
      These 2 user class properties in the JS object model were a bit special in
      that they *only* wrote to the user database and did not immediately modify
      the in-memory copy of the user_t structure, depending on the re-reading of
      the user.dat/tab file to re-populate the current user_t structure when needed.
      This didn't work if the current user is user #0 (no user).
      
      So, set the current user_t.xedit and user_t.shell accordingly whenever those
      JS properties are assigned a value (a string, the appropriate internal code).
      c0370d3c
  10. Sep 10, 2023
  11. Sep 09, 2023
  12. Sep 06, 2023
  13. Sep 01, 2023
    • Rob Swindell's avatar
      Don't use scope argument value to js.exec() if it's null · 82d1ed4f
      Rob Swindell authored
      Fixes issue #611
      82d1ed4f
    • Rob Swindell's avatar
      node utility can now display one/some/all key/values from node*/client.ini · 5531de7b
      Rob Swindell authored
      <nelgin> Remind me why you can't show the ip address on node status? :)
      
      Using the new '-v[key]' option, a sysop can view one, some, or all of the
      key/value pairs from the nodes with a connected client. For nodes without
      a connected client, the client.ini file values aren't particularly useful, but
      if someone wants an option to show those values for non-client-connected nodes
      I can do that too.
      
      When using '-v', all the client.ini key/value pairs will be displayed for all
      the node records requested with currently connected clients. By specifying
      '-v[key]' the sysop can specify a key to display (rather than all of them)
      e.g. 'node list -vaddr' to list nodes with remote client IP addresses.
      This option can be used multiple times on the command-line to view multiple
      keys. See node*/client.ini for the list of supported keys.
      
      This feature only works for nodes whose directory paths are ../node#/
      relative to the ctrl directory. Since the node utility doesn't read any
      configuration files, this is a limitation. If you have different node
      directory names/parents and need to use this feature, let me know and I'll
      see about adding support for reading/parsing main.ini file to discover those
      non-standard/default node directory paths automatically.
      
      The version number displayed is now taken from the sbbs version (sbbsdefs.h).
      The maximum ctrl directory path is now extended from 40 chars to MAX_PATH.
      More readable help/usage output (using indentation).
      5531de7b
  14. Aug 31, 2023
    • Rob Swindell's avatar
      Remove MQTT message publishing from mqtt_connect_callback() · b4aaddb8
      Rob Swindell authored
      A follow-up to commit 81d4575e
      
      Although I was not able to successfully reproduce the problem that Ree
      reported with his commit (even when changing the SCFG->Networks->MQTT->Publish
      QOS to 1: At least once) on Windows, I do see how this problem could
      theoretically happen. And like Ree said in the follow-up comment on the MR
      "maybe these two lines should have stayed in mqtt_startup", they don't really
      belong in the connection callback.
      
      The "client" topics only needs to be cleared upon startup or recycle (by
      publishing a null message) and it would be bad to clear these topics whenever
      the broker was reconnected (the server's clients didn't magically disconnect).
      So these "client" topic-clearing publishes are now only done during startup
      (again).
      
      The "recycle" topics don't really need to be published to here at all. I
      think I only did this for cases where someone published a non-null message to
      the topic and its stale message would remain afterward, appearing in MQTT
      browsers (like MQTT explorer) long after the server had recycled. The real
      solution to this cosmetic issue is to only publish null (0-length) messages to
      the "recycle" topics in the first place.
      b4aaddb8
    • Rob Swindell's avatar
      Fix "Error writing /path/to/sbbs.ini" when using '-f' option. · 4147775c
      Rob Swindell authored
      Wasn't opening the sbbs.ini file for modify access.
      
      As reported via DOVE-Net by Accession (PHARCYDE)
      4147775c
  15. Aug 20, 2023
  16. Aug 17, 2023
Loading