2 * +W snomask: Displays if a local user has done a WHOIS request on you.
3 * derived from spy_whois_notice.c.
5 * If #define OPERONLY is removed, then any user can use this snomask
6 * (you need to put ~servnotice in oper_only_umodes for this to work).
15 #include "s_newconf.h"
17 /* undefine this to allow anyone to receive whois notifications */
20 static const char sno_desc
[] =
21 "Adds server notice mask +W that allows "
27 " to receive notices for when a WHOIS has been done on them";
29 void show_whois(hook_data_client
*);
31 mapi_hfn_list_av1 whois_hfnlist
[] = {
32 {"doing_whois", (hookfn
) show_whois
},
33 {"doing_whois_global", (hookfn
) show_whois
},
40 snomask_modes
['W'] = find_snomask_slot();
48 snomask_modes
['W'] = 0;
51 DECLARE_MODULE_AV2(sno_whois
, init
, fini
, NULL
, NULL
, whois_hfnlist
, NULL
, NULL
, sno_desc
);
54 show_whois(hook_data_client
*data
)
56 struct Client
*source_p
= data
->client
;
57 struct Client
*target_p
= data
->target
;
59 if(MyClient(target_p
) &&
61 IsOperGeneral(target_p
) &&
63 (source_p
!= target_p
) &&
64 (target_p
->snomask
& snomask_modes
['W']))
66 sendto_one_notice(target_p
,
67 ":*** Notice -- %s (%s@%s) is doing a whois on you [%s]",
69 source_p
->username
, source_p
->host
,
70 source_p
->servptr
->name
);