]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Now clears the autoconns map on rehash
[user/henk/code/inspircd.git] / src / inspircd.cpp
index 2ee4ca577592f303ce65109c290d37a00313ea04..c9b2719424488569143c9fcc06173b3032ea863c 100644 (file)
@@ -401,6 +401,7 @@ void ReadConfig(bool bail, userrec* user)
        log(DEFAULT,"Applying K lines, Q lines and Z lines...");
        apply_lines();
 
+       autoconns.clear();
         for (int i = 0; i < ConfValueEnum("link",&config_f); i++)
         {
                char Link_ServerName[MAXBUF],Link_AConn[MAXBUF];
@@ -2518,7 +2519,7 @@ bool LoadModule(const char* filename)
 }
 
 
-void GotServer(std::string name)
+bool GotServer(std::string name)
 {
         for (int j = 0; j < 32; j++)
         {
@@ -2526,7 +2527,7 @@ void GotServer(std::string name)
                 {
                         for (int k = 0; k < me[j]->connectors.size(); k++)
                         {
-                               if (name == me[j]->connectors.GetServerName())
+                               if (name == me[j]->connectors[k].GetServerName())
                                {
                                        return true;
                                }
@@ -2846,9 +2847,9 @@ int InspIRCd(char** argv, int argc)
                                char Link_ServerName[MAXBUF],Link_AConn[MAXBUF];
                                ConfValue("link","name",i,Link_ServerName,&config_f);
                                ConfValue("link","autoconnect",i,Link_AConn,&config_f);
-                               if (Link_AConn[0]) && (!GotServer(Link_ServerName))
+                               if ((Link_AConn[0]) && (!GotServer(Link_ServerName)))
                                {
-                                       autoconnects::iterator a = autoconns.find(Link_ServerName);
+                                       autoconnects::iterator a = autoconns.find(std::string(Link_ServerName));
                                        if (a != autoconns.end())
                                        {
                                                if (TIME > a->second)