diff options
-rw-r--r-- | src/commands.cpp | 6 | ||||
-rw-r--r-- | src/inspircd.cpp | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/commands.cpp b/src/commands.cpp index 94635e609..dc757c803 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -2759,6 +2759,10 @@ void handle_link_packet(char* udp_msg, char* tcp_host, serverrec *serv) { token = '*'; } + if (!strcmp(command,"PING")) + { + token = '*'; + } if (!strcmp(command,"NOTICE")) { snprintf(udp_msg,MAXBUF,"V %s %s",source,data); @@ -3060,6 +3064,8 @@ void handle_link_packet(char* udp_msg, char* tcp_host, serverrec *serv) char Link_Pass[1024]; char Link_SendPass[1024]; int LinkPort = 0; + + log(DEBUG,"U-token linked server detected."); // search for a corresponding <link> block in the config files for (int i = 0; i < ConfValueEnum("link",&config_f); i++) diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 27dfe9364..39fe13317 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -3758,8 +3758,6 @@ int InspIRCd(void) // we only read time() once per iteration rather than tons of times! TIME = time(NULL); - //user_hash::iterator count2 = clientlist.begin(); - // *FIX* Instead of closing sockets in kill_link when they receive the ERROR :blah line, we should queue // them in a list, then reap the list every second or so. if (((TIME % 5) == 0) && (!expire_run)) @@ -3803,6 +3801,7 @@ int InspIRCd(void) // serverFds timevals went here tvs.tv_usec = 7000L; + tvs.tv_sec = 0; int servresult = select(32767, &serverfds, NULL, NULL, &tvs); if (servresult > 0) { @@ -3838,6 +3837,7 @@ int InspIRCd(void) { char udp_msg[MAXBUF]; strlcpy(udp_msg,msgs[ctr].c_str(),MAXBUF); + log(DEBUG,"Processing: %s",udp_msg); if (strlen(udp_msg)<1) { log(DEBUG,"Invalid string from %s [route%d]",tcp_host,x); @@ -3859,6 +3859,7 @@ int InspIRCd(void) std::string msg = udp_msg; FOREACH_MOD OnPacketReceive(msg,tcp_host); strlcpy(udp_msg,msg.c_str(),MAXBUF); + handle_link_packet(udp_msg, tcp_host, me[x]); } goto label; } |