diff options
| author | 2006-08-09 14:53:19 +0000 | |
|---|---|---|
| committer | 2006-08-09 14:53:19 +0000 | |
| commit | ab46b96db4d457e6a4f2e978c38b79762cdeb9d5 (patch) | |
| tree | 01b9489ae9804ee45b765ad7045efee54b34347b /src/userprocess.cpp | |
| parent | Tidy up loglevel enum (remove some C-ish defines) (diff) | |
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
Diffstat (limited to 'src/userprocess.cpp')
| -rw-r--r-- | src/userprocess.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/userprocess.cpp b/src/userprocess.cpp index d262b5cab..7d4ce9442 100644 --- a/src/userprocess.cpp +++ b/src/userprocess.cpp @@ -56,12 +56,9 @@ extern struct sockaddr_in client,server; extern socklen_t length; extern std::vector<Module*> modules; extern std::vector<ircd_module*> factory; -extern std::vector<InspSocket*> module_sockets; extern time_t TIME; extern time_t OLDTIME; extern std::vector<userrec*> local_users; -extern InspSocket* socket_ref[MAX_DESCRIPTORS]; - extern InspIRCd* ServerInstance; extern userrec* fd_ref_table[MAX_DESCRIPTORS]; char data[65536]; @@ -280,26 +277,26 @@ void ProcessUser(userrec* cu) } } -void DoSocketTimeouts(time_t TIME) +void DoSocketTimeouts(time_t TIME, InspIRCd* SI) { - unsigned int numsockets = module_sockets.size(); - SocketEngine* SE = ServerInstance->SE; + unsigned int numsockets = SI->module_sockets.size(); + SocketEngine* SE = SI->SE; - for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++) + for (std::vector<InspSocket*>::iterator a = SI->module_sockets.begin(); a < SI->module_sockets.end(); a++) { InspSocket* s = (InspSocket*)*a; - if ((s) && (s->GetFd() >= 0) && (s->GetFd() < MAX_DESCRIPTORS) && (socket_ref[s->GetFd()] != NULL) && (s->Timeout(TIME))) + if ((s) && (s->GetFd() >= 0) && (s->GetFd() < MAX_DESCRIPTORS) && (SI->socket_ref[s->GetFd()] != NULL) && (s->Timeout(TIME))) { log(DEBUG,"userprocess.cpp: Socket poll returned false, close and bail"); - socket_ref[s->GetFd()] = NULL; + SI->socket_ref[s->GetFd()] = NULL; SE->DelFd(s->GetFd()); - module_sockets.erase(a); + SI->module_sockets.erase(a); s->Close(); DELETE(s); break; } - if (module_sockets.size() != numsockets) + if (SI->module_sockets.size() != numsockets) break; } } |
