X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_admin.c;h=8c4908ec8d59c3ec14af3042a1ffdd001bad409e;hb=refs%2Fheads%2Fupstream;hp=b918f3b674441741dadb15615b17df8bbaf849d9;hpb=cc05a230ac079fa15a2e43e6e68ef7126128cefd;p=ircu2.10.12-pk.git diff --git a/ircd/m_admin.c b/ircd/m_admin.c index b918f3b..8c4908e 100644 --- a/ircd/m_admin.c +++ b/ircd/m_admin.c @@ -84,15 +84,17 @@ #include "client.h" #include "hash.h" #include "ircd.h" -#include "ircd_policy.h" +#include "ircd_features.h" +#include "ircd_log.h" #include "ircd_reply.h" +#include "match.h" #include "msg.h" #include "numeric.h" #include "numnicks.h" #include "s_conf.h" #include "s_user.h" -#include +/* #include -- Now using assert in ircd_log.h */ static int send_admin_info(struct Client* sptr) { @@ -118,7 +120,7 @@ int m_admin(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) assert(0 != cptr); assert(cptr == sptr); - if (parc > 1) + if (parc > 1 && match(parv[1], cli_name(&me))) return send_reply(sptr, ERR_NOPRIVILEGES); return send_admin_info(sptr); @@ -135,19 +137,9 @@ int mo_admin(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) assert(0 != cptr); assert(cptr == sptr); - if (parc > 1) { - struct Client *acptr; - acptr = FindUser(parv[1]); - if (acptr) - parv[1] = cli_name(cli_user(acptr)->server); - else if (!(acptr = find_match_server(parv[1]))) - return send_reply(sptr, ERR_NOSUCHSERVER, parv[1]); - - parv[1] = cli_name(acptr); - if (hunt_server_cmd(sptr, CMD_ADMIN, cptr, HEAD_IN_SAND_REMOTE, ":%C", 1, - parc, parv) != HUNTED_ISME) - return 0; - } + if (hunt_server_cmd(sptr, CMD_ADMIN, cptr, feature_int(FEAT_HIS_REMOTE), + ":%C", 1, parc, parv) != HUNTED_ISME) + return 0; return send_admin_info(sptr); }