summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--docs/EVENTS5
-rw-r--r--include/events.h1
-rw-r--r--src/core/cs_access.c8
-rw-r--r--src/core/cs_xop.c8
-rw-r--r--version.log6
6 files changed, 23 insertions, 6 deletions
diff --git a/Changes b/Changes
index f671ef03f..f3d463e3a 100644
--- a/Changes
+++ b/Changes
@@ -53,6 +53,7 @@ Anope Version S V N
12/03 F Unregistered users now have access level 0 instead of -1. [#796]
12/03 F Malformed command for InspIRCd 1.1. [#797]
12/03 F Updates to various documentation. [ #00]
+12/15 F Inconsistent use of ACESS events. [#791]
Provided by Trystan <trystan@nomadirc.net> - 2007
08/29 F Module runtime directory not always properly cleaned up. [#768]
diff --git a/docs/EVENTS b/docs/EVENTS
index deca9250f..bc8af9dce 100644
--- a/docs/EVENTS
+++ b/docs/EVENTS
@@ -163,6 +163,11 @@ Anope Internal Events
modified.
av[3] The new access level for the user.
+ EVENT_ACCESS_CLEAR
+ A channel access list has been cleared.
+ av[0] Name of the channel the access list has been cleared of
+ av[1] The nickname of the user that has cleared the access list
+
EVENT_ACCESS_DEL
An user has been deleted of a channel access list.
av[0] Name of the channel the access entry has been deleted which.
diff --git a/include/events.h b/include/events.h
index 255d2f556..3663139b5 100644
--- a/include/events.h
+++ b/include/events.h
@@ -59,5 +59,6 @@
#define EVENT_ACCESS_ADD "access_add"
#define EVENT_ACCESS_CHANGE "access_change"
#define EVENT_ACCESS_DEL "access_del"
+#define EVENT_ACCESS_CLEAR "access_clear"
#define EVENT_NICK_LOGOUT "nick_logout"
#define EVENT_CHAN_KICK "chan_kick"
diff --git a/src/core/cs_access.c b/src/core/cs_access.c
index 1b5fe8d1d..ab83055d3 100644
--- a/src/core/cs_access.c
+++ b/src/core/cs_access.c
@@ -71,8 +71,9 @@ void myChanServHelp(User * u)
}
-static int access_del(User * u, ChanAccess * access, int *perm, int uacc)
+static int access_del(User * u, ChannelInfo *ci, ChanAccess * access, int *perm, int uacc)
{
+ char *nick = access->nc->display;
if (!access->in_use)
return 0;
if (!is_services_admin(u) && uacc <= access->level) {
@@ -81,6 +82,7 @@ static int access_del(User * u, ChanAccess * access, int *perm, int uacc)
}
access->nc = NULL;
access->in_use = 0;
+ send_event(EVENT_ACCESS_DEL, 3, ci->name, u->nick, nick);
return 1;
}
@@ -93,7 +95,7 @@ static int access_del_callback(User * u, int num, va_list args)
if (num < 1 || num > ci->accesscount)
return 0;
*last = num;
- return access_del(u, &ci->access[num - 1], perm, uacc);
+ return access_del(u, ci, &ci->access[num - 1], perm, uacc);
}
@@ -405,6 +407,8 @@ int do_access(User * u)
free(ci->access);
ci->access = NULL;
ci->accesscount = 0;
+
+ send_event(EVENT_ACCESS_CLEAR, 2, ci->name, u->nick);
notice_lang(s_ChanServ, u, CHAN_ACCESS_CLEAR, ci->name);
alog("%s: %s!%s@%s (level %d) cleared access list on %s",
diff --git a/src/core/cs_xop.c b/src/core/cs_xop.c
index 2efcf9d0a..339501c33 100644
--- a/src/core/cs_xop.c
+++ b/src/core/cs_xop.c
@@ -180,9 +180,9 @@ int xop_del(User * u, ChannelInfo * ci, ChanAccess * access, int *perm, int uacc
(*perm)++;
return 0;
}
- send_event(EVENT_ACCESS_DEL, 3, ci->name, u->nick, access->nc->display);
access->nc = NULL;
access->in_use = 0;
+ send_event(EVENT_ACCESS_DEL, 3, ci->name, u->nick, access->nc->display);
return 1;
}
@@ -404,12 +404,12 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
deleted = 0;
notice_lang(s_ChanServ, u, PERMISSION_DENIED);
} else {
- send_event(EVENT_ACCESS_DEL, 3, ci->name, u->nick,
- na->nick);
notice_lang(s_ChanServ, u, xmsgs[8], access->nc->display,
ci->name);
access->nc = NULL;
access->in_use = 0;
+ send_event(EVENT_ACCESS_DEL, 3, ci->name, u->nick,
+ na->nick);
deleted = 1;
}
}
@@ -498,6 +498,8 @@ int do_xop(User * u, char *xname, int xlev, int *xmsgs)
}
}
+ send_event(EVENT_ACCESS_CLEAR, 2, ci->name, u->nick);
+
notice_lang(s_ChanServ, u, xmsgs[13], ci->name);
} else {
syntax_error(s_ChanServ, u, xname, xmsgs[0]);
diff --git a/version.log b/version.log
index cec4a0a47..4769121ea 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="19"
VERSION_EXTRA="-svn"
-VERSION_BUILD="1317"
+VERSION_BUILD="1318"
# $Log$
#
+# BUILD : 1.7.19 (1318)
+# BUGS : 791
+# NOTES : Fixed inconsistent use of ACCESS events
+#
# BUILD : 1.7.19 (1317)
# BUGS :
# NOTES : Updates some docs; by chaz