]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Safeguards
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>
Fri, 29 Aug 2008 21:15:07 +0000 (21:15 +0000)
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>
Fri, 29 Aug 2008 21:15:07 +0000 (21:15 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10352 e03df62e-2008-0410-955e-edbf42e46eb7

src/modules/m_spanningtree/main.cpp

index a6b0f3a40e239ae8cada792653bb804c8733727c..43f3c9b640743d5274ebb2f8afe11ef8f519df1e 100644 (file)
@@ -244,6 +244,13 @@ void ModuleSpanningTree::DoPingChecks(time_t curtime)
 void ModuleSpanningTree::ConnectServer(Link* x)
 {
        bool ipvalid = true;
+
+       if (InspIRCd::Match(ServerInstance->Config->ServerName, assign(x->Name)))
+       {
+               RemoteMessage(NULL, "CONNECT: Not connecting to myself.");
+               return;
+       }
+
        QueryType start_type = DNS_QUERY_A;
 #ifdef IPV6
        start_type = DNS_QUERY_AAAA;
@@ -393,6 +400,12 @@ int ModuleSpanningTree::HandleConnect(const std::vector<std::string>& parameters
        {
                if (InspIRCd::Match(x->Name.c_str(),parameters[0]))
                {
+                       if (InspIRCd::Match(ServerInstance->Config->ServerName, assign(x->Name)))
+                       {
+                               RemoteMessage(user, "*** CONNECT: Server \002%s\002 is ME, not connecting.",x->Name.c_str());
+                               return 1;
+                       }
+
                        TreeServer* CheckDupe = Utils->FindServer(x->Name.c_str());
                        if (!CheckDupe)
                        {