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);