X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=8bd96984b3278837974d71d6600c91859cf0cd2f;hb=f3adc82a0299652d929b73c718127fa38571eec5;hp=27416fab8e36952cd442263605024c3dd4dde1fb;hpb=69003f56e5249357c746999c2feec5f44c258472;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 27416fab..8bd96984 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -177,7 +177,7 @@ sub normal $spotdup{$dupkey} = $d; - my $spot = Spot::add($freq, $field[2], $d, $text, $spotter); + my $spot = Spot::add($freq, $field[2], $d, $text, $spotter, $field[7]); # send orf to the users if ($spot && $pcno == 11) { @@ -381,8 +381,32 @@ sub normal last SWITCH; } - if ($pcno == 25) { - last SWITCH; + if ($pcno == 25) { # merge request + unless ($field[1] eq $main::mycall) { + dbg('chan', "merge request to $field[1] from $field[2] ignored"); + return; + } + + Log('DXProt', "Merge request for $field[3] spots and $field[4] WWV from $field[1]"); + + # spots + if ($field[3] > 0) { + 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])); + } + } + + # wwv + if ($field[4] > 0) { + my @in = reverse Geomag::search(0, $field[4], time, 1); + my $in; + foreach $in (@in) { + $self->send(pc27(@{$in})); + } + } + return; } if (($pcno >= 28 && $pcno <= 33) || $pcno == 40 || $pcno == 42 || $pcno == 49) { # mail/file handling