strlcpy(topic,parameters[1],MAXBUF);
if (strlen(topic)>MAXTOPIC)
{
strlcpy(topic,parameters[1],MAXBUF);
if (strlen(topic)>MAXTOPIC)
{
WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, Ptr ? Ptr->name : "*", i->second->ident, i->second->dhost, i->second->server, i->second->nick, tmp, i->second->fullname);
n_list++;
if (n_list > MaxWhoResults)
WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, Ptr ? Ptr->name : "*", i->second->ident, i->second->dhost, i->second->server, i->second->nick, tmp, i->second->fullname);
n_list++;
if (n_list > MaxWhoResults)
for (user_hash::const_iterator i = clientlist.begin(); i != clientlist.end(); i++)
{
if ((has_channel(i->second,Ptr)) && (isnick(i->second->nick)))
for (user_hash::const_iterator i = clientlist.begin(); i != clientlist.end(); i++)
{
if ((has_channel(i->second,Ptr)) && (isnick(i->second->nick)))
if (strchr(i->second->modes,'o')) { strlcat(tmp, "*", 9); }
strlcat(tmp, cmode(i->second, Ptr),5);
WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, Ptr->name, i->second->ident, i->second->dhost, i->second->server, i->second->nick, tmp, i->second->fullname);
if (strchr(i->second->modes,'o')) { strlcat(tmp, "*", 9); }
strlcat(tmp, cmode(i->second, Ptr),5);
WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, Ptr->name, i->second->ident, i->second->dhost, i->second->server, i->second->nick, tmp, i->second->fullname);
}
}
WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);
}
}
WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);
- strlcat(user->ident,parameters[0],IDENTMAX);
- strlcpy(user->fullname,parameters[3],128);
+ strlcat(user->ident,parameters[0],IDENTMAX+1);
+ strlcpy(user->fullname,parameters[3],MAXGECOS);
snprintf(global,MAXBUF,"| %s %s",user->nick,TypeName);
NetSendToAll(global);
ConfValue("type","host",j,HostName,&config_f);
snprintf(global,MAXBUF,"| %s %s",user->nick,TypeName);
NetSendToAll(global);
ConfValue("type","host",j,HostName,&config_f);
if (!user->nick) return;
strlcpy(user->nick, newnick,NICKMAX);
log(DEBUG,"new nick set: %s",user->nick);
if (!user->nick) return;
strlcpy(user->nick, newnick,NICKMAX);
log(DEBUG,"new nick set: %s",user->nick);
strlcpy(clientlist[nick]->nick, nick,NICKMAX);
strlcpy(clientlist[nick]->host, host,160);
strlcpy(clientlist[nick]->dhost, dhost,160);
strlcpy(clientlist[nick]->nick, nick,NICKMAX);
strlcpy(clientlist[nick]->host, host,160);
strlcpy(clientlist[nick]->dhost, dhost,160);
- strlcpy(clientlist[nick]->server, server,256);
- strlcpy(clientlist[nick]->ident, ident,10); // +1 char to compensate for tilde
- strlcpy(clientlist[nick]->fullname, gecos,128);
+ clientlist[nick]->server = (char*)FindServerNamePtr(server);
+ strlcpy(clientlist[nick]->ident, ident,IDENTMAX+1); // +1 char to compensate for tilde
+ strlcpy(clientlist[nick]->fullname, gecos,MAXGECOS);
strlcpy(clientlist[nick]->ip,ipaddr,16);
clientlist[nick]->signon = TS;
clientlist[nick]->nping = 0; // this is ignored for a remote user anyway.
strlcpy(clientlist[nick]->ip,ipaddr,16);
clientlist[nick]->signon = TS;
clientlist[nick]->nping = 0; // this is ignored for a remote user anyway.
}
void handle_b(char token,char* params,serverrec* source,serverrec* reply, char* tcp_host, char* tcp_sum)
}
void handle_b(char token,char* params,serverrec* source,serverrec* reply, char* tcp_host, char* tcp_sum)
- snprintf(buffer,MAXBUF,":%s !",CreateSum(),tcp_host);
- serv->SendPacket(buffer,tcp_host);
+ snprintf(buffer,MAXBUF,"%s !",CreateSum().c_str());
+ reply->SendPacket(buffer,tcp_host);
me[j]->connectors[k].SetServerName(servername);
me[j]->connectors[k].SetDescription(serverdesc);
me[j]->connectors[k].SetState(STATE_CONNECTED);
me[j]->connectors[k].SetServerName(servername);
me[j]->connectors[k].SetDescription(serverdesc);
me[j]->connectors[k].SetState(STATE_CONNECTED);
if (!strcasecmp(serv->connectors[t].GetServerName().c_str(),servername))
{
serv->connectors[t].SetState(STATE_CONNECTED);
if (!strcasecmp(serv->connectors[t].GetServerName().c_str(),servername))
{
serv->connectors[t].SetState(STATE_CONNECTED);
snprintf(buffer,MAXBUF,"%s X 0",CreateSum().c_str());
serv->SendPacket(buffer,tcp_host);
DoSync(me[j],tcp_host);
snprintf(buffer,MAXBUF,"%s X 0",CreateSum().c_str());
serv->SendPacket(buffer,tcp_host);
DoSync(me[j],tcp_host);
me[j]->connectors[k].SetDescription(serverdesc);
me[j]->connectors[k].SetServerName(servername);
me[j]->connectors[k].SetState(STATE_SERVICES);
me[j]->connectors[k].SetDescription(serverdesc);
me[j]->connectors[k].SetServerName(servername);
me[j]->connectors[k].SetState(STATE_SERVICES);
snprintf(buffer,MAXBUF,"%s X 0",CreateSum().c_str());
serv->SendPacket(buffer,servername);
snprintf(buffer,MAXBUF,"%s s %s %s %lu :%s",CreateSum().c_str(),ServerName,Link_SendPass,LinkPort,ServerDesc);
snprintf(buffer,MAXBUF,"%s X 0",CreateSum().c_str());
serv->SendPacket(buffer,servername);
snprintf(buffer,MAXBUF,"%s s %s %s %lu :%s",CreateSum().c_str(),ServerName,Link_SendPass,LinkPort,ServerDesc);