]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spy.cpp
Fix for bug #415, affects only trunk (wish i'd known this before i started!)
[user/henk/code/inspircd.git] / src / modules / m_spy.cpp
index b33a0ba54835e636988ad9a7e1943c2f7914f6ba..60b893e1d39447622bd96c0d750594d9cac597e3 100644 (file)
  * ---------------------------------------------------
  */
 
-/* NO, THIS MODULE DOES NOT SPY ON CHANNELS OR USERS.
- * IT JUST ALLOWS OPERS TO SEE +s CHANNELS IN LIST AND
- * WHOIS, WHICH IS SUPPORTED BY MOST IRCDS IN CORE.
- */
-
 /* $ModDesc: Provides SPYLIST and SPYNAMES capability, allowing opers to see who's in +s channels */
 
 #include "inspircd.h"
-#include "users.h" 
-#include "channels.h"
-#include "modules.h"
 #include "wildcard.h"
 
 void spy_userlist(userrec *user, chanrec *c)
@@ -29,7 +21,7 @@ void spy_userlist(userrec *user, chanrec *c)
        char list[MAXBUF];
        size_t dlen, curlen;
 
-       dlen = curlen = snprintf(list,MAXBUF,"353 %s = %s :", user->nick, c->name);
+       dlen = curlen = snprintf(list,MAXBUF,"353 %s %c %s :", user->nick, c->IsModeSet('s') ? '@' : c->IsModeSet('p') ? '*' : '=', c->name);
 
        int numusers = 0;
        char* ptr = list + dlen;
@@ -51,7 +43,7 @@ void spy_userlist(userrec *user, chanrec *c)
                        user->WriteServ(std::string(list));
 
                        /* reset our lengths */
-                       dlen = curlen = snprintf(list,MAXBUF,"353 %s = %s :", user->nick, c->name);
+                       dlen = curlen = snprintf(list,MAXBUF,"353 %s %c %s :", user->nick, c->IsModeSet('s') ? '@' : c->IsModeSet('p') ? '*' : '=', c->name);
                        ptr = list + dlen;
 
                        ptrlen = 0;