+/* +------------------------------------+
+ * | Inspire Internet Relay Chat Daemon |
+ * +------------------------------------+
+ *
+ * InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
+ *
+ * This program is free but copyrighted software; see
+ * the file COPYING for details.
+ *
+ * ---------------------------------------------------
+ */
+
#include <string>
#include <vector>
-#include <openssl/transport.h>
+#include <openssl/ssl.h>
#include <openssl/err.h>
#include "inspircd_config.h"
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_CLIENT_ONCE, OnVerify);
// Needs the flag as it ignores a plain /rehash
- OnRehash("ssl");
+ OnRehash(NULL,"ssl");
}
- virtual void OnRehash(const std::string ¶m)
+ virtual void OnRehash(userrec* user, const std::string ¶m)
{
if (param != "ssl")
return;
if (ServerInstance->Config->AddIOHook(portno, this))
{
listenports.push_back(portno);
+ for (unsigned int i = 0; i < ServerInstance->stats->BoundPortCount; i++)
+ if (ServerInstance->Config->ports[i] == portno)
+ ServerInstance->Config->openSockfd[i]->SetDescription("ssl");
ServerInstance->Log(DEFAULT, "m_ssl_openssl.so: Enabling SSL for port %d", portno);
}
else
ServerInstance->Log(DEBUG, "m_ssl_openssl.so: Killed %d users for unload of OpenSSL SSL module", numusers);
for(unsigned int i = 0; i < listenports.size(); i++)
+ {
ServerInstance->Config->DelIOHook(listenports[i]);
+ for (unsigned int j = 0; j < ServerInstance->stats->BoundPortCount; j++)
+ if (ServerInstance->Config->ports[j] == listenports[i])
+ if (ServerInstance->Config->openSockfd[j])
+ ServerInstance->Config->openSockfd[j]->SetDescription("plaintext");
+ }
}
}
}
else if (strcmp("IS_HOOK", request->GetId()) == 0)
{
- ServerInstance->Log(DEBUG, "Hooking socket %08x", ISR->Sock);
- return ServerInstance->Config->AddIOHook((Module*)this, (InspSocket*)ISR->Sock) ? (char*)"OK" : NULL;
+ char* ret = "OK";
+ try
+ {
+ ret = ServerInstance->Config->AddIOHook((Module*)this, (InspSocket*)ISR->Sock) ? (char*)"OK" : NULL;
+ }
+ catch (ModuleException &e)
+ {
+ return NULL;
+ }
+
+ return ret;
}
else if (strcmp("IS_UNHOOK", request->GetId()) == 0)
{