* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * Inspire is copyright (C) 2002-2005 ChatSpike-Dev.
+ * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
* E-mail:
- * <brain.net>
- * <Craig.net>
+ * <brain@chatspike.net>
+ * <Craig@chatspike.net>
*
* Written by Craig Edwards, Craig McLure, and others.
* This program is free but copyrighted software; see
extern whowas_hash whowas;
extern std::vector<userrec*> all_opers;
extern std::vector<userrec*> local_users;
-extern userrec* fd_ref_table[65536];
+extern userrec* fd_ref_table[MAX_DESCRIPTORS];
void cmd_who::Handle (char **parameters, int pcnt, userrec *user)
{
if ((!common_channels(user,i->second)) && (isnick(i->second->nick)))
{
// Bug Fix #29
- strcpy(tmp, "");
- if (strcmp(i->second->awaymsg, "")) {
+ *tmp = 0;
+ if (*i->second->awaymsg) {
strlcat(tmp, "G", 9);
} else {
strlcat(tmp, "H", 9);
}
- if (strchr(i->second->modes,'o')) { strlcat(tmp, "*", 9); }
+ if (*i->second->oper) { strlcat(tmp, "*", 9); }
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 > Config->MaxWhoResults)
+ if (n_list++ > Config->MaxWhoResults)
{
WriteServ(user->fd,"523 %s WHO :Command aborted: More results than configured limit",user->nick);
break;
if ((has_channel(i->second,Ptr)) && (isnick(i->second->nick)))
{
// Fix Bug #29 - Part 2..
- strcpy(tmp, "");
- if (strcmp(i->second->awaymsg, "")) {
+ *tmp = 0;
+ if (*i->second->awaymsg) {
strlcat(tmp, "G", 9);
} else {
strlcat(tmp, "H", 9);
}
- if (strchr(i->second->modes,'o')) { strlcat(tmp, "*", 9); }
+ if (*i->second->oper) { 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);
n_list++;
if (u)
{
// Bug Fix #29 -- Part 29..
- strcpy(tmp, "");
- if (strcmp(u->awaymsg, "")) {
+ *tmp = 0;
+ if (*u->awaymsg) {
strlcat(tmp, "G" ,9);
} else {
strlcat(tmp, "H" ,9);
}
- if (strchr(u->modes,'o')) { strlcat(tmp, "*" ,9); }
- WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, u->chans.size() ? u->chans[0].channel->name
+ if (*u->oper) { strlcat(tmp, "*" ,9); }
+ WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, u->chans.size() && u->chans[0].channel ? u->chans[0].channel->name
: "*", u->ident, u->dhost, u->server, u->nick, tmp, u->fullname);
}
WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);
// If i were a rich man.. I wouldn't need to me making these bugfixes..
// But i'm a poor bastard with nothing better to do.
userrec* oper = *i;
- strcpy(tmp, "");
- if (strcmp(oper->awaymsg, "")) {
+ *tmp = 0;
+ if (*oper->awaymsg) {
strlcat(tmp, "G" ,9);
} else {
strlcat(tmp, "H" ,9);
}
- WriteServ(user->fd,"352 %s %s %s %s %s %s %s* :0 %s", user->nick, oper->chans.size() ? oper->chans[0].channel->name
+ WriteServ(user->fd,"352 %s %s %s %s %s %s %s* :0 %s", user->nick, oper->chans.size() && oper->chans[0].channel ? oper->chans[0].channel->name
: "*", oper->ident, oper->dhost, oper->server, oper->nick, tmp, oper->fullname);
}
WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);