-void spy_userlist(userrec *user, chanrec *c)
-{
- char list[MAXBUF];
- size_t dlen, curlen;
-
- 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;
-
- CUList *ulist= c->GetUsers();
-
- for (CUList::iterator i = ulist->begin(); i != ulist->end(); i++)
- {
- size_t ptrlen = snprintf(ptr, MAXBUF, "%s%s ", c->GetPrefixChar(i->first), i->first->nick);
-
- curlen += ptrlen;
- ptr += ptrlen;
-
- numusers++;
-
- if (curlen > (480-NICKMAX))
- {
- /* list overflowed into multiple numerics */
- user->WriteServ(std::string(list));
-
- /* reset our lengths */
- dlen = curlen = snprintf(list,MAXBUF,"353 %s %c %s :", user->nick, c->IsModeSet('s') ? '@' : c->IsModeSet('p') ? '*' : '=', c->name);
- ptr = list + dlen;
-
- ptrlen = 0;
- numusers = 0;
- }
- }
-
- /* if whats left in the list isnt empty, send it */
- if (numusers)
- {
- user->WriteServ(std::string(list));
- }
-
- user->WriteServ("366 %s %s :End of /NAMES list.", user->nick, c->name);
-
-}
-
-/** Handle /SPYLIST
- */
-class cmd_spylist : public command_t
-{
- public:
- cmd_spylist (InspIRCd* Instance) : command_t(Instance,"SPYLIST", 'o', 0)
- {
- this->source = "m_spy.so";
- syntax.clear();
- }
-
- CmdResult 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++)
- {
- if (pcnt && !match(i->second->name, parameters[0]))
- continue;
- 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);
-
- /* Dont send out across the network */
- return CMD_LOCALONLY;
- }
-};
-
-/** Handle /SPYNAMES
- */
-class cmd_spynames : public command_t