summaryrefslogtreecommitdiffstats
path: root/lib/ASM/Event.pm
diff options
context:
space:
mode:
authorLibravatarDoug Freed <dwfreed@mtu.edu>2016-01-14 23:35:05 -0700
committerLibravatarDoug Freed <dwfreed@mtu.edu>2016-01-14 23:35:05 -0700
commit9ca88a753c7c1831ebfa17ab9b7e356a131874d1 (patch)
tree700efeb3fc6c7b56b194053d53de52bc9a799d70 /lib/ASM/Event.pm
parentb437ade6d08fb41bd2ed865fc2955fb918646dff (diff)
Fix async DNS resolution to handle things better
- Handles CNAMEs now - Handles multiple IPs for a given host
Diffstat (limited to 'lib/ASM/Event.pm')
-rw-r--r--lib/ASM/Event.pm12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/ASM/Event.pm b/lib/ASM/Event.pm
index b22552c..8cf6be5 100644
--- a/lib/ASM/Event.pm
+++ b/lib/ASM/Event.pm
@@ -720,8 +720,10 @@ sub on_banlist
$::event->{DNS}->add(
sub {
my ($packet) = @_;
- $ip = ASM::Util->stripResp($packet);
- $::sc{$chan}{ipbans}{$ip} = { bannedBy => $banner, bannedOn => $bantime } if defined($ip);
+ my @ips = ASM::Util->stripResp($packet);
+ foreach $ip (@ips) {
+ $::sc{$chan}{ipbans}{$ip} = { bannedBy => $banner, bannedOn => $bantime };
+ }
}, $host, 'A');
}
}
@@ -752,8 +754,10 @@ sub on_quietlist
$::event->{DNS}->add(
sub {
my ($packet) = @_;
- $ip = ASM::Util->stripResp($packet);
- $::sc{$chan}{ipquiets}{$ip} = { bannedBy => $banner, bannedOn => $bantime } if defined($ip);
+ my @ips = ASM::Util->stripResp($packet);
+ foreach $ip (@ips) {
+ $::sc{$chan}{ipquiets}{$ip} = { bannedBy => $banner, bannedOn => $bantime };
+ }
}, $host, 'A');
}
}