From 3eed8d802172a3488a6c4b6dc4de0601cd857207 Mon Sep 17 00:00:00 2001 From: special Date: Sun, 19 Aug 2007 05:00:12 +0000 Subject: Fixed a crash within the timeout for m_httpd sockets git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7740 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_httpd.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modules/m_httpd.cpp b/src/modules/m_httpd.cpp index af8eac920..f96182103 100644 --- a/src/modules/m_httpd.cpp +++ b/src/modules/m_httpd.cpp @@ -68,7 +68,8 @@ class HttpServerSocket : public InspSocket std::string http_version; unsigned int postsize; HttpServerTimeout* Timeout; - + friend class HttpServerTimeout; + public: HttpServerSocket(InspIRCd* SI, std::string host, int port, bool listening, unsigned long maxtime, FileReader* index_page) : InspSocket(SI, host, port, listening, maxtime), index(index_page), postsize(0) @@ -103,8 +104,7 @@ class HttpServerSocket : public InspSocket { if (InternalState == HTTP_LISTEN) { - HttpServerSocket* s = new HttpServerSocket(this->Instance, newsock, ip, index); - s = s; /* Stop GCC whining */ + new HttpServerSocket(this->Instance, newsock, ip, index); } return true; } @@ -343,6 +343,7 @@ void HttpServerTimeout::Tick(time_t TIME) { SE->DelFd(s); s->Close(); + s->Timeout = NULL; } class ModuleHttpServer : public Module -- cgit v1.2.3