]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - modules/m_who.c
When checking if a nick resv or xline already exists, match exact not wild.
[irc/rqf/shadowircd.git] / modules / m_who.c
index 2bec0964ddebacd14293358f0357ce9772e2b879..8ef2624fb44267ae3694914dea6ee2103b31b16e 100644 (file)
@@ -21,7 +21,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: m_who.c 3283 2007-03-28 13:11:30Z jilles $
+ *  $Id: m_who.c 3350 2007-04-02 22:03:08Z jilles $
  */
 #include "stdinc.h"
 #include "tools.h"
@@ -51,7 +51,7 @@ struct Message who_msgtab = {
 };
 
 mapi_clist_av1 who_clist[] = { &who_msgtab, NULL };
-DECLARE_MODULE_AV1(who, NULL, NULL, who_clist, NULL, NULL, "$Revision: 3283 $");
+DECLARE_MODULE_AV1(who, NULL, NULL, who_clist, NULL, NULL, "$Revision: 3350 $");
 
 static void do_who_on_channel(struct Client *source_p, struct Channel *chptr,
                              int server_oper, int member);
@@ -119,7 +119,7 @@ m_who(struct Client *client_p, struct Client *source_p, int parc, const char *pa
        if(IsChannelName(mask))
        {
                /* List all users on a given channel */
-               chptr = find_channel(parv[1]);
+               chptr = find_channel(parv[1] + operspy);
                if(chptr != NULL)
                {
                        if(operspy)
@@ -131,7 +131,7 @@ m_who(struct Client *client_p, struct Client *source_p, int parc, const char *pa
                                do_who_on_channel(source_p, chptr, server_oper, NO);
                }
                sendto_one(source_p, form_str(RPL_ENDOFWHO),
-                          me.name, source_p->name, parv[1]);
+                          me.name, source_p->name, parv[1] + operspy);
                return 0;
        }
 
@@ -244,7 +244,7 @@ who_common_channel(struct Client *source_p, struct Channel *chptr,
                {
                        if((mask == NULL) ||
                                        match(mask, target_p->name) || match(mask, target_p->username) ||
-                                       match(mask, target_p->host) || match(mask, target_p->user->server) ||
+                                       match(mask, target_p->host) || match(mask, target_p->servptr->name) ||
                                        (IsOper(source_p) && match(mask, target_p->orighost)) ||
                                        match(mask, target_p->info))
                        {
@@ -313,7 +313,7 @@ who_global(struct Client *source_p, const char *mask, int server_oper, int opers
                {
                        if(!mask ||
                                        match(mask, target_p->name) || match(mask, target_p->username) ||
-                                       match(mask, target_p->host) || match(mask, target_p->user->server) ||
+                                       match(mask, target_p->host) || match(mask, target_p->servptr->name) ||
                                        (IsOper(source_p) && match(mask, target_p->orighost)) ||
                                        match(mask, target_p->info))
                        {
@@ -385,7 +385,7 @@ do_who(struct Client *source_p, struct Client *target_p, const char *chname, con
        sendto_one(source_p, form_str(RPL_WHOREPLY), me.name, source_p->name,
                   (chname) ? (chname) : "*",
                   target_p->username,
-                  target_p->host, target_p->user->server, target_p->name,
+                  target_p->host, target_p->servptr->name, target_p->name,
                   status, 
                   ConfigServerHide.flatten_links ? 0 : target_p->hopcount, 
                   target_p->info);