X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXChannel.pm;h=b0208f103e0e6093df5b654c133420e110780419;hb=006e37a3ce71aa3c55833fade25f9c6c11734bb6;hp=f6a98cb14a1c18dad119ece5f4b3d14e60ea73a7;hpb=24e7cdb8b2479635fc99952e007bfc6c4c7f6a9a;p=spider.git diff --git a/perl/DXChannel.pm b/perl/DXChannel.pm index f6a98cb1..b0208f10 100644 --- a/perl/DXChannel.pm +++ b/perl/DXChannel.pm @@ -117,13 +117,15 @@ $count = 0; ve7cc => '0,VE7CC program special,yesno', lastmsgpoll => '0,Last Msg Poll,atime', inscript => '9,In a script,yesno', + handle_xml => '9,Handles XML,yesno', inqueue => '9,Input Queue,parray', - lastcf => '1,Last CF Update,atime', ); use vars qw($VERSION $BRANCH); - -main::mkver($VERSION = q$Revision$); +$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); +$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0)); +$main::build += $VERSION; +$main::branch += $BRANCH; # object destruction sub DESTROY @@ -176,6 +178,14 @@ sub alloc return $channels{$call} = $self; } +# rebless this channel as something else +sub rebless +{ + my $self = shift; + my $class = shift; + return $channels{$self->{call}} = bless $self, $class; +} + sub rec { my ($self, $msg) = @_; @@ -189,7 +199,8 @@ sub rec # obtain a channel object by callsign [$obj = DXChannel::get($call)] sub get { - return $channels{$_[0]}; + my $call = shift; + return $channels{$call}; } # obtain all the channel objects @@ -264,7 +275,7 @@ sub is_bbs sub is_node { my $self = shift; - return $self->{'sort'} =~ /[ACRSX]/; + return $self->{'sort'} =~ /[ACRSXW]/; } # is it an ak1a node ? sub is_ak1a @@ -385,15 +396,16 @@ sub send # this is always later and always data return unless $conn; my $call = $self->{call}; - for (@_) { -# chomp; - my @lines = split /\n/; - for (@lines) { - $conn->send_later("D$call|$_"); - dbg("-> D $call $_") if isdbg('chan'); + foreach my $l (@_) { + for (ref $l ? @$l : $l) { + my @lines = split /\n/; + for (@lines) { + $conn->send_later("D$call|$_"); + dbg("-> D $call $_") if isdbg('chan'); + } } } - $self->{t} = time; + $self->{t} = $main::systime; } # send a file (always later)