summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules/extra/m_ssl_gnutls.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp
index 86e726189..63d3d1a2d 100644
--- a/src/modules/extra/m_ssl_gnutls.cpp
+++ b/src/modules/extra/m_ssl_gnutls.cpp
@@ -920,6 +920,19 @@ class ModuleSSLGnuTLS : public Module
void OnEvent(Event* ev)
{
GenericCapHandler(ev, "tls", "tls");
+ if (ev->GetEventID() == "cap_req")
+ {
+ /* GenericCapHandler() Extends("tls") a user if it does
+ * CAP REQ tls. Check if this was done.
+ */
+ CapData *data = (CapData *) ev->GetData();
+ if (data->user->Shrink("tls"))
+ {
+ data->user->io = this;
+ OnRawSocketAccept(data->user->GetFd(), data->user->GetIPString(),
+ data->user->GetPort());
+ }
+ }
}
void Prioritize()