X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProtout.pm;h=38ace99bf1cb2ac9e379943a31805f58c23582e1;hb=0a9f4ecdeafc3212539009b96c64baa977555454;hp=a2b69a67a9f4dfbba796dfaa5c17e7dde67aa184;hpb=72568e838d146250a78fea19bd4bbafc760e6a49;p=spider.git diff --git a/perl/DXProtout.pm b/perl/DXProtout.pm index a2b69a67..38ace99b 100644 --- a/perl/DXProtout.pm +++ b/perl/DXProtout.pm @@ -360,6 +360,40 @@ sub pc85 return "PC85^$tonode^$fromnode^$call^$msg^~"; } +# spider route broadcast +sub pc90 +{ + my $node = shift; + my $sort = shift; + my @out; + my $dxchan; + + while (@_) { + my $str = ''; + for (; @_ && length $str <= 230;) { + my $ref = shift; + my $call = $ref->call; + my $flag = 0; + + $flag += 1 if $ref->here; + $flag += 2 if $ref->conf; + if ($ref->is_node) { + my $ping = int($ref->pingave * 10); + $str .= "^N$flag$call,$ping"; + my $v = $ref->build || $ref->version; + $str .= ",$v" if defined $v; + } else { + $str .= "^U$flag$call"; + } + } + push @out, $str if $str; + } + my $n = @out; + my $h = get_hops(90); + @out = map { sprintf "PC90^%s^%X^%s%d%s^%s^", $node->call, $main::systime, $sort, --$n, $_, $h } @out; + return @out; +} + 1; __END__