X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_userip.c;h=0085a0cd15c29ef9788f6c1b658a210ffe797e85;hb=refs%2Fheads%2Fupstream;hp=0f66e7b8fd43d47f934b30cef9220b1d2e23a364;hpb=56f512008e81aeae915b2b7f6bcdd54b549188d3;p=ircu2.10.12-pk.git diff --git a/ircd/m_userip.c b/ircd/m_userip.c index 0f66e7b..0085a0c 100644 --- a/ircd/m_userip.c +++ b/ircd/m_userip.c @@ -84,20 +84,30 @@ #include "client.h" #include "ircd_reply.h" #include "ircd_string.h" +#include "ircd_features.h" +#include "ircd_log.h" #include "msgq.h" #include "numeric.h" #include "s_user.h" #include "struct.h" -#include +/* #include -- Now using assert in ircd_log.h */ -static void userip_formatter(struct Client* cptr, struct MsgBuf* mb) +static void userip_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, - ircd_ntoa((const char*) &(cli_ip(cptr)))); + /* Do not *EVER* change this to give opers the real IP. + * Too many scripts rely on this data and can inadvertently + * publish the user's real IP, thus breaking the security + * of +x. If an oper wants the real IP, he should go to + * /whois to get it. + */ + HasHiddenHost(cptr) && (sptr != cptr) ? + feature_str(FEAT_HIDDEN_IP) : + ircd_ntoa(&cli_ip(cptr))); } /*