X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/212380e3f42f585dc1ea927402252eb943f91f7b..1f8b58e769799b9522266f9b557b56e7cf32e6c1:/modules/m_whois.c?ds=sidebyside diff --git a/modules/m_whois.c b/modules/m_whois.c index ef60a55..fcf7a68 100644 --- a/modules/m_whois.c +++ b/modules/m_whois.c @@ -21,7 +21,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA * - * $Id: m_whois.c 1879 2006-08-27 21:18:43Z jilles $ + * $Id: m_whois.c 3536 2007-07-14 21:50:21Z jilles $ */ #include "stdinc.h" @@ -67,7 +67,7 @@ mapi_hlist_av1 whois_hlist[] = { { NULL, NULL } }; -DECLARE_MODULE_AV1(whois, NULL, NULL, whois_clist, whois_hlist, NULL, "$Revision: 1879 $"); +DECLARE_MODULE_AV1(whois, NULL, NULL, whois_clist, whois_hlist, NULL, "$Revision: 3536 $"); /* * m_whois @@ -96,7 +96,7 @@ m_whois(struct Client *client_p, struct Client *source_p, int parc, const char * sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name, "WHOIS"); sendto_one_numeric(source_p, RPL_ENDOFWHOIS, - form_str(RPL_ENDOFWHOIS), parv[1]); + form_str(RPL_ENDOFWHOIS), parv[2]); return 0; } else @@ -201,7 +201,7 @@ do_whois(struct Client *client_p, struct Client *source_p, int parc, const char snprintf(buffer, sizeof(buffer), "%s!%s@%s %s", target_p->name, target_p->username, - target_p->host, target_p->user->server); + target_p->host, target_p->servptr->name); report_operspy(source_p, "WHOIS", buffer); } @@ -210,7 +210,7 @@ do_whois(struct Client *client_p, struct Client *source_p, int parc, const char else sendto_one_numeric(source_p, ERR_NOSUCHNICK, form_str(ERR_NOSUCHNICK), - IsDigit(*nick) ? "*" : nick); + nick); sendto_one_numeric(source_p, RPL_ENDOFWHOIS, form_str(RPL_ENDOFWHOIS), parv[1]); @@ -231,7 +231,6 @@ single_whois(struct Client *source_p, struct Client *target_p, int operspy) { char buf[BUFSIZE]; dlink_node *ptr; - struct Client *a2client_p; struct membership *msptr; struct Channel *chptr; int cur_len = 0; @@ -255,8 +254,6 @@ single_whois(struct Client *source_p, struct Client *target_p, int operspy) return; } - a2client_p = target_p->servptr; - sendto_one_numeric(source_p, RPL_WHOISUSER, form_str(RPL_WHOISUSER), target_p->name, target_p->username, target_p->host, target_p->info); @@ -280,28 +277,31 @@ single_whois(struct Client *source_p, struct Client *target_p, int operspy) t = buf + mlen; - DLINK_FOREACH(ptr, target_p->user->channel.head) + if (!IsService(target_p)) { - msptr = ptr->data; - chptr = msptr->chptr; + DLINK_FOREACH(ptr, target_p->user->channel.head) + { + msptr = ptr->data; + chptr = msptr->chptr; - visible = IsService(target_p) ? IsMember(source_p, chptr) : ShowChannel(source_p, chptr); + visible = ShowChannel(source_p, chptr); - if(visible || operspy) - { - if((cur_len + strlen(chptr->chname) + 3) > (BUFSIZE - 5)) + if(visible || operspy) { - sendto_one(source_p, "%s", buf); - cur_len = mlen + extra_space; - t = buf + mlen; + if((cur_len + strlen(chptr->chname) + 3) > (BUFSIZE - 5)) + { + sendto_one(source_p, "%s", buf); + cur_len = mlen + extra_space; + t = buf + mlen; + } + + tlen = ircsprintf(t, "%s%s%s ", + visible ? "" : "!", + find_channel_status(msptr, 1), + chptr->chname); + t += tlen; + cur_len += tlen; } - - tlen = ircsprintf(t, "%s%s%s ", - visible ? "" : "!", - find_channel_status(msptr, 1), - chptr->chname); - t += tlen; - cur_len += tlen; } } @@ -309,8 +309,8 @@ single_whois(struct Client *source_p, struct Client *target_p, int operspy) sendto_one(source_p, "%s", buf); sendto_one_numeric(source_p, RPL_WHOISSERVER, form_str(RPL_WHOISSERVER), - target_p->name, target_p->user->server, - a2client_p ? a2client_p->info : "*Not On This Net*"); + target_p->name, target_p->servptr->name, + target_p->servptr->info); if(target_p->user->away) sendto_one_numeric(source_p, RPL_AWAY, form_str(RPL_AWAY),