-#include "inspstring.h"
-#include "hashcomp.h"
-#include "xline.h"
-#include "typedefs.h"
-#include "cull_list.h"
-#include "aes.h"
-
-#define nspace __gnu_cxx
-
-void spy_userlist(userrec *user,chanrec *c)
-{
- static char list[MAXBUF];
-
- if ((!c) || (!user))
- return;
-
- snprintf(list,MAXBUF,"353 %s = %s :", user->nick, c->name);
-
- CUList *ulist= c->GetUsers();
- for (CUList::iterator i = ulist->begin(); i != ulist->end(); i++)
- {
- strlcat(list,c->GetPrefixChar(i->second),MAXBUF);
- strlcat(list,i->second->nick,MAXBUF);
- strlcat(list," ",MAXBUF);
- if (strlen(list)>(480-NICKMAX))
- {
- /* list overflowed into
- * multiple numerics */
- user->WriteServ(std::string(list));
- snprintf(list,MAXBUF,"353 %s = %s :", user->nick, c->name);
- }
- }
- /* if whats left in the list isnt empty, send it */
- if (list[strlen(list)-1] != ':')
- {
- user->WriteServ(std::string(list));
- }
-}
-
-
-
-class cmd_spylist : public command_t
-{
- public:
- cmd_spylist (InspIRCd* Instance) : command_t(Instance,"SPYLIST", 'o', 0)
- {
- this->source = "m_spy.so";
- syntax = "";
- }
-
- void Handle (const char** parameters, int pcnt, userrec *user)
- {
- ServerInstance->WriteOpers("*** Oper %s used SPYLIST to list +s/+p channels and keys.",user->nick);
- user->WriteServ("321 %s Channel :Users Name",user->nick);
- for (chan_hash::const_iterator i = ServerInstance->chanlist.begin(); i != ServerInstance->chanlist.end(); i++)
- {
- user->WriteServ("322 %s %s %d :[+%s] %s",user->nick,i->second->name,i->second->GetUserCounter(),i->second->ChanModes(true),i->second->topic);
- }
- user->WriteServ("323 %s :End of channel list.",user->nick);
- }
-};