- Jan 14, 2025
-
-
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.
-
- Jan 05, 2025
-
-
-
I don't know if these seek failures are actually happening or not, but reading from or writing to the wrong offset in the node.dab file could explain some of the node.dab corruption I'm seeing from macOS (over SMB share).
-
-
- Dec 08, 2024
-
-
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
-
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).
-
- Dec 07, 2024
-
-
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.
-
- Dec 02, 2024
-
-
Rob Swindell authored
-
Rob Swindell authored
Addresses Clang warnings about deprecation
-
- Dec 01, 2024
-
-
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.
-
- Oct 29, 2024
-
-
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.
-
- Sep 07, 2024
-
-
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"?).
-
- Feb 11, 2024
-
-
Rob Swindell authored
Make mqtt_putnodedat() use a 1-based node number, like the other putnodedat() functions. The bug (misuse of mqtt_putnodedat) was actually in js_system.c, but fixed the API to match the common expectation.
-
- Dec 29, 2023
-
-
Rob Swindell authored
e.g. User.downlaoded_file() will now publish to the appropriate MQTT topic and changes to system.node_list[] will get published to MQTT.
-
- Dec 14, 2023
-
-
Rob Swindell authored
Fixes issue #679
-
- Mar 03, 2023
-
-
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.
-
- Jan 05, 2023
-
-
Rob Swindell authored
-
- Jan 04, 2023
-
-
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.
-
Rob Swindell authored
Makes for a nice node listing with pure-text MQTT clients/tools
-
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.
-
- Jan 02, 2023
-
-
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.
-
- Dec 21, 2022
-
-
Rob Swindell authored
This is to avoid the error reporting/logging that results.
-
- Dec 12, 2022
-
-
Rob Swindell authored
-
Rob Swindell authored
Requires libmosquitto (e.g. install mosquitto-dev pkg) and set in ctrl/main.ini: [mqtt] Enabled=true broker_addr=127.0.0.1 broker_port=1883 qos=0 keepalive=10 Next up: Windows support
-
- Aug 16, 2020
-
-
Rob Swindell authored
-
- Jul 26, 2018
-
-
rswindell authored
already with a call to getnodedat()). When using the MSVC2017 CRTL, a lock() of a region that was previously locked is a blocking call causing major slowness in the MSVC2017 build. This just reverses the 1-line commit from 16 years ago in rev 1.10 of this file.
-
- Jul 24, 2018
-
-
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.
-
- Jan 10, 2016
-
-
deuce authored
lock across things with timeouts in them, but since if another thread has the file locked we shouldn't be fillding with it anyway, this should be fine. Fixes weird (and relatively rare) timing issues with node.dab accesses on a many core host.
-
- Aug 20, 2015
-
-
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.
-
- Nov 09, 2009
-
-
rswindell authored
-
- Sep 25, 2005
-
-
rswindell authored
-
- May 16, 2003
-
-
rswindell authored
(shared-write) files.
-
- Apr 09, 2003
-
-
rswindell authored
-
- Sep 17, 2002
-
-
rswindell authored
-
- Aug 22, 2002
-
-
rswindell authored
outside the sbbs_t class).
-
- Jun 18, 2002
-
-
rswindell authored
-
- May 02, 2002
-
-
rswindell authored
-
- Mar 17, 2002
- Oct 02, 2001
-
-
rswindell authored
-