- Jan 18, 2024
-
-
Deucе authored
-
Deucе authored
Since we can't bool anyway, may as well.
-
Deucе authored
-
Deucе authored
It would be nice to use TLS for the recusrion counter, but on Windows, it looks like TLS in threads created after the object is created is uninitialized, so we would need some kind of thread start hook thingie which just seems like too much work. Instead, rely on the old standby single-linked list to track.
-
Deucе authored
It looks like Windows actually uses the name for matching existing events, so if two events have the same name, they end up being the same object.
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
-
Deucе authored
Recursive read locks, non-recursive write locks.
-
Deucе authored
Currently the "wrapper" is just the POSIX API. We may not need the pthread_rwlock_timed??lock() functions, and even if we do, we like want a different wrapper that takes a ms timeout instead of an absolute time.
-
Deucе authored
On Win32, the name param is an LPCSTR which apparently is Microsoft talk for const char *. In C we're allowed to do whatever we want, but in C++, this matters more.
-
Deucе authored
Just running git commit --amend doesn't do -a it seems. :)
-
Deucе authored
This should fix a long-standing issue where someone could connect to the SSH port and do nothing, which would prevent other incoming terminal sessions from being accepted until it times out. Unfortunately, this means that Synchronet can't send any data until authentication is completed, which means useful messages about why you're being disconnected (ie: "Sorry, all terminal nodes are in use or otherwise unavailable.") as well as usless information nobody ever cares about (ie: The IP you're connecting from, that it is resolving your hostname, etc). can no longer be sent to the user.
-
- Jan 17, 2024
-
-
Rob Swindell authored
-
- Jan 16, 2024
-
-
Rob Swindell authored
Reported by Max (WESTLINE)... Introduced in commit 75c5c9e5, since we are now calling the set_state() callback periodically, and in sbbsctrl, it sets/resets the pause button checked (depressed) state in response to this callback (should it?), this was resetting the pause button checked/depressed state peridically (at the configured sem file check interval, default 2 seconds). The fix: if the new server state is the same as the previously set server state, don't call the set_state() callback. I considered this as a potential optimization when I first wrote that commit, but didn't see any obvious downside to calling the set_state() callback redundantly. Now that I see a downside, let's implement this saving/checking of the state to avoid redundant "set" calls.
-
Rob Swindell authored
... with a socket descriptor value of -1.
-
Rob Swindell authored
The 5th character must be a digit. Prevent future stupidity such as happened with recently added and then fixed NODE_USER @-code.
-
- Jan 15, 2024
-
-
Rob Swindell authored
Since "NODE*" is a match for a node number status (ugh), and this comparison happened before the comparison for "NODE_USER", we'd never hit that condition. Thought I tested this before original commit, but I guess I did not. Oops.
-
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.
-
- Jan 13, 2024
-
-
Rob Swindell authored
Needed for exactly reproducing built-in node status string formatting using @-codes (only).
-
Rob Swindell authored
Note: format specifiers (e.g. %s) cannot be combined with @-codes (use one or the other, not both). Fixes issue #696 If you need additional text strings to support @-codes, you'll have to specify them explicitly in feature request issues.
-
Rob Swindell authored
We have checks/loops/timeouts waiting for active clients to disconnect and child thread threads to terminate whenever shutting down or recycling already, so this should be safe. This pretty simple change fixes issue #236 (can't terminate server under heavy load). Also as part of this commit, introduced the ability to "pause" a server (prevent it from accepting new connections) with the ctrl/pause semaphore file or via the MQTT server/pause (and resume) topics. This feature is useful when debugging server issues where you don't necessarily want to fully shutdown/terminate the server, but don't want any new connections to be accepted (the listen backlog will fill up with incoming connections though). Unlike a server shutdown, a server pause can be "undone" via MQTT (by publishing a message to the "resume" topic). The "pause" semaphore file is just an "existence" semaphore file - its date/time stamp doesn't matter. If the file exists, the server will enter a paused state (and periodically log messages to that fact) until the semfile is deleted. This server pause feature is not the same as the pause button function in sbbsctrl, which just pauses server log output.
-
- Jan 11, 2024
-
-
Rob Swindell authored
In this case, we don't care what the time stamp on the file is.
-
Rob Swindell authored
that doesn't log an error
-
- Jan 10, 2024
-
-
Rob Swindell authored
Support was accidentally removed as part of commit 22e8d2e3, meaning the ftpalias.cfg wasn't used at all in responses to the MLSx commands as reported by Max (WESTLINE) using Total Commander, FileZilla and Directory opus. The traditional "LIST" commands still worked fine with ftpalias.cfg contents just fine. The reason this code was accidentally removed was due to the errant copy/pasted comparison with startup->html_index_file that did not belong here and made the block appear related to HTML index file generation. It was not. This was just a bug in the initial implementation of MLSx support in commit d4deb4b3. Also included in this commit: - Return the date/size of the user's QWK packet file, if it exists, in MLSx response. - send_mlsx_entry() won't report negative time_t values as file modify dates (flength returns -1 upon failure/file-not-found). - get_owner_name() returns the string, making it easier to use in function calls. There appears to still be some work to do to make the MLSx commands fully compliant with RFC 3659 (e.g. "mlst filename" from ftpalias.cfg should work but does not), but at least FileZilla displays ftpalias.cfg files and directories correctly now.
-
- Jan 09, 2024
-
-
Rob Swindell authored
-
Rob Swindell authored
Reusing the variable 'str' here for multiple purposes meant the QWK packet filename was overwritten by the owner name (the system's BBS-ID): ftp> mlsd 229 Entering Extended Passive Mode (|||2001|) 150 Opening ASCII mode data connection for MLSD. Type=file;Perm=r;UNIX.ownername=VERT; 00index Type=cdir;Perm=elc;UNIX.ownername=VERT; / Type=file;Perm=r;UNIX.ownername=VERT; VERT That last file there should have been "VERT.qwk"
-
Deucе authored
Since lock_ssl_cert() is a reader lock, there shouldn't be a whole lot of contention on aquiring it anyway, and we can thundering herd our way out of it when it clears.
-
Deucе authored
without locking! That's chaos!
-
Rob Swindell authored
DDMR fix for indexed mode reading (not newscan): Showing the first unread message when selecting a sub-board, updating scan pointer, and selecting the next sub-board when done with the current sub-board See merge request !385
-
DDMR fix for indexed mode reading (not newscan): Showing the first unread message when selecting a sub-board, updating scan pointer, and selecting the next sub-board when done with the current sub-board
-
- Jan 08, 2024
-
-
Rob Swindell authored
This ancient bit of was re-writing node.ini files needlessly
-