9 void mo_oaccept(struct Client
*client_p
, struct Client
*source_p
, int parc
, const char *parv
[]);
11 struct Message oaccept_msgtab
= {
12 "OACCEPT", 0, 0, 0, MFLG_SLOW
,
13 {mg_unreg
, mg_not_oper
, mg_ignore
, mg_ignore
, mg_ignore
, {mo_oaccept
, 2}}
16 mapi_clist_av1 oaccept_clist
[] = { &oaccept_msgtab
, NULL
};
18 DECLARE_MODULE_AV1(omode
, NULL
, NULL
, oaccept_clist
, NULL
, NULL
, "$Id $");
21 mo_oaccept(struct Client
*client_p
, struct Client
*source_p
, int parc
, const char *parv
[])
24 struct Client
*target_p
;
26 if(!(target_p
= find_client(parv
[1])))
28 sendto_one(source_p
, form_str(ERR_NOSUCHNICK
), parv
[1]);
32 /* Don't allow someone to pointlessly fill up someone's metadata
33 * with identical OACCEPT entries. */
34 if((md
= user_metadata_find(target_p
, "OACCEPT")))
35 if(!strcmp(source_p
->id
, md
->value
))
37 sendto_one_notice(source_p
, ":You're already on %s's OACCEPT list", target_p
->name
);
41 user_metadata_add(target_p
, "OACCEPT", source_p
->id
, 1);
43 sendto_wallops_flags(UMODE_WALLOP
, &me
,
44 "OACCEPT called for %s by %s!%s@%s",
46 source_p
->name
, source_p
->username
, source_p
->host
);