diff options
| author | 2016-01-14 23:35:05 -0700 | |
|---|---|---|
| committer | 2016-01-14 23:35:05 -0700 | |
| commit | 9ca88a753c7c1831ebfa17ab9b7e356a131874d1 (patch) | |
| tree | 700efeb3fc6c7b56b194053d53de52bc9a799d70 /lib/ASM/Event.pm | |
| parent | b437ade6d08fb41bd2ed865fc2955fb918646dff (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.pm | 12 |
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'); } } |
