]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/extra/m_ssl_gnutls.cpp
A few more I missed.
[user/henk/code/inspircd.git] / src / modules / extra / m_ssl_gnutls.cpp
index 5b119791588c140170b3c3822a5c63bf00b37f3f..c8cff3a21ef590f3b324d1ac63ecf330910b6719 100644 (file)
@@ -211,9 +211,11 @@ class ModuleSSLGnuTLS : public Module
                if((ret = gnutls_certificate_set_x509_crl_file (x509_cred, crlfile.c_str(), GNUTLS_X509_FMT_PEM)) < 0)
                        ServerInstance->Log(DEFAULT, "m_ssl_gnutls.so: Failed to set X.509 CRL file '%s': %s", crlfile.c_str(), gnutls_strerror(ret));
 
-               // Guessing on the return value of this, manual doesn't say :|
                if((ret = gnutls_certificate_set_x509_key_file (x509_cred, certfile.c_str(), keyfile.c_str(), GNUTLS_X509_FMT_PEM)) < 0)
-                       ServerInstance->Log(DEFAULT, "m_ssl_gnutls.so: Failed to set X.509 certificate and key files '%s' and '%s': %s", certfile.c_str(), keyfile.c_str(), gnutls_strerror(ret));
+               {
+                       // If this fails, no SSL port will work. At all. So, do the smart thing - throw a ModuleException
+                       throw ModuleException("Unable to load GnuTLS server certificate: " + std::string(gnutls_strerror(ret)));
+               }
 
                // This may be on a large (once a day or week) timer eventually.
                GenerateDHParams();
@@ -251,7 +253,7 @@ class ModuleSSLGnuTLS : public Module
                        {
                                // User is using SSL, they're a local user, and they're using one of *our* SSL ports.
                                // Potentially there could be multiple SSL modules loaded at once on different ports.
-                               ServerInstance->GlobalCulls.AddItem(user, "SSL module unloading");
+                               userrec::QuitUser(ServerInstance, user, "SSL module unloading");
                        }
                        if (user->GetExt("ssl_cert", dummy) && isin(user->GetPort(), listenports))
                        {