make Route::findroutes the basis of all routing
[spider.git] / perl / DXProtHandle.pm
index 51585f01facee34ea0e1cabc536132d9c1bafaa6..d55e15e362ecec7b5e83d8f5cac7ee563d548019 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");
@@ -1741,14 +1744,16 @@ sub handle_93
                # convert to PC10 talks where appropriate
                my $ref = Route::get($to);
                if ($ref) {
-                       my @dxchan = $ref->alldxchan;
-                       for $dxchan (@dxchan) {
+                       # just go for the "best" one for now (rather than broadcast)
+                       $dxchan = $ref->dxchan;
+#                      my @dxchan = $ref->alldxchan;
+#                      for $dxchan (@dxchan) {
                                if ($dxchan->{do_pc9x}) {
                                        $dxchan->send($line);
                                } else {
                                        $dxchan->talk($from, $to, $via, $text, $onode);
                                }
-                       }
+#                      }
                        return;
                }