1 /* +------------------------------------+
2 * | Inspire Internet Relay Chat Daemon |
3 * +------------------------------------+
5 * InspIRCd: (C) 2002-2010 InspIRCd Development Team
6 * See: http://wiki.inspircd.org/Credits
8 * This program is free but copyrighted software; see
9 * the file COPYING for details.
11 * ---------------------------------------------------
16 #ifndef __CMD_USERHOST_H__
17 #define __CMD_USERHOST_H__
19 // include the common header files
24 /** Handle /USERHOST. These command handlers can be reloaded by the core,
25 * and handle basic RFC1459 commands. Commands within modules work
26 * the same way, however, they can be fully unloaded, where these
29 class CommandUserhost : public Command
32 /** Constructor for userhost.
34 CommandUserhost ( Module* parent) : Command(parent,"USERHOST",0,1) { syntax = "<nick>{,<nick>}"; }
36 * @param parameters The parameters to the comamnd
37 * @param pcnt The number of parameters passed to teh command
38 * @param user The user issuing the command
39 * @return A value from CmdResult to indicate command success or failure.
41 CmdResult Handle(const std::vector<std::string>& parameters, User *user);
47 CmdResult CommandUserhost::Handle (const std::vector<std::string>& parameters, User *user)
49 std::string retbuf = std::string("302 ") + user->nick + " :";
51 for (unsigned int i = 0; i < parameters.size(); i++)
53 User *u = ServerInstance->FindNick(parameters[i]);
55 if ((u) && (u->registered == REG_ALL))
57 retbuf = retbuf + u->nick;
61 retbuf = retbuf + "*=";
65 retbuf = retbuf + "=";
73 retbuf = retbuf + u->ident + "@";
75 if (user->HasPrivPermission("users/auspex"))
77 retbuf = retbuf + u->host;
81 retbuf = retbuf + u->dhost;
84 retbuf = retbuf + " ";
88 user->WriteServ(retbuf);
93 COMMAND_INIT(CommandUserhost)