fix Route::findroutes?
[spider.git] / perl / DXProtHandle.pm
index 51585f01facee34ea0e1cabc536132d9c1bafaa6..d4ef2c1d849b40fe46abbe03a3c5a9753ca658c5 100644 (file)
@@ -598,16 +598,15 @@ sub handle_18
        my $parent = Route::Node::get($self->{call});
 
        # record the type and version offered
-       if ($_[1] =~ /DXSpider Version: (\d+\.\d+)/) {
-               $self->{version} = 53 + $1;
-               $self->user->version(53 + $1);
-               $parent->version(0 + $1);
-               dbg("DXSpider version $1");
+       if (my ($version) = $_[1] =~ /DXSpider Version: (\d+\.\d+)/) {
+               $self->{version} = 53 + $version;
+               $self->user->version(53 + $version);
+               $parent->version(0 + $version);
                my ($build) = $_[1] =~ /Build: (\d+(?:\.\d+)?)/;
                $self->{build} = 0 + $build;
                $self->user->build(0 + $build);
                $parent->build(0 + $build);
-               dbg("DXSpider build $build");
+               dbg("DXSpider version $version build $build");
                unless ($self->is_spider) {
                        dbg("Change U " . $self->user->sort . " C $self->{sort} -> S");
                        $self->user->sort('S');
@@ -615,9 +614,13 @@ sub handle_18
                        $self->sort('S');
                }
 #              $self->{handle_xml}++ if DXXml::available() && $_[1] =~ /\bxml/;
-               if (!$self->{isolate} && $_[1] =~ /\bpc9x/) {
-                       $self->{do_pc9x} = 1;
-                       dbg("Do px9x set on $self->{call}");
+               if ($_[1] =~ /\bpc9x/) {
+                       if ($self->{isolate}) {
+                               dbg("pc9x recognised, but is isolated, using old protocol");
+                       } else {
+                               $self->{do_pc9x} = 1;
+                               dbg("Do px9x set on $self->{call}");
+                       }
                }
        } else {
                dbg("Unknown software");