]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Asn: Use bgpdump if it is available
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 16 Jul 2019 10:17:00 +0000 (11:17 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 16 Jul 2019 10:17:00 +0000 (11:17 +0100)
utils/asn.pl

index 42554cf5a49cbf2578f4123cece70380a7351bd7..f283d0a08e5f48d4330b89d3875092e55da28d14 100644 (file)
@@ -8,12 +8,10 @@ use File::Fetch;
 use LWP::Simple;
 use PerlIO::gzip;
 use File::Basename;
-use Net::MRT;
 use URI;
 use Data::Dumper;
 
 $LWP::Simple::ua->show_progress(1);
-$Net::MRT::USE_RFC4760 = -1;
 
 my %config = (
     asn_sources => [
@@ -55,12 +53,18 @@ GetOptions(
     "ns-server=s@" => \$ns_servers,
     "help|?"       => \$help,
     "man"          => \$man,
-    "bgpdump"      => \$use_bgpdump
 ) or pod2usage(2);
 
 pod2usage(1) if $help;
 pod2usage( -exitval => 0, -verbose => 2 ) if $man;
 
+if ( -x bgpdump ) {
+    use_bgpdump = $1;
+} else {
+    warn "bgpdump is not found will try to use Net::MRT instead, results can be incomplete";
+}
+
+
 sub download_file {
     my ($u) = @_;
 
@@ -202,6 +206,9 @@ foreach my $u ( @{ $config{'bgp_sources'} } ) {
         }
     }
     else {
+        require Net::MRT;
+        $Net::MRT::USE_RFC4760 = -1;
+
         open( my $fh, "<:gzip", $fname )
           or die "Cannot open $fname: $!";
         while (my $dd = eval {Net::MRT::mrt_read_next($fh)}) {
@@ -317,7 +324,6 @@ asn.pl [options]
    --zone-v6              IPv6 zone (default: asn6.rspamd.com)
    --file-v4              IPv4 zone file (default: ./asn.zone)
    --file-v6              IPv6 zone (default: ./asn6.zone)
-   --bgpdump              Use bgpdump utility instead of NET::MRT
    --help                 Brief help message
    --man                  Full documentation