From: djk Date: Mon, 31 May 1999 21:26:41 +0000 (+0000) Subject: added routing for PC26/27 and also put the correct callsign on the end X-Git-Tag: R_1_29~1 X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=7bba989c01312790704a42153bbd87bcbb3f084e;p=spider.git added routing for PC26/27 and also put the correct callsign on the end --- diff --git a/Changes b/Changes index 4bad93c4..17dfc5b2 100644 --- a/Changes +++ b/Changes @@ -7,6 +7,7 @@ connecting node's privilege level). 4. Removed a warning from client.pl 5. routed external DB commands and drop them (for now) locally 6. routed external mail commands (ie those addressed elsewhere) +7. routed external PC26/27 lines 25May99======================================================================= 1. try to make the lastin value correct even for local users 2. got rid of the stupid bug that failed to print out the offline message diff --git a/cmd/who.pl b/cmd/who.pl index 34e2d0a4..d001d9c3 100644 --- a/cmd/who.pl +++ b/cmd/who.pl @@ -17,7 +17,7 @@ foreach $dxchan ( sort {$a->call cmp $b->call} DXChannel::get_all ) { my $call = $dxchan->call(); my $t = cldatetime($dxchan->user->lastin); my $sort = $dxchan->is_ak1a() ? "NODE" : "USER"; - my $name = $dxchan->user->name; + my $name = $dxchan->user->name || " "; push @out, sprintf "%10s $sort $t $name", $call; } diff --git a/perl/DXProt.pm b/perl/DXProt.pm index d8c8e899..aa848eb7 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -178,6 +178,14 @@ sub normal } if ($pcno == 11 || $pcno == 26) { # dx spot + + # route 'foreign' pc26s + if ($pcno == 26) { + if ($field[7] ne $main::mycall) { + route($field[7], $line); + return; + } + } # if this is a 'nodx' node then ignore it last SWITCH if grep $field[7] =~ /^$_/, @DXProt::nodx_node; @@ -441,6 +449,15 @@ sub normal } if ($pcno == 23 || $pcno == 27) { # WWV info + + # route 'foreign' pc27s + if ($pcno == 27) { + if ($field[8] ne $main::mycall) { + route($field[8], $line); + return; + } + } + # do some de-duping my $d = cltounix($field[1], sprintf("%02d18Z", $field[2])); my $sfi = unpad($field[3]); @@ -495,7 +512,7 @@ sub normal my @in = reverse Spot::search(1, undef, undef, 0, $field[3]-1); my $in; foreach $in (@in) { - $self->send(pc26(@{$in}[0..4], $in->[7])); + $self->send(pc26(@{$in}[0..4], $field[2])); } } @@ -504,12 +521,12 @@ sub normal my @in = reverse Geomag::search(0, $field[4], time, 1); my $in; foreach $in (@in) { - $self->send(pc27(@{$in})); + $self->send(pc27(@{$in}[0..5], $field[2])); } } return; } - + if (($pcno >= 28 && $pcno <= 33) || $pcno == 40 || $pcno == 42 || $pcno == 49) { # mail/file handling if ($field[1] eq $main::mycall) { DXMsg::process($self, $line); diff --git a/perl/Spot.pm b/perl/Spot.pm index 75e34c11..2e4afe02 100644 --- a/perl/Spot.pm +++ b/perl/Spot.pm @@ -140,7 +140,7 @@ sub search $fp->close; # close any open files - for ($i = 0; $i < $maxdays; ++$i) { # look thru $maxdays worth of files only + for ($i = $count = 0; $i < $maxdays; ++$i) { # look thru $maxdays worth of files only my @now = Julian::sub(@fromdate, $i); # but you can pick which $maxdays worth last if Julian::cmp(@now, @todate) <= 0;