diff --git a/docs/signals.txt b/docs/signals.txt index a6bd067e..893d6661 100644 --- a/docs/signals.txt +++ b/docs/signals.txt @@ -147,7 +147,7 @@ massjoin.c: mode-lists.c: "ban new", CHANNEL_REC, BAN_REC - "ban remove", CHANNEL_REC, BAN_REC + "ban remove", CHANNEL_REC, BAN_REC, char *setby modes.c: "channel mode changed", CHANNEL_REC, char *setby diff --git a/src/irc/core/mode-lists.c b/src/irc/core/mode-lists.c index ee60f1b2..a275d49f 100644 --- a/src/irc/core/mode-lists.c +++ b/src/irc/core/mode-lists.c @@ -88,7 +88,7 @@ BAN_REC *banlist_add(IRC_CHANNEL_REC *channel, const char *ban, return rec; } -void banlist_remove(IRC_CHANNEL_REC *channel, const char *ban) +void banlist_remove(IRC_CHANNEL_REC *channel, const char *ban, const char *nick) { BAN_REC *rec; @@ -97,7 +97,7 @@ void banlist_remove(IRC_CHANNEL_REC *channel, const char *ban) rec = banlist_find(channel->banlist, ban); if (rec != NULL) { - signal_emit("ban remove", 2, channel, rec); + signal_emit("ban remove", 3, channel, rec, nick); ban_free(&channel->banlist, rec); } } diff --git a/src/irc/core/mode-lists.h b/src/irc/core/mode-lists.h index 105e1245..cd3bc0bf 100644 --- a/src/irc/core/mode-lists.h +++ b/src/irc/core/mode-lists.h @@ -10,7 +10,7 @@ typedef struct { BAN_REC *banlist_find(GSList *list, const char *ban); BAN_REC *banlist_add(IRC_CHANNEL_REC *channel, const char *ban, const char *nick, time_t time); -void banlist_remove(IRC_CHANNEL_REC *channel, const char *ban); +void banlist_remove(IRC_CHANNEL_REC *channel, const char *ban, const char *nick); BAN_REC *banlist_exception_add(IRC_CHANNEL_REC *channel, const char *ban, const char *nick, time_t time); void banlist_exception_remove(IRC_CHANNEL_REC *channel, const char *ban); diff --git a/src/irc/core/modes.c b/src/irc/core/modes.c index e7a8e63b..cac897ec 100644 --- a/src/irc/core/modes.c +++ b/src/irc/core/modes.c @@ -207,7 +207,7 @@ void modes_type_a(IRC_CHANNEL_REC *channel, const char *setby, char type, if (type == '+') banlist_add(channel, arg, setby, time(NULL)); else - banlist_remove(channel, arg); + banlist_remove(channel, arg, setby); } }