X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_userhost.c;h=c6654ebcd094a9ecc5ee7f381d22b326ca881cbf;hb=refs%2Fheads%2Fupstream;hp=cf862e94ba5664b0004dec9a1927d10068155489;hpb=56f512008e81aeae915b2b7f6bcdd54b549188d3;p=ircu2.10.12-pk.git diff --git a/ircd/m_userhost.c b/ircd/m_userhost.c index cf862e9..c6654eb 100644 --- a/ircd/m_userhost.c +++ b/ircd/m_userhost.c @@ -82,6 +82,7 @@ #include "config.h" #include "client.h" +#include "ircd_log.h" #include "ircd_reply.h" #include "ircd_string.h" #include "msgq.h" @@ -89,15 +90,22 @@ #include "s_user.h" #include "struct.h" -#include +/* #include -- Now using assert in ircd_log.h */ -static void userhost_formatter(struct Client* cptr, struct MsgBuf* mb) +static void userhost_formatter(struct Client* cptr, struct Client *sptr, struct MsgBuf* mb) { assert(IsUser(cptr)); msgq_append(0, mb, "%s%s=%c%s@%s", cli_name(cptr), - HasPriv(cptr, PRIV_DISPLAY) ? "*" : "", + SeeOper(sptr,cptr) ? "*" : "", cli_user(cptr)->away ? '-' : '+', cli_user(cptr)->username, - cli_user(cptr)->host); + /* Do not *EVER* change this to give opers the real host. + * Too many scripts rely on this data and can inadvertently + * publish the user's real host, thus breaking the security + * of +x. If an oper wants the real host, he should go to + * /whois to get it. + */ + HasHiddenHost(cptr) && (sptr != cptr) ? + cli_user(cptr)->host : cli_user(cptr)->realhost); } /*