From: minima Date: Fri, 4 May 2001 01:37:45 +0000 (+0000) Subject: fix pc16 and p19 count X-Git-Tag: R_1_47a~1 X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=c2c7c24afb2bd2126da043c45bc35ddbf5c327ac;p=spider.git fix pc16 and p19 count --- diff --git a/Changes b/Changes index 77493fda..8a2cde4a 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,6 @@ +03May01======================================================================= +1. It appears that for ages now, not enough PC19 and PC16s are being sent +if you have more than one of them. Sigh.. 02May01======================================================================= 1. put an upper limit on the number of concurrent errors allowed in command mode (20). This should disconnect runaway spot suckers.... diff --git a/perl/DXProtout.pm b/perl/DXProtout.pm index 6ee4fbcc..6894ac78 100644 --- a/perl/DXProtout.pm +++ b/perl/DXProtout.pm @@ -76,17 +76,17 @@ sub pc16 { my $self = shift; my @out; + my $i; - foreach (@_) { + for ($i = 0; @_; ) { my $str = "PC16^$self->{call}"; - my $i; - - for ($i = 0; @_ > 0 && $i < $DXProt::pc16_max_users; $i++) { + for ( ; @_ && $i < $DXProt::pc16_max_users; $i++) { my $ref = shift; $str .= sprintf "^%s %s %d", $ref->call, $ref->confmode ? '*' : '-', $ref->here; } $str .= sprintf "^%s^", get_hops(16); push @out, $str; + $i = 0; } return (@out); } @@ -112,12 +112,14 @@ sub pc19 { my $self = shift; my @out; + my $i; + - while (@_) { + for ($i = 0; @_; ) { my $str = "PC19"; my $i; - for ($i = 0; @_ && $i < $DXProt::pc19_max_nodes; $i++) { + for (; @_ && $i < $DXProt::pc19_max_nodes; $i++) { my $ref = shift; my $here = $ref->{here} ? '1' : '0'; my $confmode = $ref->{confmode} ? '1' : '0'; @@ -125,6 +127,7 @@ sub pc19 } $str .= sprintf "^%s^", get_hops(19); push @out, $str; + $i = 0; } return @out; }