diff options
-rw-r--r-- | include/socket.h | 6 | ||||
-rw-r--r-- | src/listensocket.cpp | 10 | ||||
-rw-r--r-- | src/modules/m_httpd.cpp | 9 | ||||
-rw-r--r-- | src/modules/m_spanningtree/utils.cpp | 7 | ||||
-rw-r--r-- | src/modules/m_spanningtree/utils.h | 2 | ||||
-rw-r--r-- | src/threadengines/threadengine_win32.cpp | 7 |
6 files changed, 19 insertions, 22 deletions
diff --git a/include/socket.h b/include/socket.h index f7590c72d..a2b727499 100644 --- a/include/socket.h +++ b/include/socket.h @@ -184,16 +184,14 @@ class CoreExport ListenSocketBase : public EventHandler void AcceptInternal(); /** Called when a new connection has successfully been accepted on this listener. - * @param ipconnectedto The IP address the connection arrived on * @param fd The file descriptor of the new connection - * @param incomingip The IP from which the connection was made */ - virtual void OnAcceptReady(const std::string &ipconnectedto, int fd, const std::string &incomingip) = 0; + virtual void OnAcceptReady(int fd) = 0; }; class CoreExport ClientListenSocket : public ListenSocketBase { - virtual void OnAcceptReady(const std::string &ipconnectedto, int fd, const std::string &incomingip); + virtual void OnAcceptReady(int fd); public: ClientListenSocket(InspIRCd* Instance, int port, const std::string &addr) : ListenSocketBase(Instance, port, addr) { } }; diff --git a/src/listensocket.cpp b/src/listensocket.cpp index f40afd123..ed99c2787 100644 --- a/src/listensocket.cpp +++ b/src/listensocket.cpp @@ -125,15 +125,9 @@ void ListenSocketBase::AcceptInternal() } } - std::string server_addr; - std::string client_addr; - int dummy_port; - irc::sockets::satoap(&server, server_addr, dummy_port); - irc::sockets::satoap(&client, client_addr, dummy_port); - ServerInstance->SE->NonBlocking(incomingSockfd); ServerInstance->stats->statsAccept++; - this->OnAcceptReady(server_addr, incomingSockfd, client_addr); + this->OnAcceptReady(incomingSockfd); } void ListenSocketBase::HandleEvent(EventType e, int err) @@ -152,7 +146,7 @@ void ListenSocketBase::HandleEvent(EventType e, int err) } } -void ClientListenSocket::OnAcceptReady(const std::string &ipconnectedto, int nfd, const std::string &incomingip) +void ClientListenSocket::OnAcceptReady(int nfd) { ServerInstance->Users->AddUser(ServerInstance, nfd, false, &client, &server); } diff --git a/src/modules/m_httpd.cpp b/src/modules/m_httpd.cpp index c40f6055a..bdf4e424e 100644 --- a/src/modules/m_httpd.cpp +++ b/src/modules/m_httpd.cpp @@ -48,7 +48,7 @@ class HttpServerSocket : public BufferedSocket public: - HttpServerSocket(InspIRCd* SI, int newfd, char* ip, FileReader* ind) : BufferedSocket(SI, newfd, ip), index(ind), postsize(0) + HttpServerSocket(InspIRCd* SI, int newfd, const char* ip, FileReader* ind) : BufferedSocket(SI, newfd, ip), index(ind), postsize(0) { InternalState = HTTP_SERVE_WAIT_REQUEST; } @@ -353,9 +353,12 @@ class HttpListener : public ListenSocketBase this->index = idx; } - virtual void OnAcceptReady(const std::string &ipconnectedto, int nfd, const std::string &incomingip) + virtual void OnAcceptReady(int nfd) { - new HttpServerSocket(ServerInstance, nfd, (char *)incomingip.c_str(), index); // ugly cast courtesy of bufferedsocket + int port; + std::string incomingip; + irc::sockets::satoap(&client, incomingip, port); + new HttpServerSocket(ServerInstance, nfd, incomingip.c_str(), index); } }; diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp index 8a17baf84..ee12712b8 100644 --- a/src/modules/m_spanningtree/utils.cpp +++ b/src/modules/m_spanningtree/utils.cpp @@ -29,10 +29,13 @@ /* $ModDep: m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h */ /* Create server sockets off a listener. */ -void ServerSocketListener::OnAcceptReady(const std::string &ipconnectedto, int newsock, const std::string &incomingip) +void ServerSocketListener::OnAcceptReady(int newsock) { bool found = false; - char *ip = (char *)incomingip.c_str(); // XXX ugly cast + int port; + std::string incomingip; + irc::sockets::satoap(&client, incomingip, port); + char *ip = const_cast<char*>(incomingip.c_str()); found = (std::find(Utils->ValidIPs.begin(), Utils->ValidIPs.end(), ip) != Utils->ValidIPs.end()); if (!found) diff --git a/src/modules/m_spanningtree/utils.h b/src/modules/m_spanningtree/utils.h index a32b5a445..81c47267d 100644 --- a/src/modules/m_spanningtree/utils.h +++ b/src/modules/m_spanningtree/utils.h @@ -49,7 +49,7 @@ class ServerSocketListener : public ListenSocketBase this->Utils = u; } - virtual void OnAcceptReady(const std::string &ipconnectedto, int nfd, const std::string &incomingip); + virtual void OnAcceptReady(int nfd); }; typedef std::map<TreeServer*,TreeServer*> TreeServerList; diff --git a/src/threadengines/threadengine_win32.cpp b/src/threadengines/threadengine_win32.cpp index eb710bbde..361d25cc4 100644 --- a/src/threadengines/threadengine_win32.cpp +++ b/src/threadengines/threadengine_win32.cpp @@ -55,7 +55,7 @@ class ThreadSignalSocket : public BufferedSocket { SocketThread* parent; public: - ThreadSignalSocket(SocketThread* t, InspIRCd* SI, int newfd, char* ip) + ThreadSignalSocket(SocketThread* t, InspIRCd* SI, int newfd, const char* ip) : BufferedSocket(SI, newfd, ip), parent(t) { } @@ -86,11 +86,10 @@ class ThreadSignalListener : public ListenSocketBase } } - virtual void OnAcceptReady(const std::string &ipconnectedto, int nfd, const std::string &incomingip) + virtual void OnAcceptReady(int nfd) { - new ThreadSignalSocket(parent, ServerInstance, nfd, const_cast<char*>(ipconnectedto.c_str())); + new ThreadSignalSocket(parent, ServerInstance, nfd, ""); ServerInstance->SE->DelFd(this); - // XXX unsafe casts suck } /* Using getsockname and ntohs, we can determine which port number we were allocated */ int GetPort() |