]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/extra/m_ssl_openssl.cpp
Add interface to SSL modules that allows other modules to obtain the raw SSL session...
[user/henk/code/inspircd.git] / src / modules / extra / m_ssl_openssl.cpp
index 27cd3a2aeabdd92c1b56b63ed213dcb51f65be95..9ca92fe52e9054eb648fe598d67e307c8cacbf9a 100644 (file)
@@ -392,6 +392,12 @@ class ModuleSSLOpenSSL : public Module
 
                        req.cert = session->cert;
                }
+               else if (!strcmp("GET_RAW_SSL_SESSION", request.id))
+               {
+                       SSLRawSessionRequest& req = static_cast<SSLRawSessionRequest&>(request);
+                       if ((req.fd >= 0) && (req.fd < ServerInstance->SE->GetMaxFds()))
+                               req.data = reinterpret_cast<void*>(sessions[req.fd].sess);
+               }
        }
 
        void OnStreamSocketAccept(StreamSocket* user, irc::sockets::sockaddrs* client, irc::sockets::sockaddrs* server)