+2002-04-15 beware <steendijk@tomaatnet.nl>
+
+ * ircd/m_whois.c: Fixed /whois servermask nomatch bug
+ where normal users could use the function to discover servers,
+ also the NOSUCHSERVER check code was missing.
+
2002-04-14 Alex Badea <vampire@p16.pub.ro>
* ircd/ircd_parser.y: fixed cli_info(&me) not being set
/* If remote queries are disabled, then use the *second* parameter of
* of whois, so /whois nick nick still works.
*/
- acptr = FindUser(parv[2]);
-#else
- acptr = FindUser(parv[1]);
+ if (!IsOper(sptr))
+ parv[1] = parv[2];
#endif
+
+ acptr = FindUser(parv[1]);
+
+ if (IsOper(sptr) && !(acptr))
+ {
+ send_reply(sptr, ERR_NOSUCHSERVER, parv[1]);
+ return 0;
+ }
+
if (acptr)
+ {
parv[1] = cli_name(cli_user(acptr)->server);
- if (hunt_server_cmd(sptr, CMD_WHOIS, cptr, 0, "%C :%s", 1, parc, parv) !=
- HUNTED_ISME)
+ if (hunt_server_cmd(sptr, CMD_WHOIS, cptr, 0, "%C :%s", 1, parc, parv) !=
+ HUNTED_ISME)
return 0;
- parv[1] = parv[2];
+ parv[1] = parv[2];
+ }
}
for (tmp = parv[1]; (nick = ircd_strtok(&p, tmp, ",")); tmp = 0)
return 0;
}
+