- /*
- * Handles an SAMODE request. Notifies all +s users.
- */
-
- userrec* n = new userrec(ServerInstance);
- n->SetFd(FD_MAGIC_NUMBER);
- ServerInstance->SendMode(parameters,pcnt,n);
- delete n;
-
- if (ServerInstance->Modes->GetLastParse().length())
- {
- ServerInstance->WriteOpers("*** " + std::string(user->nick) + " used SAMODE: " + ServerInstance->Modes->GetLastParse());
-
- std::deque<std::string> n;
- irc::spacesepstream spaced(ServerInstance->Modes->GetLastParse());
- std::string one = "*";
- while ((one = spaced.GetToken()) != "")
- n.push_back(one);
-
- Event rmode((char *)&n, NULL, "send_mode_explicit");
- rmode.Send(ServerInstance);
-
- n.clear();
- n.push_back(std::string(user->nick) + " used SAMODE: " + ServerInstance->Modes->GetLastParse());
- Event rmode2((char *)&n, NULL, "send_opers");
- rmode2.Send(ServerInstance);
-
- /* XXX: Yes, this is right. We dont want to propogate the
- * actual SAMODE command, just the MODE command generated
- * by the send_mode_explicit
- */
- return CMD_FAILURE;
- }
- else