|
@@ -864,16 +864,6 @@ static void resetmasks(struct chanset_t *chan, masklist *m, maskrec *mrec, maskr
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-void check_this_mask(const char type, struct chanset_t *chan, char *mask, bool sticky)
|
|
|
|
|
-{
|
|
|
|
|
- if (type == 'b')
|
|
|
|
|
- check_this_ban(chan, mask, sticky);
|
|
|
|
|
- else if (type == 'e')
|
|
|
|
|
- check_this_exempt(chan, mask, sticky);
|
|
|
|
|
- else if (type == 'I')
|
|
|
|
|
- check_this_invite(chan, mask, sticky);
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
void check_this_ban(struct chanset_t *chan, char *banmask, bool sticky)
|
|
void check_this_ban(struct chanset_t *chan, char *banmask, bool sticky)
|
|
|
{
|
|
{
|
|
|
if (!me_op(chan))
|
|
if (!me_op(chan))
|
|
@@ -2586,9 +2576,6 @@ static int gotpart(char *from, char *msg)
|
|
|
strcpy(uhost, from);
|
|
strcpy(uhost, from);
|
|
|
nick = splitnick(&uhost);
|
|
nick = splitnick(&uhost);
|
|
|
|
|
|
|
|
- memberlist* m = ismember(chan, nick);
|
|
|
|
|
- struct userrec *u = m->user;
|
|
|
|
|
-
|
|
|
|
|
if (chan && !shouldjoin(chan) && match_my_nick(nick)) {
|
|
if (chan && !shouldjoin(chan) && match_my_nick(nick)) {
|
|
|
irc_log(chan, "Parting");
|
|
irc_log(chan, "Parting");
|
|
|
clear_channel(chan, 1);
|
|
clear_channel(chan, 1);
|
|
@@ -2596,6 +2583,9 @@ static int gotpart(char *from, char *msg)
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
if (chan && !channel_pending(chan)) {
|
|
if (chan && !channel_pending(chan)) {
|
|
|
|
|
+ memberlist* m = ismember(chan, nick);
|
|
|
|
|
+ struct userrec *u = (m && m->user) ? m->user : get_user_by_host(from);
|
|
|
|
|
+
|
|
|
if (!channel_active(chan)) {
|
|
if (!channel_active(chan)) {
|
|
|
/* whoa! */
|
|
/* whoa! */
|
|
|
putlog(LOG_ERRORS, "*", "confused bot: guess I'm on %s and didn't realize it", chan->dname);
|
|
putlog(LOG_ERRORS, "*", "confused bot: guess I'm on %s and didn't realize it", chan->dname);
|
|
@@ -2605,9 +2595,10 @@ static int gotpart(char *from, char *msg)
|
|
|
}
|
|
}
|
|
|
set_handle_laston(chan->dname, u, now);
|
|
set_handle_laston(chan->dname, u, now);
|
|
|
|
|
|
|
|
- detect_chan_flood(nick, m->userhost, from, chan, FLOOD_JOIN, NULL);
|
|
|
|
|
-
|
|
|
|
|
- killmember(chan, nick);
|
|
|
|
|
|
|
+ if (m) {
|
|
|
|
|
+ detect_chan_flood(nick, m->userhost, from, chan, FLOOD_JOIN, NULL);
|
|
|
|
|
+ killmember(chan, nick);
|
|
|
|
|
+ }
|
|
|
if (msg[0])
|
|
if (msg[0])
|
|
|
irc_log(chan, "Part: %s (%s) [%s]", nick, uhost, msg);
|
|
irc_log(chan, "Part: %s (%s) [%s]", nick, uhost, msg);
|
|
|
else
|
|
else
|