X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXChannel.pm;h=dce4fb5002bb1d277b76527e9e3e81749565cf1a;hb=8ebfb28af6e8ec81acbd7de0f5e19fab4c32a8b6;hp=eafa76ad527083212ee0d8a31c12485e23f01dc4;hpb=6b19958cbe351af8d5462f4e0e03b87875eec16a;p=spider.git diff --git a/perl/DXChannel.pm b/perl/DXChannel.pm index eafa76ad..dce4fb50 100644 --- a/perl/DXChannel.pm +++ b/perl/DXChannel.pm @@ -78,6 +78,12 @@ use vars qw(%channels %valid); inwwvfilter => '5,Input WWV Filter', inspotfilter => '5,Input Spot Filter', passwd => '9,Passwd List,parray', + pingint => '9,Ping Interval ', + nopings => '9,Ping Obs Count', + lastping => '9,Ping last sent,atime', + pingrec => '9,Pings no rec', + pingtime => '9,Ping totaltime', + pingave => '0,Ping ave time', ); # object destruction @@ -169,7 +175,7 @@ sub del sub is_bbs { my $self = shift; - return $self->{sort} eq 'B'; + return $self->{'sort'} eq 'B'; } # is it an ak1a cluster ? @@ -193,19 +199,30 @@ sub is_connect return $self->{'sort'} eq 'C'; } +# for perl 5.004's benefit +sub sort +{ + my $self = shift; + return @_ ? $self->{'sort'} = shift : $self->{'sort'} ; +} + # handle out going messages, immediately without waiting for the select to drop # this could, in theory, block sub send_now { my $self = shift; my $conn = $self->{conn}; + return unless $conn; my $sort = shift; my $call = $self->{call}; for (@_) { chomp; - $conn->send_now("$sort$call|$_") if $conn; - dbg('chan', "-> $sort $call $_") if $conn; + my @lines = split /\n/; + for (@lines) { + $conn->send_now("$sort$call|$_"); + dbg('chan', "-> $sort $call $_"); + } } $self->{t} = time; } @@ -217,12 +234,16 @@ sub send # this is always later and always data { my $self = shift; my $conn = $self->{conn}; + return unless $conn; my $call = $self->{call}; for (@_) { chomp; - $conn->send_later("D$call|$_") if $conn; - dbg('chan', "-> D $call $_") if $conn; + my @lines = split /\n/; + for (@lines) { + $conn->send_later("D$call|$_"); + dbg('chan', "-> D $call $_"); + } } $self->{t} = time; }