73 |
{ |
{ |
74 |
if (remove_xline_match(gecos)) |
if (remove_xline_match(gecos)) |
75 |
{ |
{ |
76 |
sendto_one_notice(source_p, &me, ":X-Line for [%s] is removed", gecos); |
if (IsClient(source_p)) |
77 |
|
sendto_one_notice(source_p, &me, ":X-Line for [%s] is removed", gecos); |
78 |
sendto_realops_flags(UMODE_ALL, L_ALL, SEND_NOTICE, |
sendto_realops_flags(UMODE_ALL, L_ALL, SEND_NOTICE, |
79 |
"%s has removed the X-Line for: [%s]", |
"%s has removed the X-Line for: [%s]", |
80 |
get_oper_name(source_p), gecos); |
get_oper_name(source_p), gecos); |
81 |
ilog(LOG_TYPE_XLINE, "%s removed X-Line for [%s]", |
ilog(LOG_TYPE_XLINE, "%s removed X-Line for [%s]", |
82 |
get_oper_name(source_p), gecos); |
get_oper_name(source_p), gecos); |
83 |
} |
} |
84 |
else |
else if (IsClient(source_p)) |
85 |
sendto_one_notice(source_p, &me, ":No X-Line for %s", gecos); |
sendto_one_notice(source_p, &me, ":No X-Line for %s", gecos); |
86 |
} |
} |
87 |
|
|
125 |
return 0; |
return 0; |
126 |
} |
} |
127 |
else |
else |
128 |
cluster_a_line(source_p, "UNXLINE", CAP_CLUSTER, SHARED_UNXLINE, |
cluster_a_line(source_p, "UNXLINE", CAP_CLUSTER, SHARED_UNXLINE, "%s", gecos); |
|
"%s", gecos); |
|
129 |
|
|
130 |
remove_xline(source_p, gecos); |
remove_xline(source_p, gecos); |
131 |
return 0; |
return 0; |
146 |
static int |
static int |
147 |
ms_unxline(struct Client *source_p, int parc, char *parv[]) |
ms_unxline(struct Client *source_p, int parc, char *parv[]) |
148 |
{ |
{ |
149 |
if (parc != 3) |
if (parc != 3 || EmptyString(parv[2])) |
|
return 0; |
|
|
|
|
|
if (!IsClient(source_p) || EmptyString(parv[2])) |
|
150 |
return 0; |
return 0; |
151 |
|
|
152 |
sendto_match_servs(source_p, parv[1], CAP_CLUSTER, "UNXLINE %s %s", |
sendto_match_servs(source_p, parv[1], CAP_CLUSTER, "UNXLINE %s %s", |