long count_servs(void)
{
- c = 0;
+ int c = 0;
for (int j = 0; j < 255; j++)
{
if (servers[j] != NULL)
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());
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);
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);
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;
if (!strcasecmp(servers[i]->internal_addr,udp_host)) {
servers[i]->key = atoi(params);
log(DEBUG,"Key for this server is now %d",servers[i]->key);
- DoSync(serv,udp_host,udp_port,MyKey);
+ servers[i]->sync_soon = true;
return;
}
}
{
fd_set sfd;
- struct timeval tval;
+ timeval tval;
FD_ZERO(&sfd);
user_hash::iterator count2 = clientlist.begin();
}
fd_reap.clear();
reap_counter=0;
+ for (int j = 0; j < 255; j++)
+ {
+ if (servers[j])
+ {
+ if (servers[j]->sync_soon)
+ {
+ servers[j]->sync_soon = false;
+ DoSync(servers[j],servers[j]->internal_addr,servers[j]->internal_port,MyKey);
+ }
+ }
+ }
}