extern time_t TIME;
extern time_t OLDTIME;
extern std::vector<userrec*> local_users;
+extern InspSocket* socket_ref[MAX_DESCRIPTORS];
char LOG_FILE[MAXBUF];
extern InspIRCd* ServerInstance;
for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++)
{
InspSocket* s = (InspSocket*)*a;
- if (s->Timeout(TIME))
+ if ((s) && (socket_ref[s->GetFd()] != NULL) && (s->Timeout(TIME)))
{
- log(DEBUG,"Socket poll returned false, close and bail");
+ log(DEBUG,"userprocess.cpp: Socket poll returned false, close and bail");
+ socket_ref[s->GetFd()] = NULL;
SE->DelFd(s->GetFd());
- s->Close();
module_sockets.erase(a);
+ s->Close();
delete s;
break;
}