]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/extra/m_ssl_gnutls.cpp
Add ConfigTag::getUInt for reading unsigned config values.
[user/henk/code/inspircd.git] / src / modules / extra / m_ssl_gnutls.cpp
index 2d278c967b8b03d3cf605567a424c5c112706125..51410cfb23423e21e2ee0a4c606b83e64ceaad59 100644 (file)
 #define GNUTLS_NEW_PRIO_API
 #endif
 
-#if (!INSPIRCD_GNUTLS_HAS_VERSION(2, 0, 0))
-typedef gnutls_certificate_credentials_t gnutls_certificate_credentials;
-typedef gnutls_dh_params_t gnutls_dh_params;
-#endif
-
 enum issl_status { ISSL_NONE, ISSL_HANDSHAKING, ISSL_HANDSHAKEN };
 
 #if INSPIRCD_GNUTLS_HAS_VERSION(2, 12, 0)
@@ -112,10 +107,10 @@ typedef gnutls_connection_end_t inspircd_gnutls_session_init_flags_t;
 
 static Module* thismod;
 
-class RandGen : public HandlerBase2<void, char*, size_t>
+class RandGen
 {
  public:
-       void Call(char* buffer, size_t len) CXX11_OVERRIDE
+       static void Call(char* buffer, size_t len)
        {
 #ifdef GNUTLS_HAS_RND
                gnutls_rnd(GNUTLS_RND_RANDOM, buffer, len);
@@ -655,7 +650,7 @@ namespace GnuTLS
                                , keystr(ReadFile(tag->getString("keyfile", "key.pem")))
                                , dh(DHParams::Import(ReadFile(tag->getString("dhfile", "dhparams.pem"))))
                                , priostr(GetPrioStr(profilename, tag))
-                               , mindh(tag->getInt("mindhbits", 1024))
+                               , mindh(tag->getUInt("mindhbits", 1024))
                                , hashstr(tag->getString("hash", "md5"))
                                , requestclientcert(tag->getBool("requestclientcert", true))
                        {
@@ -672,9 +667,9 @@ namespace GnuTLS
 
 #ifdef INSPIRCD_GNUTLS_HAS_CORK
                                // If cork support is available outrecsize represents the (rough) max amount of data we give GnuTLS while corked
-                               outrecsize = tag->getInt("outrecsize", 2048, 512);
+                               outrecsize = tag->getUInt("outrecsize", 2048, 512);
 #else
-                               outrecsize = tag->getInt("outrecsize", 2048, 512, 16384);
+                               outrecsize = tag->getUInt("outrecsize", 2048, 512, 16384);
 #endif
                        }
                };
@@ -1272,7 +1267,6 @@ class ModuleSSLGnuTLS : public Module
 
        // First member of the class, gets constructed first and destructed last
        GnuTLS::Init libinit;
-       RandGen randhandler;
        ProfileList profiles;
 
        void ReadProfiles()
@@ -1352,7 +1346,7 @@ class ModuleSSLGnuTLS : public Module
        {
                ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "GnuTLS lib version %s module was compiled for " GNUTLS_VERSION, gnutls_check_version(NULL));
                ReadProfiles();
-               ServerInstance->GenRandom = &randhandler;
+               ServerInstance->GenRandom = RandGen::Call;
        }
 
        void OnModuleRehash(User* user, const std::string &param) CXX11_OVERRIDE
@@ -1372,7 +1366,7 @@ class ModuleSSLGnuTLS : public Module
 
        ~ModuleSSLGnuTLS()
        {
-               ServerInstance->GenRandom = &ServerInstance->HandleGenRandom;
+               ServerInstance->GenRandom = &InspIRCd::DefaultGenRandom;
        }
 
        void OnCleanup(ExtensionItem::ExtensibleType type, Extensible* item) CXX11_OVERRIDE