X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProtout.pm;h=52d4d7281b6fee6744fc7fa957141a492f3bdd7d;hb=9d5d323e62f989f5a1edc569ed715e6aad3ec072;hp=786d78c0f8d08c8be09704d6fdbd81bd8bd06567;hpb=febdc9bd8f6cd065d217ba089fab4361e9980f35;p=spider.git diff --git a/perl/DXProtout.pm b/perl/DXProtout.pm index 786d78c0..52d4d728 100644 --- a/perl/DXProtout.pm +++ b/perl/DXProtout.pm @@ -78,8 +78,8 @@ sub pc16 my $ncall = $node->call; my @out; - my $str = "PC16^$ncall"; while (@_) { + my $str = "PC16^$ncall"; for ( ; @_ && length $str < 200; ) { my $ref = shift; $str .= sprintf "^%s %s %d", $ref->call, $ref->conf ? '*' : '-', $ref->here; @@ -165,7 +165,7 @@ sub pc24 my $self = shift; my $call = $self->call; my $flag = $self->here ? '1' : '0'; - my $hops = get_hops(24); + my $hops = shift || get_hops(24); return "PC24^$call^$flag^$hops^"; } @@ -275,9 +275,12 @@ sub pc40 # user info sub pc41 { - my ($call, $sort, $info) = @_; - my $hops = get_hops(41); - $sort = $sort ? "$sort" : '0'; + my $call = shift; + $call = shift if ref $call; + + my $sort = shift || '0'; + my $info = shift || ' '; + my $hops = shift || get_hops(41); return "PC41^$call^$sort^$info^$hops^~"; } @@ -321,9 +324,11 @@ sub pc49 # periodic update of users, plus keep link alive device (always H99) sub pc50 { - my $n = shift; - $n = 0 unless $n >= 0; - return "PC50^$main::mycall^$n^H99^"; + my $self = shift; + my $call = $self->call; + my $n = shift || '0'; + my $hops = shift || 'H99'; + return "PC50^$call^$n^$hops^"; } # generate pings