]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Added proper administrativia notices to CONNECT and inbound connections
[user/henk/code/inspircd.git] / src / inspircd.cpp
index 50536099df27da7e8cce3c7e875f2314fcf59f07..5cf67bfbdd8f4eab0eab9d5182b5a544d6e089c9 100644 (file)
@@ -2337,15 +2337,20 @@ int InspIRCd(char** argv, int argc)
 
                dns_poll();
 
+               unsigned int numsockets = module_sockets.size();
                for (std::vector<InspSocket*>::iterator a = module_sockets.begin(); a < module_sockets.end(); a++)
                {
                        InspSocket* s = (InspSocket*)*a;
-                       if (!s->Poll())
+                       if ((s) && (!s->Poll()))
                        {
-                               delete s;
+                               log(DEBUG,"Socket poll returned false, close and bail");
+                               s->Close();
                                module_sockets.erase(a);
+                               delete s;
                                break;
                        }
+                       // we gained a socket, sarper
+                       if (module_sockets.size() != numsockets) break;
                }
 
                // *FIX* Instead of closing sockets in kill_link when they receive the ERROR :blah line, we should queue