From ab46b96db4d457e6a4f2e978c38b79762cdeb9d5 Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 9 Aug 2006 14:53:19 +0000 Subject: Move socket_ref and module_sockets vectors/arrays into InspIRCd*. These are public members, which InspSocket can modify. (eventually, this will be marshalled safely through some accessors). When constructing an InspSocket you must now provide an InspIRCd* instance to 'attach' the socket to. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4812 e03df62e-2008-0410-955e-edbf42e46eb7 --- include/inspircd.h | 2 ++ include/inspsocket.h | 8 +++++--- include/userprocess.h | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/inspircd.h b/include/inspircd.h index 91d57f75d..54500cd4d 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -104,6 +104,8 @@ class InspIRCd : public classbase SocketEngine* SE; serverstats* stats; ServerConfig* Config; + std::vector module_sockets; + InspSocket* socket_ref[MAX_DESCRIPTORS]; DNS* Res; std::string GetRevision(); diff --git a/include/inspsocket.h b/include/inspsocket.h index d2a8ed522..42ce01a27 100644 --- a/include/inspsocket.h +++ b/include/inspsocket.h @@ -35,6 +35,7 @@ enum InspSocketState { I_DISCONNECTED, I_CONNECTING, I_CONNECTED, I_LISTENING, I enum InspSocketError { I_ERR_TIMEOUT, I_ERR_SOCKET, I_ERR_CONNECT, I_ERR_BIND, I_ERR_RESOLVE, I_ERR_WRITE, I_ERR_NOMOREFDS }; class InspSocket; +class InspIRCd; /** * InspSocket is an extendable socket class which modules @@ -50,6 +51,7 @@ class InspSocket; class InspSocket : public Extensible { public: + InspIRCd* Instance; std::deque outbuffer; @@ -165,7 +167,7 @@ class InspSocket : public Extensible * The default constructor does nothing * and should not be used. */ - InspSocket(); + InspSocket(InspIRCd* SI); /** * This constructor is used to associate @@ -175,7 +177,7 @@ class InspSocket : public Extensible * will be set with the given IP address * and placed in CONNECTED state. */ - InspSocket(int newfd, const char* ip); + InspSocket(InspIRCd* SI, int newfd, const char* ip); /** * This constructor is used to create a new @@ -188,7 +190,7 @@ class InspSocket : public Extensible * @param listening true to listen on the given host:port pair, or false to connect to them * @param maxtime Number of seconds to wait, if connecting, before the connection times out and an OnTimeout() event is generated */ - InspSocket(const std::string &ipaddr, int port, bool listening, unsigned long maxtime); + InspSocket(InspIRCd* SI, const std::string &ipaddr, int port, bool listening, unsigned long maxtime); /** * This method is called when an outbound diff --git a/include/userprocess.h b/include/userprocess.h index cc3d713a0..1a93e68cd 100644 --- a/include/userprocess.h +++ b/include/userprocess.h @@ -10,6 +10,6 @@ void CheckRoot(); void OpenLog(char** argv, int argc); void DoBackgroundUserStuff(time_t TIME); void ProcessUser(userrec* cu); -void DoSocketTimeouts(time_t TIME); +void DoSocketTimeouts(time_t TIME, InspIRCd* SI); #endif -- cgit v1.3.1-10-gc9f91