]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Fixed /connect bug
[user/henk/code/inspircd.git] / src / inspircd.cpp
index f66ead573651588143aa4a9370aebec506c14858..e5a47fde3681fbc9d5b87eecbb6dec862a0d1137 100644 (file)
@@ -4910,7 +4910,7 @@ long chancount(void)
 
 long count_servs(void)
 {
-       c = 0;
+       int c = 0;
        for (int j = 0; j < 255; j++)
        {
                if (servers[j] != NULL)
@@ -4924,6 +4924,17 @@ long servercount(void)
        return count_servs()+1;
 }
 
+long local_count()
+{
+       int c = 0;
+       for (user_hash::const_iterator i = clientlist.begin(); i != clientlist.end(); i++)
+       {
+               if ((i->second->fd) && (isnick(i->second->nick)) && (!strcasecmp(i->second->server,ServerName))) c++;
+       }
+       return c;
+}
+
+
 void handle_lusers(char **parameters, int pcnt, userrec *user)
 {
        WriteServ(user->fd,"251 %s :There are %d users and %d invisible on %d servers",user->nick,usercnt()-usercount_invisible(),usercount_invisible(),servercount());
@@ -5331,6 +5342,7 @@ void handle_connect(char **parameters, int pcnt, userrec *user)
                LinkPort = atoi(Link_Port);
                if (match(Link_ServerName,parameters[0])) {
                        found = true;
+                       break;
                }
        }
        
@@ -5351,6 +5363,7 @@ void handle_connect(char **parameters, int pcnt, userrec *user)
                for (int j = 0; j < 255; j++) {
                        if (servers[j] == NULL) {
                                servers[j] = new serverrec;
+                               //servers[j]->initiator = true;
                                strcpy(servers[j]->internal_addr,Link_IPAddr);
                                servers[j]->internal_port = LinkPort;
                                strcpy(servers[j]->name,Link_ServerName);
@@ -5402,16 +5415,6 @@ long map_count(serverrec* s)
        return c;
 }
 
-long local_count()
-{
-       int c = 0;
-       for (user_hash::const_iterator i = clientlist.begin(); i != clientlist.end(); i++)
-       {
-               if ((i->second->fd) && (isnick(i->second->nick)) && (!strcasecmp(i->second->server,ServerName))) c++;
-       }
-       return c;
-}
-
 void handle_links(char **parameters, int pcnt, userrec *user)
 {
        WriteServ(user->fd,"364 %s %s %s :0 %s",user->nick,ServerName,ServerName,ServerDesc);
@@ -6560,6 +6563,7 @@ void handle_link_packet(long theirkey, char* udp_msg, char* udp_host, int udp_po
                                                                strcpy(servers[j]->description,serverdesc);
                                                                servers[j]->internal_port = udp_port;
                                                                // create a server record for this server
+                                                               WriteOpers("Server %s authenticated, exchanging server keys...",servername);
                                                                snprintf(response,10240,"O %d",MyKey);
                                                                serv->SendPacket(response,udp_host,udp_port,0);
                                                                return;
@@ -6892,7 +6896,7 @@ int InspIRCd(void)
        {
 
                fd_set sfd;
-               struct timeval tval;
+               timeval tval;
                FD_ZERO(&sfd);
 
                user_hash::iterator count2 = clientlist.begin();