Enable remote WHOWAS queries.
On ircd-seven, this will allow remote opers to see certain hidden IPs.
This commit is contained in:
parent
7fc09bc4f0
commit
7a9a9000b7
3 changed files with 20 additions and 6 deletions
|
@ -1058,6 +1058,15 @@ parameters: hunted, target nick
|
|||
|
||||
Remote WHOIS request.
|
||||
|
||||
WHOWAS
|
||||
source: user
|
||||
parameters: nickname, limit, hunted
|
||||
|
||||
Remote WHOWAS request. Not implemented in all servers.
|
||||
|
||||
Different from a local WHOWAS request, the limit is mandatory and servers should
|
||||
apply a maximum to it.
|
||||
|
||||
XLINE
|
||||
1.
|
||||
encap only
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
WHOWAS <nick> [limit]
|
||||
WHOWAS <nick> [limit] [server|nick]
|
||||
|
||||
WHOWAS will show you the last known host and whois
|
||||
information for the specified nick. Depending on the
|
||||
|
@ -8,4 +8,6 @@ may be more than one listing for a specific user.
|
|||
If a limit is specified, WHOWAS will not show more
|
||||
than that many listings.
|
||||
|
||||
The third parameter allows querying another server.
|
||||
|
||||
The WHOWAS data will expire after time.
|
||||
|
|
|
@ -45,7 +45,7 @@ static int m_whowas(struct Client *, struct Client *, int, const char **);
|
|||
|
||||
struct Message whowas_msgtab = {
|
||||
"WHOWAS", 0, 0, 0, MFLG_SLOW,
|
||||
{mg_unreg, {m_whowas, 2}, mg_ignore, mg_ignore, mg_ignore, {m_whowas, 2}}
|
||||
{mg_unreg, {m_whowas, 2}, {m_whowas, 4}, mg_ignore, mg_ignore, {m_whowas, 2}}
|
||||
};
|
||||
|
||||
mapi_clist_av1 whowas_clist[] = { &whowas_msgtab, NULL };
|
||||
|
@ -68,9 +68,11 @@ m_whowas(struct Client *client_p, struct Client *source_p, int parc, const char
|
|||
|
||||
static time_t last_used = 0L;
|
||||
|
||||
if(!IsOper(source_p))
|
||||
if(MyClient(source_p) && !IsOper(source_p))
|
||||
{
|
||||
if((last_used + ConfigFileEntry.pace_wait_simple) > rb_current_time())
|
||||
if(last_used + (parc > 3 ? ConfigFileEntry.pace_wait :
|
||||
ConfigFileEntry.pace_wait_simple
|
||||
) > rb_current_time())
|
||||
{
|
||||
sendto_one(source_p, form_str(RPL_LOAD2HI),
|
||||
me.name, source_p->name, "WHOWAS");
|
||||
|
@ -86,11 +88,12 @@ m_whowas(struct Client *client_p, struct Client *source_p, int parc, const char
|
|||
if(parc > 2)
|
||||
max = atoi(parv[2]);
|
||||
|
||||
#if 0
|
||||
if(parc > 3)
|
||||
if(hunt_server(client_p, source_p, ":%s WHOWAS %s %s :%s", 3, parc, parv))
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
if(!MyClient(source_p) && (max <= 0 || max > 20))
|
||||
max = 20;
|
||||
|
||||
if((p = strchr(parv[1], ',')))
|
||||
*p = '\0';
|
||||
|
|
Loading…
Reference in a new issue