hs_delall.c

Go to the documentation of this file.
00001 /* HostServ core functions
00002  *
00003  * (C) 2003-2007 Anope Team
00004  * Contact us at info@anope.org
00005  *
00006  * Please read COPYING and README for further details.
00007  *
00008  * Based on the original code of Epona by Lara.
00009  * Based on the original code of Services by Andy Church. 
00010  * 
00011  * $Id: hs_delall.c 1265 2007-08-26 15:33:06Z geniusdex $
00012  *
00013  */
00014 /*************************************************************************/
00015 
00016 #include "module.h"
00017 
00018 int do_delall(User * u);
00019 void myHostServHelp(User * u);
00020 
00027 int AnopeInit(int argc, char **argv)
00028 {
00029     Command *c;
00030 
00031     moduleAddAuthor("Anope");
00032     moduleAddVersion("$Id: hs_delall.c 1265 2007-08-26 15:33:06Z geniusdex $");
00033     moduleSetType(CORE);
00034 
00035     c = createCommand("DELALL", do_delall, is_host_remover,
00036                       HOST_HELP_DELALL, -1, -1, -1, -1);
00037     moduleAddCommand(HOSTSERV, c, MOD_UNIQUE);
00038 
00039     moduleSetHostHelp(myHostServHelp);
00040 
00041     return MOD_CONT;
00042 }
00043 
00047 void AnopeFini(void)
00048 {
00049 
00050 }
00051 
00052 
00053 
00058 void myHostServHelp(User * u)
00059 {
00060     if (is_host_remover(u)) {
00061         notice_lang(s_HostServ, u, HOST_HELP_CMD_DELALL);
00062     }
00063 }
00064 
00070 int do_delall(User * u)
00071 {
00072     int i;
00073     char *nick = strtok(NULL, " ");
00074     NickAlias *na;
00075     NickCore *nc;
00076     if (!nick) {
00077         notice_lang(s_HostServ, u, HOST_DELALL_SYNTAX, s_HostServ);
00078         return MOD_CONT;
00079     }
00080     if ((na = findnick(nick))) {
00081         if (na->status & NS_VERBOTEN) {
00082             notice_lang(s_HostServ, u, NICK_X_FORBIDDEN, nick);
00083             return MOD_CONT;
00084         }
00085         nc = na->nc;
00086         for (i = 0; i < nc->aliases.count; i++) {
00087             na = nc->aliases.list[i];
00088             delHostCore(na->nick);
00089         }
00090         alog("vHosts for all nicks in group \002%s\002 deleted by oper \002%s\002", nc->display, u->nick);
00091         notice_lang(s_HostServ, u, HOST_DELALL, nc->display);
00092     } else {
00093         notice_lang(s_HostServ, u, HOST_NOREG, nick);
00094     }
00095     return MOD_CONT;
00096 }

Generated on Sun Dec 30 09:26:47 2007 for Anope by  doxygen 1.5.1-20070107