3
0
mirror of https://github.com/pragma-/pbot.git synced 2025-02-18 14:30:40 +01:00

Show enter-abuse warning message just before it would temp-ban

Fix address_to_mask regex
This commit is contained in:
Pragmatic Software 2015-07-21 13:44:42 -07:00
parent 9194f3e871
commit 8cdad15207

View File

@ -315,7 +315,8 @@ sub check_flood {
if($messages->[1]->{timestamp} - $messages->[0]->{timestamp} <= $enter_abuse_time_threshold) { if($messages->[1]->{timestamp} - $messages->[0]->{timestamp} <= $enter_abuse_time_threshold) {
if(++$channel_data->{enter_abuse} >= $enter_abuse_threshold - 1) { if(++$channel_data->{enter_abuse} >= $enter_abuse_threshold - 1) {
$channel_data->{enter_abuse} = $enter_abuse_threshold / 2 - 1; $channel_data->{enter_abuse} = $enter_abuse_threshold / 2 - 1;
if(++$channel_data->{enter_abuses} >= $enter_abuse_max_offenses) { $channel_data->{enter_abuses}++;
if($channel_data->{enter_abuses} >= $enter_abuse_max_offenses) {
if($self->{pbot}->{registry}->get_value('antiflood', 'enforce')) { if($self->{pbot}->{registry}->get_value('antiflood', 'enforce')) {
if ($self->{pbot}->{chanops}->has_ban_timeout($channel, "*!$user\@" . address_to_mask($host))) { if ($self->{pbot}->{chanops}->has_ban_timeout($channel, "*!$user\@" . address_to_mask($host))) {
$self->{pbot}->{logger}->log("$nick $channel enter abuse offense disregarded due to existing ban\n"); $self->{pbot}->{logger}->log("$nick $channel enter abuse offense disregarded due to existing ban\n");
@ -334,6 +335,11 @@ sub check_flood {
} }
} else { } else {
$self->{pbot}->{logger}->log("$nick $channel enter abuses counter incremented to " . $channel_data->{enter_abuses} . "\n") if $debug_enter_abuse; $self->{pbot}->{logger}->log("$nick $channel enter abuses counter incremented to " . $channel_data->{enter_abuses} . "\n") if $debug_enter_abuse;
if ($channel_data->{enter_abuses} == $enter_abuse_max_offenses - 1 && $channel_data->{enter_abuse} == $enter_abuse_threshold / 2 - 1) {
if($self->{pbot}->{registry}->get_value('antiflood', 'enforce')) {
$self->{pbot}->{conn}->privmsg($channel, "$nick: Please stop abusing the enter key. Feel free to type longer messages and to take a moment to think of anything else to say before you hit that enter key.");
}
}
} }
} else { } else {
$self->{pbot}->{logger}->log("$nick $channel enter abuse counter incremented to " . $channel_data->{enter_abuse} . "\n") if $debug_enter_abuse; $self->{pbot}->{logger}->log("$nick $channel enter abuse counter incremented to " . $channel_data->{enter_abuse} . "\n") if $debug_enter_abuse;
@ -527,14 +533,14 @@ sub address_to_mask {
when($_ <= 191) { $banmask = "$a.$b.*"; } when($_ <= 191) { $banmask = "$a.$b.*"; }
default { $banmask = "$a.$b.$c.*"; } default { $banmask = "$a.$b.$c.*"; }
} }
} elsif($address =~ m/[^.]+\.([^.]+\.[^.]+)$/) {
$banmask = "*.$1";
} elsif($address =~ m{^gateway/([^/]+)/([^/]+)/}) { } elsif($address =~ m{^gateway/([^/]+)/([^/]+)/}) {
$banmask = "gateway/$1/$2/*"; $banmask = "gateway/$1/$2/*";
} elsif($address =~ m{^nat/([^/]+)/}) { } elsif($address =~ m{^nat/([^/]+)/}) {
$banmask = "nat/$1/*"; $banmask = "nat/$1/*";
} elsif($address =~ m/^([^:]+):([^:]*):([^:]*):([^:]*):([^:]*):([^:]*):([^:]*):([^:]*)$/) { } elsif($address =~ m/^([^:]+):([^:]*):([^:]*):([^:]*):([^:]*):([^:]*):([^:]*):([^:]*)$/) {
$banmask = "$1:$2:*"; $banmask = "$1:$2:*";
} elsif($address =~ m/[^.]+\.([^.]+\.[a-zA-Z]+)$/) {
$banmask = "*.$1";
} else { } else {
$banmask = $address; $banmask = $address;
} }