X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_who.c;h=49df47580c393399ab9e97ae91a50dced6cc19a6;hb=refs%2Fheads%2Fupstream-ssl;hp=ffc78f716a3aee829734fa0899a6a4ec21d6272d;hpb=38e87885082aa7c1c6d8dbf1188e59f9c76f8819;p=ircu2.10.12-pk.git diff --git a/ircd/m_who.c b/ircd/m_who.c index ffc78f7..49df475 100644 --- a/ircd/m_who.c +++ b/ircd/m_who.c @@ -184,10 +184,11 @@ int m_who(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) continue; case 'x': case 'X': - bitsel |= WHOSELECT_EXTRA; - if (HasPriv(sptr, PRIV_WHOX)) - log_write(LS_WHO, L_INFO, LOG_NOSNOTICE, "%#C WHO %s %s", sptr, - (BadPtr(parv[3]) ? parv[1] : parv[3]), parv[2]); + if (HasPriv(sptr, PRIV_WHOX) && IsAnOper(sptr)) { + bitsel |= WHOSELECT_EXTRA; + log_write(LS_WHO, L_INFO, LOG_NOSNOTICE, "%#C WHO %s %s", sptr, + (BadPtr(parv[3]) ? parv[1] : parv[3]), parv[2]); + } continue; case 'n': case 'N': @@ -271,6 +272,10 @@ int m_who(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) case 'A': fields |= WHO_FIELD_ACC; break; + case 'o': + case 'O': + fields |= WHO_FIELD_OPL; + break; default: break; } @@ -462,11 +467,10 @@ int m_who(struct Client* cptr, struct Client* sptr, int parc, char* parv[]) /* Make a clean mask suitable to be sent in the "end of" */ if (mask && (p = strchr(mask, ' '))) *p = '\0'; - send_reply(sptr, RPL_ENDOFWHO, BadPtr(mask) ? "*" : mask); - /* Notify the user if we decided that his query was too long */ if (counter < 0) - send_reply(sptr, ERR_QUERYTOOLONG, "WHO"); + send_reply(sptr, ERR_QUERYTOOLONG, BadPtr(mask) ? "*" : mask); + send_reply(sptr, RPL_ENDOFWHO, BadPtr(mask) ? "*" : mask); return 0; }