projects
/
ircu2.10.12-pk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Author: Kev <klmitch@mit.edu>
[ircu2.10.12-pk.git]
/
ircd
/
m_gline.c
diff --git
a/ircd/m_gline.c
b/ircd/m_gline.c
index cee85ac400df69597cf3903a97ca4589efdbc12a..027d88e90e5144d370161d8e198fd069d84de489 100644
(file)
--- a/
ircd/m_gline.c
+++ b/
ircd/m_gline.c
@@
-131,7
+131,7
@@
ms_gline(struct Client *cptr, struct Client *sptr, int parc, char *parv[])
if (*mask == '!')
{
mask++;
if (*mask == '!')
{
mask++;
- flags |= GLINE_OPERFORCE;
+ flags |= GLINE_OPERFORCE;
/* assume oper had WIDE_GLINE */
}
if ((parc == 3 && *mask == '-') || parc == 5)
}
if ((parc == 3 && *mask == '-') || parc == 5)
@@
-151,6
+151,9
@@
ms_gline(struct Client *cptr, struct Client *sptr, int parc, char *parv[])
else
return need_more_params(sptr, "GLINE");
else
return need_more_params(sptr, "GLINE");
+ if (IsServer(sptr))
+ flags |= GLINE_FORCE;
+
if (!(target[0] == '*' && target[1] == '\0')) {
if (!(acptr = FindNServer(target)))
return 0; /* no such server */
if (!(target[0] == '*' && target[1] == '\0')) {
if (!(acptr = FindNServer(target)))
return 0; /* no such server */
@@
-296,11
+299,11
@@
mo_gline(struct Client *cptr, struct Client *sptr, int parc, char *parv[])
if (!(flags & GLINE_LOCAL) && !feature_bool(FEAT_CONFIG_OPERCMDS))
return send_reply(sptr, ERR_DISABLED, "GLINE");
if (!(flags & GLINE_LOCAL) && !feature_bool(FEAT_CONFIG_OPERCMDS))
return send_reply(sptr, ERR_DISABLED, "GLINE");
- agline = gline_find(mask, GLINE_ANY | GLINE_EXACT);
-
if (!HasPriv(sptr, (flags & GLINE_LOCAL ? PRIV_LOCAL_GLINE : PRIV_GLINE)))
return send_reply(sptr, ERR_NOPRIVILEGES);
if (!HasPriv(sptr, (flags & GLINE_LOCAL ? PRIV_LOCAL_GLINE : PRIV_GLINE)))
return send_reply(sptr, ERR_NOPRIVILEGES);
+ agline = gline_find(mask, GLINE_ANY | GLINE_EXACT);
+
if (agline) {
if (GlineIsLocal(agline) && !(flags & GLINE_LOCAL)) /* global over local */
gline_free(agline);
if (agline) {
if (GlineIsLocal(agline) && !(flags & GLINE_LOCAL)) /* global over local */
gline_free(agline);