6 static const char identified_desc
[] = "Provides the IDENTIFIED server-to-server command";
8 static void m_identified(struct MsgBuf
*, struct Client
*, struct Client
*, int, const char *[]);
10 static struct Message identified_msgtab
= {
11 "IDENTIFIED", 0, 0, 0, 0,
12 {mg_ignore
, mg_ignore
, mg_ignore
, mg_ignore
, {m_identified
, 3}, mg_ignore
}
15 static mapi_clist_av1 identified_clist
[] = {
20 static void identified_nick_change(void *);
21 static void identified_burst_client(void *);
23 static mapi_hfn_list_av1 identified_hfnlist
[] = {
24 { "local_nick_change", identified_nick_change
, HOOK_MONITOR
},
25 { "remote_nick_change", identified_nick_change
, HOOK_MONITOR
},
26 { "burst_client", identified_burst_client
},
30 static void m_identified(struct MsgBuf
*msgbuf
, struct Client
*client_p
, struct Client
*source_p
, int parc
, const char *parv
[])
32 struct Client
*target_p
= find_person(parv
[1]);
33 const char *nick
= parv
[2];
38 if (irccmp(target_p
->name
, nick
))
41 if (parc
> 3 && irccmp(parv
[3], "OFF") == 0)
42 ClearIdentified(target_p
);
44 SetIdentified(target_p
);
47 static void identified_nick_change(void *data_
)
49 hook_cdata
*data
= data_
;
50 const char *oldnick
= data
->arg1
, *newnick
= data
->arg2
;
52 if (irccmp(oldnick
, newnick
) != 0)
53 ClearIdentified(data
->client
);
56 static void identified_burst_client(void *data_
)
58 hook_data_client
*data
= data_
;
60 if (IsIdentified(data
->target
))
61 sendto_one(data
->client
, ":%s ENCAP * IDENTIFIED %s :%s", me
.id
, use_id(data
->target
), data
->target
->name
);
64 DECLARE_MODULE_AV2(identified
, NULL
, NULL
, identified_clist
, NULL
, identified_hfnlist
, NULL
, NULL
, identified_desc
);