Fix epoll dispatch dropping INotify events, ConsoleServer self-deadlock, and add TLS SNI support
- INotify/Thread epoll dispatch was silently dropping every live core::INotify event (an isKnownINotify registry fixes it) - this had broken mail delivery for over a week, masked by routine restarts. - TCPServer::lock self-deadlocked every admin-console connection via a plain std::mutex being re-entered; switched to recursive_mutex. - TLS.cpp/h: SNI-based certificate selection (addSNIContext), the groundwork for multi-tenant TLS (qualityiron.vegas alongside barant.com on one APIServer process). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d058322cc6
commit
1d3d30cd05
8 files changed
+222
-55
No files matched your search
@@ -7,10 +7,16 @@ namespace core {
|
||||
|
||||
INotify::INotify(EPoll &ePoll) : Socket(ePoll, "INotify") {
|
||||
setDescriptor(inotify_init());
|
||||
// See isKnownINotify()'s own doc comment - registers this object
|
||||
// as safe for Thread::run() to dispatch epoll events to directly.
|
||||
std::lock_guard<std::mutex> guard(knownINotifiesMutex());
|
||||
knownINotifies().insert(this);
|
||||
}
|
||||
|
||||
INotify::~INotify() {
|
||||
shutdown();
|
||||
std::lock_guard<std::mutex> guard(knownINotifiesMutex());
|
||||
knownINotifies().erase(this);
|
||||
}
|
||||
|
||||
int INotify::addWatch(coreutils::ZString &watch) {
|
||||
|
||||
Reference in new issue
Block a user