From c1d478f928e202dadf717fd3552a136192d6fe17 Mon Sep 17 00:00:00 2001 From: brain Date: Fri, 16 Apr 2004 14:24:42 +0000 Subject: Fixes to only send SQUIT tokens to servers that are still alive to avoid routing loops git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@614 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/inspircd.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/inspircd.cpp') diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 92ebb4771..70a4735fd 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -929,6 +929,32 @@ void NetSendToAll(char* s) } } +void NetSendToAllAlive(char* s) +{ + char buffer[MAXBUF]; + snprintf(buffer,MAXBUF,"%s",s); + + log(DEBUG,"NetSendToAllAlive: '%s'",s); + + for (int j = 0; j < 32; j++) + { + if (me[j] != NULL) + { + for (int k = 0; k < me[j]->connectors.size(); k++) + { + if (me[j]->connectors[k].GetState() != STATE_DISCONNECTED) + { + me[j]->SendPacket(buffer,me[j]->connectors[k].GetServerName().c_str()); + } + else + { + log(DEBUG,"%s is dead, not sending to it.",me[j]->connectors[k].GetServerName.c_str()); + } + } + } + } +} + void NetSendToOne(char* target,char* s) { -- cgit v1.3.1-10-gc9f91