Fix showdx, is_ipaddr, create_master_badip_files.pl
[spider.git] / perl / DXProtHandle.pm
index c6f50f10159ebc08dfc125eb541c9eaa8d96161d..c4f31232ea0ce2537d6b0bc8ee0f395f74b8399f 100644 (file)
@@ -49,7 +49,7 @@ use vars qw($pc11_max_age $pc23_max_age $last_pc50 $eph_restime $eph_info_restim
                        $eph_pc15_restime $pc9x_past_age $pc9x_dupe_age
                        $pc10_dupe_age $pc92_slug_changes $last_pc92_slug
                        $pc92Ain $pc92Cin $pc92Din $pc92Kin $pc9x_time_tolerance
-                       $pc92filterdef $senderverify $pc11_dwell_time $pc11_extract_route $pc92_ad_enabled $pc92c_ipaddr_enable
+                       $pc92filterdef $senderverify $pc11_dwell_time $pc11_extract_route $pc92_ad_enabled $pc92c_ipaddr_enabled
                   );
 
 $pc9x_dupe_age = 60;                   # catch loops of circular (usually) D records
@@ -863,9 +863,11 @@ sub handle_18
        $self->state('init');
 
        my $parent = Route::Node::get($self->{call});
-       
+
+       my ($software, $version, $build) = (undef, 0, 0);
+        
        # record the type and version offered
-       if (my ($software, $version) = $pc->[1] =~ /(DXSpider|CC\s*Cluster)\s+Version: (\d+(?:\.\d+)?)/i) {
+       if (($software, $version) = $pc->[1] =~ /(DXSpider|CC\s*Cluster)\s+Version: (\d+(?:\.\d+)?)/i) {
                $version += 0;
                $version += 53 if $version < 6;
                $self->{version} = $version;
@@ -885,7 +887,7 @@ sub handle_18
                        $self->sort('S');
                }
 #              $self->{handle_xml}++ if DXXml::available() && $pc->[1] =~ /\bxml/;
-       } elsif (my ($software, $version, $build) = $pc->[1] =~ /(AR-Cluster)\s+Version:\s+(\d+\.\d+).?(\d+\.\d+)?/) {
+       } elsif (($software, $version, $build) = $pc->[1] =~ /(AR-Cluster)\s+Version:\s+(\d+\.\d+).?(\d+\.\d+)?/) {
                dbg("$self->{call} = $software version $version build $build");
                $self->{version} = $version;
                $self->user->version($version);
@@ -2321,8 +2323,11 @@ sub handle_92
                $self->route_pc16($pcall, undef, $parent, @pc16) if @pc16;
        }
 
-       # broadcast it if we get here
-       $self->broadcast_route_pc9x($pcall, undef, $line, 0) unless !$pc92_ad_enabled && ($sort eq 'A' || $sort eq 'D');
+       # broadcast it if we get here (but not if it's an A or D record and pc92_ad_enabled isn't set;
+       if ($sort eq 'A' || $sort eq 'D') {
+               return unless $pc92_ad_enabled;
+       }
+       $self->broadcast_route_pc9x($pcall, undef, $line, 0);
 }
 
 # get all the routes for a thing, bearing in mind that the thing (e.g. a user)