1. make Spanish in set/lang & Messages 'es' instead of 'sp'
[spider.git] / perl / DXProt.pm
index bd34278f6485310d5c928f410978c43813ae6f17..3681bfbf35fee93b3c8fbbe96baf3bf716a1460a 100644 (file)
@@ -693,9 +693,8 @@ sub normal
                        # input filter if required
                        return unless $self->in_filter_route($parent);
                        
-                       my @rout = $parent->del_user($uref);
-
-                       $self->route_pc17($parent, @rout) if @rout;
+                       $parent->del_user($uref);
+                       $self->route_pc17($parent, $uref);
                        return;
                }
                
@@ -745,6 +744,13 @@ sub normal
                                next if length $call < 3; # min 3 letter callsigns
                                next if $call eq $main::mycall;
 
+                               # check that this PC19 isn't trying to alter the wrong dxchan
+                               my $dxchan = DXChannel->get($call);
+                               if ($dxchan && $dxchan != $self) {
+                                       dbg("PCPROT: PC19 from $self->{call} trying to alter wrong locally connected $call, ignored!") if isdbg('chanerr');
+                                       return;
+                               }
+
                                # update it if required
                                my $r = Route::Node::get($call);
                                my $flags = Route::here($here)|Route::conf($conf);
@@ -835,8 +841,8 @@ sub normal
                                my $node = Route::Node::get($call);
                                if ($node) {
 
-                                       my $dxchan = $node->dxchan;
-                                       if ($dxchan && $dxchan ne $self) {
+                                       my $dxchan = DXChannel->get($call);
+                                       if ($dxchan && $dxchan != $self) {
                                                dbg("PCPROT: PC21 from $self->{call} trying to alter locally connected $call, ignored!") if isdbg('chanerr');
                                                return;
                                        }
@@ -1149,7 +1155,7 @@ sub normal
                                return;
                        }
                        @field = map { unpad($_) } @field;
-                       if (WCY::dup($d,@field[3..7])) {
+                       if (WCY::dup($d)) {
                                dbg("PCPROT: Dup WCY Spot ignored\n") if isdbg('chanerr');
                                return;
                        }
@@ -1158,7 +1164,7 @@ sub normal
 
                        my $rep;
                        eval {
-                               $rep = Local::wwv($self, @field[1..12]);
+                               $rep = Local::wcy($self, @field[1..12]);
                        };
                        # dbg("Local::wcy error $@") if isdbg('local') if $@;
                        return if $rep;