X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fextra%2Fm_ssl_openssl.cpp;h=53c0ab8750b4102d57f0b14b4e09d85637bbd6b1;hb=3d6d9cda32d72ff25cf6e624bb271b629898e018;hp=0c7362e6e09fd268d1748929aba9af0b30530d52;hpb=79db1cf848c64ba50bebadef4c683ae4237080b7;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/extra/m_ssl_openssl.cpp b/src/modules/extra/m_ssl_openssl.cpp index 0c7362e6e..53c0ab875 100644 --- a/src/modules/extra/m_ssl_openssl.cpp +++ b/src/modules/extra/m_ssl_openssl.cpp @@ -101,7 +101,7 @@ static int OnVerify(int preverify_ok, X509_STORE_CTX *ctx) return 1; } -class OpenSSLIOHook : public IOHook +class OpenSSLIOHook : public SSLIOHook { private: bool Handshake(StreamSocket* user, issl_session* session) @@ -229,7 +229,7 @@ class OpenSSLIOHook : public IOHook bool use_sha; OpenSSLIOHook(Module* mod) - : IOHook(mod, "ssl/openssl") + : SSLIOHook(mod, "ssl/openssl") { sessions = new issl_session[ServerInstance->SE->GetMaxFds()]; } @@ -440,6 +440,13 @@ class OpenSSLIOHook : public IOHook return 0; } + ssl_cert* GetCertificate(StreamSocket* sock) CXX11_OVERRIDE + { + int fd = sock->GetFd(); + issl_session* session = &sessions[fd]; + return session->cert; + } + void TellCiphersAndFingerprint(LocalUser* user) { issl_session& s = sessions[user->eh.GetFd()]; @@ -653,18 +660,6 @@ class ModuleSSLOpenSSL : public Module { return Version("Provides SSL support for clients", VF_VENDOR); } - - void OnRequest(Request& request) CXX11_OVERRIDE - { - if (strcmp("GET_SSL_CERT", request.id) == 0) - { - SocketCertificateRequest& req = static_cast(request); - int fd = req.sock->GetFd(); - issl_session* session = &iohook.sessions[fd]; - - req.cert = session->cert; - } - } }; static int error_callback(const char *str, size_t len, void *u)