use just one lastid for all pc9x sentences
[spider.git] / perl / DXProtHandle.pm
index 831d8885be1918ef565dcb2a64a28196d13e49c1..9e0f5ec4adb111ccf81f159a6368049cce558926 100644 (file)
@@ -1433,7 +1433,7 @@ sub check_pc9x_t
                # the id on it is completely unreliable. Besides, only commands
                # originating on this box will go through this code...
                if ($parent->call ne $main::mycall) {
-                       my $lastid = $parent->lastid->{$pc} || 0;
+                       my $lastid = $parent->lastid || 0;
                        if ($t < $lastid) {
                                if ($t+86400-$lastid > $pc9x_past_age) {
                                        dbg("PCPROT: dup id on $t <= $lastid, ignored") if isdbg('chanerr');
@@ -1453,7 +1453,7 @@ sub check_pc9x_t
        } elsif ($create) {
                $parent = Route::Node->new($call);
        }
-       $parent->lastid->{$pc} = $t if $parent;
+       $parent->lastid($t) if $parent;
 
        return $parent;
 }
@@ -1770,24 +1770,21 @@ sub handle_93
                }
 
                # convert to PC10 talks where appropriate
-               if ($ref) {
-                       # just go for the "best" one for now (rather than broadcast)
-                       $dxchan = $ref->dxchan;
+               # just go for the "best" one for now (rather than broadcast)
+               $dxchan = $ref->dxchan;
 
-                       # check it...
-                       if (ref $dxchan && $dxchan->isa('DXChannel')) {
-                               if ($dxchan->{do_pc9x}) {
-                                       $dxchan->send($line);
-                               } else {
-                                       $dxchan->talk($from, $to, $via, $text, $onode);
-                               }
+               # check it...
+               if (ref $dxchan && $dxchan->isa('DXChannel')) {
+                       if ($dxchan->{do_pc9x}) {
+                               $dxchan->send($line);
                        } else {
-                               dbg("ERROR: $to -> $dxchan is not a DXChannel! (convert to pc10)");
+                               $dxchan->talk($from, $to, $via, $text, $onode);
                        }
-                       return;
+               } else {
+                       dbg("ERROR: $to -> $dxchan is not a DXChannel! (convert to pc10)");
                }
+               return;
 
-               # otherwise, drop through and allow it to be broadcast
        } elsif ($to eq '*' || $to eq 'SYSOP' || $to eq 'WX') {
                # announces
                my $sysop = $to eq 'SYSOP' ? '*' : ' ';