summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-01-06 15:35:05 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-01-06 15:35:05 +0000
commit8bde55fbd4a0061706c49726f8608d180ae36dec (patch)
treeb415f778ba5426bc2cd30b2dbdeda28fc84558ef
parent5ab9ec7ecf0ff48dd345b5815ef678622f60a195 (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.cpp4
-rw-r--r--src/modules/extra/m_ssl_gnutls.cpp3
-rw-r--r--src/modules/extra/m_ssl_openssl.cpp3
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");
}
}
}