X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fforward%2Fopername.pl;h=08333724dcd251233635828b602483251e16b4c6;hb=ab811a0c902225075a9bd69749f65594079433a9;hp=df10d231303fb487ff12017d428884d7116908da;hpb=2c10c7a8dbbd04bd0021cfc650d20f81b9df887c;p=spider.git diff --git a/cmd/forward/opername.pl b/cmd/forward/opername.pl index df10d231..08333724 100644 --- a/cmd/forward/opername.pl +++ b/cmd/forward/opername.pl @@ -9,25 +9,54 @@ my ($self, $line) = @_; my @f = split /\s+/, uc $line; my @out; -my $call; -if (@f == 0) { - return (1, $self->('e6')) if ($self->priv < 1); -} else { - foreach $call (@f) { - my $ref = DXUser->get_current($call); - if ($ref) { - my $name = $ref->name; - my $qth = $ref->qth; - my $lat = $ref->lat; - my $long = $ref->long; - my $node = $ref->homenode; - my $latlong = DXBearing::lltos($lat, $long) if $lat && $long; - DXProt::broadcast_ak1a(DXProt::pc41($call, 1, $name), $DXProt::me) if $name; - DXProt::broadcast_ak1a(DXProt::pc41($call, 2, $qth), $DXProt::me) if $qth; - DXProt::broadcast_ak1a(DXProt::pc41($call, 3, $latlong), $DXProt::me) if $latlong; - DXProt::broadcast_ak1a(DXProt::pc41($call, 4, $node), $DXProt::me) if $node; +if ($self->priv < 1) { + if (@f == 0) { + push @f, $self->call; + } else { + return (1, $self->msg('e5')); + } +} elsif (@f == 0) { + return (1, $self->msg('e6')); +} + +my $call; +foreach $call (@f) { + my $ref = DXUser::get_current($call); + if ($ref) { + my $name = $ref->name; + my $qth = $ref->qth; + my $lat = $ref->lat; + my $long = $ref->long; + my $node = $ref->homenode; + my $qra = $ref->qra; + my $latlong = DXBearing::lltos($lat, $long) if $lat && $long; + if ($name) { + my $l = DXProt::pc41($main::me, $call, 1, $name); + DXProt::eph_dup($l); + DXChannel::broadcast_all_nodes($l, $main::me) ; + } + if ($qth) { + my $l = DXProt::pc41($call, 2, $qth); + DXProt::eph_dup($l); + DXChannel::broadcast_all_nodes($l, $main::me) ; + } + if ($latlong) { + my $l = DXProt::pc41($call, 3, $latlong); + DXProt::eph_dup($l); + DXChannel::broadcast_all_nodes($l, $main::me) ; + } + if ($node) { + my $l = DXProt::pc41($call, 4, $node); + DXProt::eph_dup($l); + DXChannel::broadcast_all_nodes($l, $main::me) ; + } + if ($qra) { + my $l = DXProt::pc41($call, 5, $qra); + DXProt::eph_dup($l); + DXChannel::broadcast_all_nodes($l, $main::me) ; } } } + return (1, @out);