85 |
static int |
static int |
86 |
ms_locops(struct Client *source_p, int parc, char *parv[]) |
ms_locops(struct Client *source_p, int parc, char *parv[]) |
87 |
{ |
{ |
88 |
if (parc != 3 || EmptyString(parv[2])) |
const char *const targets = parv[1]; |
89 |
|
const char *const message = parv[2]; |
90 |
|
|
91 |
|
if (parc != 3 || EmptyString(message)) |
92 |
return 0; |
return 0; |
93 |
|
|
94 |
sendto_match_servs(source_p, parv[1], CAPAB_CLUSTER, "LOCOPS %s :%s", |
sendto_match_servs(source_p, targets, CAPAB_CLUSTER, "LOCOPS %s :%s", |
95 |
parv[1], parv[2]); |
targets, message); |
96 |
|
|
97 |
if (match(parv[1], me.name)) |
if (match(targets, me.name)) |
98 |
return 0; |
return 0; |
99 |
|
|
100 |
if (find_matching_name_conf(CONF_ULINE, source_p->servptr->name, |
if (find_matching_name_conf(CONF_ULINE, source_p->servptr->name, |
101 |
"*", "*", SHARED_LOCOPS)) |
"*", "*", SHARED_LOCOPS)) |
102 |
sendto_realops_flags(UMODE_LOCOPS, L_ALL, SEND_LOCOPS, "from %s: %s", |
sendto_realops_flags(UMODE_LOCOPS, L_ALL, SEND_LOCOPS, "from %s: %s", |
103 |
source_p->name, parv[2]); |
source_p->name, message); |
104 |
return 0; |
return 0; |
105 |
} |
} |
106 |
|
|