+2012-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_who.c (m_who): Only set WHOSELECT_EXTRA for current
+ opers. Because privileges are kept after -o, this would let
+ de-opered clients use WHOX.
+
2012-05-07 Michael Poole <mdpoole@troilus.org>
* include/client.h (cli_account): New helper macro to return the
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':