return;
}
}
- serv->SendPacket("E :Access is denied (no matching link block)",udp_host);
+ char buffer[MAXBUF];
+ sprintf(buffer,"E :Access is denied (no matching link block)");
+ serv->SendPacket(buffer,udp_host);
WriteOpers("CONNECT from %s denied, no matching link block",servername);
return;
}
{
strcpy(servers[j]->description,serverdesc);
DoSync(serv,udp_host);
- Serv->SendPacket("X 0",udp_host);
+ char buffer[MAXBUF];
+ sprintf(buffer,"X 0");
+ serv->SendPacket(buffer,udp_host);
return;
}
}
log(DEBUG,"Server names '%s' and '%s' don't match",Link_ServerName,servername);
}
}
- serv->SendPacket("E :Access is denied (no matching link block)",udp_host);
+ char buffer[MAXBUF];
+ sprintf(buffer,"E :Access is denied (no matching link block)");
+ serv->SendPacket(buffer,udp_host);
WriteOpers("CONNECT from %s denied, no matching link block",servername);
return;
}
for (int x = 0; x != UDPportCount; x++)
{
- long theirkey = 0;
- if (me[x]->RecvPacket(udp_msg, udp_host))
- {
- if (strlen(udp_msg)<1) {
- log(DEBUG,"Invalid string from %s [route%d]",udp_host,x);
- }
- else
+ std::deque<std::string> msgs;
+ msgs.clear();
+ if (me[x]->RecvPacket(msgs, udp_host))
{
- FOREACH_MOD OnPacketReceive(udp_msg);
- handle_link_packet(udp_msg, udp_host, me[x]);
+ for (int ctr = 0; ctr < msgs.size(); ctr++)
+ {
+ char udp_msg[MAXBUF];
+ strncpy(udp_msg,msgs[ctr].c_str(),MAXBUF);
+ if (strlen(udp_msg)<1)
+ {
+ log(DEBUG,"Invalid string from %s [route%d]",udp_host,x);
+ break;
+ }
+ FOREACH_MOD OnPacketReceive(udp_msg);
+ handle_link_packet(udp_msg, udp_host, me[x]);
+ }
goto label;
}
}
- }
while (count2 != clientlist.end())