- Dec 17, 2022
-
-
Rob Swindell authored
-
- Dec 14, 2022
-
-
Rob Swindell authored
-
- Dec 13, 2022
-
-
Rob Swindell authored
publish QOS still defaults to 0 (for now at least), while subscribe QOS defaults to 2.
-
Rob Swindell authored
And disable the mqtt log callback by default (it's very noisy)
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
Maybe help diagnose the disconnection/failure-to-reconnect issues I'm seeing.
-
Rob Swindell authored
-
Rob Swindell authored
Don't double-publish log messages when not in daemon-mode Publishing to <host>/recycle will recycle all servers. Log a successful broker connection upon startup.
-
- Dec 12, 2022
-
-
Rob Swindell authored
Default MQTT version is 5 Default username, password are block. Up to 255 chars each.
-
Rob Swindell authored
-
Rob Swindell authored
Currently, sbbs.exe only Includes non-Unix build fix in sbbscon.c for issue introduced in previous commit
-
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
-
- Dec 05, 2022
-
-
Rob Swindell authored
Needed a version of strListSplit() that doesn't treat consecutive delimiters (e.g. "\r\n\r\n") as a single delimiter: so introducing strListDivide(). Like strListSplit(), strListDivide() modifies the input string (replacing first occurrences of delimiter with NUL). Since we don't want "\r\n" to be counted as 2 lines, we need to just split/divide on '\n' and then truncate any line endings (i.e. '\r') chars off the ends of the split strings. Reported by phigan in #synchronet
-
Rob Swindell authored
Needed a version of strListSplit() that doesn't treat consecutive delimiters (e.g. "\r\n\r\n") as a single delimiter: so introducing strListDivide(). Like strListSplit(), strListDivide() modifies the input string (replacing first occurrences of delimiter with NUL). Since we don't want "\r\n" to be counted as 2 lines, we need to just split/divide on '\n' and then truncate any line endings (i.e. '\r') chars off the ends of the split strings. Reported by phigan in #synchronet
-
Rob Swindell authored
-
Rob Swindell authored
Replaces the status(), started() and terminated() callbacks, in this case. set_state() is called from a single thread (unlike status() was), so no mutex should be needed here. Don't do the cursor dance. We have multiple servers, so reflecting their state in the cursor is not really accurate. I'll clean-up the commented-out code after some more testing.
-
Rob Swindell authored
-
Rob Swindell authored
When the systemd dev package (e.g. libsystemd-dev) is installed, we can use sd_notify() to inform systemd of Synchronet server state/status. The state values (READY, STOPPING, RELOADING) are "well known" while the status value is a free-form text string (the last lputs output). Eliminated the free-form status() callback from *startup_t. Eliminated the now-redundant started() callback from *startup_t. Eliminated the use of sbbs_status.c/h as nothing is using that interface and while I do plan on using a remote control/monitor interface, I'm considering use of a standard pub/sub lib and protocol. This commit is going to break the Windows sbbsctrl build for sure. Probably break the sbbsNTsvcs build.
-
- Dec 03, 2022
-
-
Rob Swindell authored
New LINEDELAY and LINEDELAY:n @-codes Another way to pace the terminal output of long display (e.g. ANSI) files. LINEDELAY enables a 1/10th of a second delay before the sending of all LF chars. LINEDELAY:n sets the line_delay duration explicitly to a value in 1/100ths of a second units. So LINEDELAY and LINEDELAY:10 are equivalent. LINEDELAY:0 turns line-pacing off. The original line pacing value is always restored after a printfile/putmsg operation. New JS console.line_delay property (milliseconds) to control via JS. Setting this to a really high value would be bad. Some range enforcement should be added to this and many other console control values (TODO).
-
- Dec 02, 2022
-
-
Rob Swindell authored
This addresses issue #459 (Synchronet never allowed SSH-auth via real name) Also, localize the "valid real name" checking logic into a single new function: check_realname()
-
- Nov 30, 2022
-
-
Rob Swindell authored
No longer applying QWK filters to incoming netmail messages since we would need different criteria for netmail filtering (e.g. don't apply the twitlist.cfg). And I'm not clear that we actually need netmail filtering. Disable the importing of "remaining" VOTING.DAT sections (polls, votes) since this should no longer be necessary for backwards compatibility and appears to the source of errors like: qwk.cpp line 1141 (qwk_vote) writing "/sbbs/data/subs/sync_sys" access=-105 info=smb_addpollclosure thread_back field missing qwk_vote() takes a msg_filters argument, so we'd have to pass that to qwk_handle_remaining_votes() and frankly, it just shouldn't be needed any more, so disabling and logging a warning if there are any "remaining QWK voting.dat sections" after parsing QWK/REP packet (which consumes the sections from the parsed VOTING.DAT file).
-
- Nov 29, 2022
-
-
Rob Swindell authored
I just happened to notice qwknode* in sbbs.h and was like: what is that? Oh, it's a realloced array created when parsing QWK routes. When is it freed? Oh, never.
-
Rob Swindell authored
-
Rob Swindell authored
This bug was introduced in commit 9c91d32a 2 years ago and would result in votes and poll message being erroneously filtered. e.g. !Filtering QWK message from (null) due to age: 19321 days The filter criteria was either a zero-initialized msg or the previously parsed/imported msg from the QWK or REP packet. A solution for filtering vote/poll messages is needed, but this isn't it.
-
- Nov 28, 2022
-
-
Rob Swindell authored
This reverts commit 2cddddce. This change was "wrong-headed" per Deuce and broke JS sends on blocking sockets. Thanks for the help. This fix for inifinite-wait on send() likely led to the infinite BinkIT errors/log messages that led to commit b795cf6a. The real fix for this problem (which can block all other timed events from running), would be a Socket.poll() on the socket before send in binkp.js.
-
- Nov 27, 2022
-
-
Rob Swindell authored
command -> command_shell (reported by Nelgin) expire -> expiration_days
-
- Nov 22, 2022
-
-
Rob Swindell authored
More obvious (the change) when running with a bigger terminal.
-
Rob Swindell authored
-
- Nov 20, 2022
-
-
Rob Swindell authored
Faster as the sections have already been parsed.
-
Rob Swindell authored
js_open() sets the rval for the context (e.g. to JSVAL_TRUE), so we need to set it back to JSVAL_FALSE for failure conditions. Otherwise, the methods always return true even upon (save-msg) failure.
-
- Nov 19, 2022
-
-
Rob Swindell authored
If nodeX/node.cnf has the wrong node number, the [R] flag would be cleared from the wrong node upon automatic configuration reload. This likely fixes the issue that Keyop is reporting in #synchronet
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
This allows the sysop to configure the settings to be used for newly-created and auto-added directories without requiring any "template" directory to be configured. The "template" directory concept goes away (so in this way, File libs/dirs are now different from Message groups/subs in how bulk configuration is done). The Lib->Clone Options menu option was moved to Lib->Directory Defaults->Clone Settings and no longer uses the first sub or the template sub but rather the configured directory defaults to be cloned into all dirs in the lib. I decided to make the dir_defaults their own sections in file.ini rather than combining with all the other lib settings (and deconflicting key names such as "sort" and "settings"). This also allowed me to use the same cfg read/write functions for those directory settings and lib's directory default settings.
-
Rob Swindell authored
-
- Nov 17, 2022
-
-
Rob Swindell authored
The configured path could be absolute or relative (to the parent). The trailing (back)slash is important to the string comparisons.
-
Rob Swindell authored
Placing a colon in a group's or lib's short name would prevent any sub-boards within that group (or directories within that lib) to now be parsed since we were truncating at the first colon (rather than the last) after the section prefix.
-
Rob Swindell authored
An internal code is now longer than a group/lib short name!
-
Rob Swindell authored
Upload and Download ARS must be matched *and* the directory's upload and download ARS. Operator and Exemption ARS must be matched *or* the directory's operator and exemption ARS.
-