diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-01-06 15:35:05 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-01-06 15:35:05 +0000 |
commit | 8bde55fbd4a0061706c49726f8608d180ae36dec (patch) | |
tree | b415f778ba5426bc2cd30b2dbdeda28fc84558ef | |
parent | 5ab9ec7ecf0ff48dd345b5815ef678622f60a195 (diff) |
Fix crash when unloading ssl module on shutdown -- there are no port objects to set the description back to 'plaintext' on, here.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6230 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/inspircd.cpp | 4 | ||||
-rw-r--r-- | src/modules/extra/m_ssl_gnutls.cpp | 3 | ||||
-rw-r--r-- | src/modules/extra/m_ssl_openssl.cpp | 3 |
3 files changed, 8 insertions, 2 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 1509553ce..0bdffba64 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -80,8 +80,12 @@ void InspIRCd::Cleanup() int MyModCount = this->GetModuleCount(); for (unsigned int i = 0; i < stats->BoundPortCount; i++) + { /* This calls the constructor and closes the listening socket */ delete Config->openSockfd[i]; + Config->openSockfd[i] = NULL; + } + stats->BoundPortCount = 0; /* We do this more than once, so that any service providers get a * chance to be unhooked by the modules using them, but then get diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp index 9eec655f7..808c748cc 100644 --- a/src/modules/extra/m_ssl_gnutls.cpp +++ b/src/modules/extra/m_ssl_gnutls.cpp @@ -263,7 +263,8 @@ class ModuleSSLGnuTLS : public Module ServerInstance->Config->DelIOHook(listenports[i]); for (unsigned int j = 0; j < ServerInstance->stats->BoundPortCount; j++) if (ServerInstance->Config->ports[j] == listenports[i]) - ServerInstance->Config->openSockfd[j]->SetDescription("plaintext"); + if (ServerInstance->Config->openSockfd[j]) + ServerInstance->Config->openSockfd[j]->SetDescription("plaintext"); } } } diff --git a/src/modules/extra/m_ssl_openssl.cpp b/src/modules/extra/m_ssl_openssl.cpp index 7ad78e2ea..f46f04988 100644 --- a/src/modules/extra/m_ssl_openssl.cpp +++ b/src/modules/extra/m_ssl_openssl.cpp @@ -297,7 +297,8 @@ class ModuleSSLOpenSSL : public Module ServerInstance->Config->DelIOHook(listenports[i]); for (unsigned int j = 0; j < ServerInstance->stats->BoundPortCount; j++) if (ServerInstance->Config->ports[j] == listenports[i]) - ServerInstance->Config->openSockfd[j]->SetDescription("plaintext"); + if (ServerInstance->Config->openSockfd[j]) + ServerInstance->Config->openSockfd[j]->SetDescription("plaintext"); } } } |