Change DXUser->get* to DXUser::get*
[spider.git] / cmd / forward / opername.pl
index c8db65673b02e2484bab44b4f6159be67d25226d..08333724dcd251233635828b602483251e16b4c6 100644 (file)
@@ -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 < 5); 
-} 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);