Skip to content
Snippets Groups Projects
  1. Jan 14, 2025
    • Rob Swindell's avatar
      First pass run of uncrustify (code beautification) · 45c8fa94
      Rob Swindell authored
      White-space changes only, exception being the rare insertion of NL before
      closing brace (couldn't find the option to disable that behavior).
      
      I excluded some header files (e.g. sbbs.h) since uncrustify seemed to be doing
      more harm than good there. I might just end up applying different set of rules
      to .h files.
      45c8fa94
  2. Jan 05, 2025
  3. Dec 08, 2024
    • Rob Swindell's avatar
      Fix use of unitialize variable · 801010bf
      Rob Swindell authored
      Since we we're not using opennodeext(), we don't have the path/fname for
      any failure error message here.
      
      CID 515714
      801010bf
    • Rob Swindell's avatar
      Overhaul how custom Node actions and status strings are handled · d116f362
      Rob Swindell authored
      Custom NodeStatus and NodeAction/Activity strings are now displayed pretty
      much everywhere possible (except the node utility, since it doesn't read
      any configuration files). This fixes issue #618, finally.
      
      If you have custom (non-blank) NodeAction* strings in your text.dat/text.ini
      file, or you change these strings during runtime (e.g. using bbs.replace_text)
      this will impact you:
      - do not include the user name or any other fields normally included in
        printed node status in your string - just the customized node action and
        really, you should only use/override these strings for dynamically changing
        node status (i.e. you're using NodeActionCustom and you're setting different
        custom strings depending on current node activity). Consider using the new
        NodeActivity* text.dat strings instead if your customized string doesn't
        change during run-time.
      - don't use the %s/%u/%d specifiers any more - use @-codes instead, if needed
      
      If you want static/permanent node action strings, set new new NodeActivity*
      strings in your text.dat or (preferrbaly) text.ini file instead.
      This means the node actions can now be localized for other languagues!
      
      I'm still using the node.exb file (I did consider alternatives, e.g.
      node.ini or node*/activity.asc), but decided to postpone such a change.
      The node.exb file is still used, but the strings represent just the custom
      (extended) node *activity* and not the entire node status string.
      
      Use of Ctrl-A codes needs to be considered/accounted-for (currently isn't).
      d116f362
  4. Dec 07, 2024
    • Rob Swindell's avatar
      More nodefile_mutex fixes · b6062fa3
      Rob Swindell authored
      Need to unlock the mutex before calling errormsg().
      
      Need unlock the mutex in error path of unlocknodedat().
      
      I'm not clear why this would, but it might resolve CID 515601 which looks
      like false positive to me: getnmsg()->putnodedat() should never leave
      nodefile_mutex locked.
      b6062fa3
  5. Dec 02, 2024
  6. Dec 01, 2024
    • Rob Swindell's avatar
      Simplify the getnode.cpp API - use bool returns, default paramaeter value · 62ed3d3a
      Rob Swindell authored
      getnodedat() now performs a non-locked read by default.
      
      Perform more checks of getnodedat() return value before calling putnodedat()
      to avoid unintentionally zeroing out node.dab records.
      
      Add/use unlocknodedat() method for unlocking a node.dab record without
      writing.
      
      Note: The userdat.c getnodedat() and putnodedat() still return int (i.e. 0 on
      success), so that can be confusing.
      62ed3d3a
  7. Oct 29, 2024
    • Rob Swindell's avatar
      Add option to display short dates in verbal/unambiguous formats · a893b66f
      Rob Swindell authored
      Although we've added (in SBBS v3.20) configurable numeric date input/display
      formats for the system, the output was still ambiguous for users (e.g.
      NN/NN/NN which could be interpretted a number of ways), so I've added an option
      to choose "verbal" short date formats to be displayed where possible instead.
      The same value separate from the numeric format (whatever the sysop chose) is
      used in the verbal date output, but since month name abbreviations are 3
      characters, only one separator is used (to keep the output length fixed at 8
      characters).
      
      The new "Verbal" short date display format is choosable in the SCFG wizard and
      via SCFG->System->Short Date Format.
      a893b66f
  8. Sep 07, 2024
    • Rob Swindell's avatar
      Don't attempt to publish MQTT messages unless/until connected to broker · 9b6138f2
      Rob Swindell authored
      For cases where an mqtt struct is shared between threads without concurrency
      control. I'm making this improvement in light of research into issue #781,
      though I don't expect this change to fix the reported issue.
      
      The reported error seems to come from the event thread (publishing node
      status upon starting to run the "DAILY" event) when a broker connection was
      not successful, however the reporter (Nelgin) may not have had debug-level
      logging turned on, so didn't capture the successful broker-connect log
      message. I think the broker connection *was* successful and perhaps then
      terminated by the broker ("due to protocol error"?).
      9b6138f2
  9. Feb 11, 2024
  10. Dec 29, 2023
  11. Dec 14, 2023
  12. Mar 03, 2023
    • Rob Swindell's avatar
      Create sbbs_t::putnode_downloading() · 71ed7426
      Rob Swindell authored
      Migrated from sbbs_t::start_batch_download(), this just calculates the ETA (of transfer completion) and writes to the node's aux field in the proper format.
      71ed7426
  13. Jan 05, 2023
  14. Jan 04, 2023
    • Rob Swindell's avatar
      Publish some topics directly to topic levels · 066d6a8d
      Rob Swindell authored
      <server>/state is now published directly to the <sever> topic level (the "state" topic goes away).
      
      Moved <bbs-id>/node# topics to <bbs-id>/nodes/# (allows better wild-card subscription per MQTT standards).
      Publishing total node count to <bbs-id>/nodes rather than <bbs-id>/node_count
      
      Introduced "publish verbosity" control (defaults to "High") - if you want nice human readable (and sometimes redundant) topic messages, leave this set to "High". To reduce traffic, set to "Low". It's expected that purpose-built Synchronet/MQTT clients should work equally-well with either setting, but when using generic MQTT clients/browser, "high" verbosity is nice. The human-readable node status is only published when "high" verbosity is enabled.
      
      Publishing the BBS name to the <bbs-id> topic, the instance hostname (as configured in sbbs.ini) to the <host> topic. Makes the hierarchy much more clear when using an MQTT browser like MQTT Explorer.
      066d6a8d
    • Rob Swindell's avatar
      Publish human readable nodestatus to node# mqtt topic · 0b1c228e
      Rob Swindell authored
      Makes for a nice node listing with pure-text MQTT clients/tools
      0b1c228e
    • Rob Swindell's avatar
      Over-overhaul of MQTT support · 916fdacb
      Rob Swindell authored
      Each Synchronet server is now its own MQTT client. This means there's no
      longer any MQTT logic in the Synchronet "hosts" (e.g. sbbscon.c, ctrl/*.cpp)
      and none needed for SBBS NT services (they'll "just work" with MQTT).
      
      This also means that just about everything (except for nodes, spam and hack)
      is now published per-server (in the sbbs/BBS-ID/hostname/server/ topic branch)
      and if you want aggregated totals or client lists, you'll have to do that in
      your own MQTT client or dashboard.
      
      I also removed the publishing of thread_count and socket_count topics as
      they weren't universally supported across all servers and are of questionable
      value. They can be added back later if determined to be useful.
      916fdacb
  15. Jan 02, 2023
    • Rob Swindell's avatar
      Second part of MQTT overhaul · d1c07811
      Rob Swindell authored
      Now support subscriptions (e.g. recycle topics, node input topics) in SBBSCTRL.
      This required a lot of search/replace and fun with circular struct pointers.
      d1c07811
  16. Dec 21, 2022
  17. Dec 12, 2022
  18. Aug 16, 2020
  19. Jul 26, 2018
  20. Jul 24, 2018
    • rswindell's avatar
      The great Copyright year update and (mostly) removal of 2018: · f869ad3d
      rswindell authored
      Most of the copyright years in the source code were misleading (the date of
      most recent publish was actually later) and all were unnecessary. I've been
      removing copyright years piecemeal, for a long time, but I decided it was time
      to just perform a bulk search and (mostly) replace. In some cases, I left
      old copyright years on files that either are not used (and soon to be removed)
      or obsolete and unlikely to ever be touched again (e.g. Win9x FOSSIL VXD). Some
      of the runtime binaries still contain copyright years and those were updated to
      2018.
      f869ad3d
  21. Jan 10, 2016
  22. Aug 20, 2015
    • deuce's avatar
      Update to 3.17a · dbbfabf1
      deuce authored
      New Features:
      - Multiple bindings for each service
        Use comma-separated interfaces on Interface= lines in the ini file.
        Default is now "0.0.0.0,::"
      - IPv6 support
      - TLS support for the webserver and (non-static) services
        New TLS option in services.ini (ie: Options=TLS)
      - Decrease LEN_SCAN_CMD to 35 chars, increase the CID field to 45 chars,
        and rename the MAIL_CMD string to IPADDR.  I think this frees up the
        note field for SysOp use.
      dbbfabf1
  23. Nov 09, 2009
  24. Sep 25, 2005
  25. May 16, 2003
  26. Apr 09, 2003
  27. Sep 17, 2002
  28. Aug 22, 2002
  29. Jun 18, 2002
  30. May 02, 2002
  31. Mar 17, 2002
  32. Oct 02, 2001
Loading