diff options
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | docs/EVENTS | 5 | ||||
-rw-r--r-- | include/events.h | 1 | ||||
-rw-r--r-- | src/core/cs_access.c | 8 | ||||
-rw-r--r-- | src/core/cs_xop.c | 8 | ||||
-rw-r--r-- | version.log | 6 |
6 files changed, 23 insertions, 6 deletions
@@ -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 |