]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/extra/m_ssl_openssl.cpp
Fix extras compilation under Windows
[user/henk/code/inspircd.git] / src / modules / extra / m_ssl_openssl.cpp
index 7d46cf66a7d552fcfacf86fc5c7f9f2bce00658d..7cae1a3446dc799fe0f4573606a20aa2ddc73f36 100644 (file)
 #include "ssl.h"
 
 #ifdef WINDOWS
-#pragma comment(lib, "libeay32MTd")
-#pragma comment(lib, "ssleay32MTd")
-#undef MAX_DESCRIPTORS
-#define MAX_DESCRIPTORS 10000
+# pragma comment(lib, "libcrypto.lib")
+# pragma comment(lib, "libssl.lib")
+# pragma comment(lib, "user32.lib")
+# pragma comment(lib, "advapi32.lib")
+# pragma comment(lib, "libgcc.lib")
+# pragma comment(lib, "libmingwex.lib")
+# pragma comment(lib, "gdi32.lib")
+# undef MAX_DESCRIPTORS
+# define MAX_DESCRIPTORS 10000
 #endif
 
 /* $ModDesc: Provides SSL support for clients */
@@ -137,24 +142,27 @@ class ModuleSSLOpenSSL : public Module
 
        void OnRehash(User* user)
        {
-               ConfigReader Conf;
-
                sslports.clear();
 
-               for (size_t i = 0; i < ServerInstance->ports.size(); i++)
+               ConfigTag* Conf = ServerInstance->Config->ConfValue("openssl");
+               
+               if (Conf->getBool("showports", true))
                {
-                       ListenSocket* port = ServerInstance->ports[i];
-                       if (port->bind_tag->getString("ssl") != "openssl")
-                               continue;
-
-                       std::string portid = port->bind_desc;
-                       ServerInstance->Logs->Log("m_ssl_openssl", DEFAULT, "m_ssl_openssl.so: Enabling SSL for port %s", portid.c_str());
-                       if (port->bind_tag->getString("type", "clients") == "clients" && port->bind_addr != "127.0.0.1")
-                               sslports.append(portid).append(";");
-               }
+                       for (size_t i = 0; i < ServerInstance->ports.size(); i++)
+                       {
+                               ListenSocket* port = ServerInstance->ports[i];
+                               if (port->bind_tag->getString("ssl") != "openssl")
+                                       continue;
+
+                               std::string portid = port->bind_desc;
+                               ServerInstance->Logs->Log("m_ssl_openssl", DEFAULT, "m_ssl_openssl.so: Enabling SSL for port %s", portid.c_str());
+                               if (port->bind_tag->getString("type", "clients") == "clients" && port->bind_addr != "127.0.0.1")
+                                       sslports.append(portid).append(";");
+                       }
 
-               if (!sslports.empty())
-                       sslports.erase(sslports.end() - 1);
+                       if (!sslports.empty())
+                               sslports.erase(sslports.end() - 1);
+               }
        }
 
        void OnModuleRehash(User* user, const std::string &param)
@@ -242,8 +250,6 @@ class ModuleSSLOpenSSL : public Module
                {
                        if (sessions[user->eh.GetFd()].sess)
                        {
-                               SSLCertSubmission(user, this, ServerInstance->Modules->Find("m_sslinfo.so"), sessions[user->eh.GetFd()].cert);
-
                                if (!sessions[user->eh.GetFd()].cert->fingerprint.empty())
                                        user->WriteServ("NOTICE %s :*** You are connected using SSL fingerprint %s",
                                                user->nick.c_str(), sessions[user->eh.GetFd()].cert->fingerprint.c_str());
@@ -380,6 +386,8 @@ class ModuleSSLOpenSSL : public Module
                        if (ret > 0)
                        {
                                recvq.append(buffer, ret);
+                               if (session->data_to_write)
+                                       ServerInstance->SE->ChangeEventMask(user, FD_WANT_POLL_READ | FD_WANT_SINGLE_WRITE);
                                return 1;
                        }
                        else if (ret == 0)
@@ -469,7 +477,7 @@ class ModuleSSLOpenSSL : public Module
                                }
                                else if (err == SSL_ERROR_WANT_READ)
                                {
-                                       ServerInstance->SE->ChangeEventMask(user, FD_WANT_POLL_READ | FD_WANT_NO_WRITE);
+                                       ServerInstance->SE->ChangeEventMask(user, FD_WANT_POLL_READ);
                                        return 0;
                                }
                                else