1. reduced the amount of stuff compared against for dup announces.
[spider.git] / perl / DXProt.pm
index b2978b5c330110f3eb4d9d757867ee602d277749..751daf04de0698fa1ff0f63cb2e7b15a6b59c5c6 100644 (file)
@@ -267,7 +267,7 @@ sub normal
                if ($pcno == 12) {              # announces
                        # announce duplicate checking
                        my $text = substr(uc unpad($field[3]), 0, $pc12_dup_lth);
-                       my $dupkey = $field[1].$field[2].$text.$field[4].$field[6];
+                       my $dupkey = $field[1].$field[2].$text;
                        if ($anndup{$dupkey}) {
                                dbg('chan', "Duplicate Announce ignored\n");
                                return;
@@ -291,7 +291,7 @@ sub normal
                                if ($decode_dk0wcy && $field[1] eq $decode_dk0wcy) {
                                        my ($hour, $k, $next, $a, $r, $sfi, $alarm) = $field[3] =~ /^Aurora Beacon\s+(\d+)UTC,\s+Kiel\s+K=(\d+),.*ed\s+K=(\d+),\s+A=(\d+),\s+R=(\d+),\s+SFI=(\d+),.*larm:\s+(\w+)/;
                                        $alarm = ($alarm =~ /^Y/i) ? ', Aurora in DE' : ''; 
-                                       my $wwv = Geomag::update($main::systime, $hour, $sfi, $a, $k, "R=$r, Next K=$next$alarm", $decode_dk0wcy, $field[5], $r);
+                                       my $wwv = Geomag::update($main::systime, $hour, $sfi, $a, $k, "R=$r, Next K=$next$alarm", $decode_dk0wcy, $field[5], $r) if $sfi && $r;
                                }
                                
                        } else {
@@ -1006,7 +1006,10 @@ sub route
        my ($self, $call, $line) = @_;
        my $cl = DXCluster->get_exact($call);
        if ($cl) {       # don't route it back down itself
-               return if ref $self && $call eq $self->{call};
+               if (ref $self && $call eq $self->{call}) {
+                       dbg('chan', "Trying to route back to source, dropped");
+                       return;
+               }
                my $hops;
                my $dxchan = $cl->{dxchan};
                if ($dxchan) {