- Jan 20, 2024
-
-
Rob Swindell authored
-
Deucе authored
TLS clients don't (currently) add a certificate, so there's no need to delete it.
-
Deucе authored
Use cryptDestroySession() instead.
-
Deucе authored
-
Deucе authored
-
Deucе authored
With this, it's not strictly necessary to clear cert_list in ssl_sync() when the certificate changes, but it's still a good idea to prevent unusable memory from being held onto.
-
Rob Swindell authored
warning: value computed is not used
-
Deucе authored
Now each lock has an easily understandable purpose, and covers the lowest possible amount of code.
-
- Jan 19, 2024
-
-
Deucе authored
-
Rob Swindell authored
-
Rob Swindell authored
Use new rwlock for ssl certificate. See merge request !386
-
-
Deucе authored
Instead of tight loops with 1ms Sleep()s in them, add events for zero readers and zero writers that we can wait for instead. Unfortunately, since Events aren't interlocked with a critical section like condition variables are with mutexes in pthreads, we can't rely on this for race-free code, so for read locks, we still may spin under write pressure.
-
Deucе authored
-
Deucе authored
-
- Jan 18, 2024
-
-
Deucе authored
Various bits of broken no longer broken.
-
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.
-