From d7d01bdc5c667a1fafd95241282b58e03b4caa5b Mon Sep 17 00:00:00 2001 From: rburchell Date: Mon, 9 Feb 2009 21:01:05 +0000 Subject: Squashed commit: merge next (1.9.1) back to trunk. SVN users, NOTE: THIS WILL NOT BUILD, NOR SHOULD YOU RUN IT YET. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1953 5417fbe8-f217-4b02-8779-1006273d7864 --- src/core/hs_on.c | 106 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 55 insertions(+), 51 deletions(-) (limited to 'src/core/hs_on.c') diff --git a/src/core/hs_on.c b/src/core/hs_on.c index 6d539ce7e..1cad7a93c 100644 --- a/src/core/hs_on.c +++ b/src/core/hs_on.c @@ -15,78 +15,82 @@ #include "module.h" -int do_on(User * u); -void myHostServHelp(User * u); +void myHostServHelp(User *u); + +class CommandHSOn : public Command +{ + public: + CommandHSOn() : Command("ON", 0, 0) + { + } + + CommandResult Execute(User *u, std::vector ¶ms) + { + NickAlias *na; + char *vHost; + char *vIdent = NULL; + if ((na = findnick(u->nick))) + { + if (na->status & NS_IDENTIFIED) + { + vHost = getvHost(u->nick); + vIdent = getvIdent(u->nick); + if (!vHost) + notice_lang(s_HostServ, u, HOST_NOT_ASSIGNED); + else + { + if (vIdent) + notice_lang(s_HostServ, u, HOST_IDENT_ACTIVATED, vIdent, vHost); + else + notice_lang(s_HostServ, u, HOST_ACTIVATED, vHost); + ircdproto->SendVhost(u->nick, vIdent, vHost); + if (ircd->vhost) + u->vhost = sstrdup(vHost); + if (ircd->vident) + { + if (vIdent) + u->SetVIdent(vIdent); + } + set_lastmask(u); + } + } + else + notice_lang(s_HostServ, u, HOST_ID); + } + else + notice_lang(s_HostServ, u, HOST_NOT_REGED); + return MOD_CONT; + } + + bool OnHelp(User *u, const std::string &subcommand) + { + notice_lang(s_HostServ, u, HOST_HELP_ON); + return true; + } +}; class HSOn : public Module { public: HSOn(const std::string &modname, const std::string &creator) : Module(modname, creator) { - Command *c; - this->SetAuthor("Anope"); this->SetVersion("$Id$"); this->SetType(CORE); - c = createCommand("ON", do_on, NULL, HOST_HELP_ON, -1, -1, -1, -1); - this->AddCommand(HOSTSERV, c, MOD_UNIQUE); + this->AddCommand(HOSTSERV, new CommandHSOn(), MOD_UNIQUE); this->SetHostHelp(myHostServHelp); } }; - - /** * Add the help response to anopes /hs help output. * @param u The user who is requesting help **/ -void myHostServHelp(User * u) +void myHostServHelp(User *u) { notice_lang(s_HostServ, u, HOST_HELP_CMD_ON); } -/** - * The /hs on command. - * @param u The user who issued the command - * @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing. - **/ -int do_on(User * u) -{ - NickAlias *na; - char *vHost; - char *vIdent = NULL; - if ((na = findnick(u->nick))) { - if (na->status & NS_IDENTIFIED) { - vHost = getvHost(u->nick); - vIdent = getvIdent(u->nick); - if (vHost == NULL) { - notice_lang(s_HostServ, u, HOST_NOT_ASSIGNED); - } else { - if (vIdent) { - notice_lang(s_HostServ, u, HOST_IDENT_ACTIVATED, - vIdent, vHost); - } else { - notice_lang(s_HostServ, u, HOST_ACTIVATED, vHost); - } - ircdproto->SendVhost(u->nick, vIdent, vHost); - if (ircd->vhost) { - u->vhost = sstrdup(vHost); - } - if (ircd->vident) { - if (vIdent) - u->vident = sstrdup(vIdent); - } - set_lastmask(u); - } - } else { - notice_lang(s_HostServ, u, HOST_ID); - } - } else { - notice_lang(s_HostServ, u, HOST_NOT_REGED); - } - return MOD_CONT; -} - MODULE_INIT("hs_on", HSOn) -- cgit