]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Attempt to fix recursive loop
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Thu, 2 Jun 2005 14:16:40 +0000 (14:16 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Thu, 2 Jun 2005 14:16:40 +0000 (14:16 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1590 e03df62e-2008-0410-955e-edbf42e46eb7

src/servers.cpp

index 5448d01dae2a13ff3f42675c7f3a5d19010a4359..2675849a585db6f38f98084ac94ce2937065ed8e 100644 (file)
@@ -380,10 +380,18 @@ bool serverrec::SendPacket(char *message, const char* sendhost)
                                                 if (!strcasecmp(this->connectors[k].routes[m].c_str(),sendhost))
                                                 {
                                                         log(DEBUG,"Found alternative route for packet: %s",this->connectors[k].GetServerName().c_str());
-                                                        char buffer[MAXBUF];
-                                                        snprintf(buffer,MAXBUF,"R %s %s",sendhost,message);
-                                                        this->SendPacket(buffer,this->connectors[k].GetServerName().c_str());
-                                                        return true;
+                                                       if (this->connectors[k].GetState() != STATE_DISCONNECTED)
+                                                       {
+                                                               char buffer[MAXBUF];
+                                                               snprintf(buffer,MAXBUF,"R %s %s",sendhost,message);
+                                                               this->SendPacket(buffer,this->connectors[k].GetServerName().c_str());
+                                                               return true;
+                                                       }
+                                                       else
+                                                       {
+                                                               log(DEBUG,"Nope, this route is down...");
+                                                               return false;
+                                                       }
                                                 }
                                         }
                                 }