X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXChannel.pm;h=b7b2d4bb84ec21ae1d76c5a3bd2f9ba89993fc97;hb=4a8336156c820698be4933a3e36513750709926d;hp=9d52d67c3a204481a220e2feac51a833efd4357b;hpb=15a742ea0f1983282fdff272a362555afbdb99ad;p=spider.git diff --git a/perl/DXChannel.pm b/perl/DXChannel.pm index 9d52d67c..b7b2d4bb 100644 --- a/perl/DXChannel.pm +++ b/perl/DXChannel.pm @@ -4,7 +4,7 @@ # This is the base class for all channel operations, which is everything to do # with input and output really. # -# The instance variable in the outside world will be generally be called $dxchann +# The instance variable in the outside world will be generally be called $dxchan # # This class is 'inherited' (if that is the goobledegook for what I am doing) # by various other modules. The point to understand is that the 'instance variable' @@ -28,11 +28,12 @@ package DXChannel; use Msg; use DXM; use DXUtil; +use DXVars; use DXDebug; use Filter; use strict; -use vars qw(%channels %valid); +use vars qw(%channels %valid @ISA); %channels = (); @@ -74,11 +75,11 @@ use vars qw(%channels %valid); annfilter => '5,Announce Filter', wwvfilter => '5,WWV Filter', wcyfilter => '5,WCY Filter', - spotfilter => '5,Spot Filter', + spotsfilter => '5,Spot Filter', inannfilter => '5,Input Ann Filter', inwwvfilter => '5,Input WWV Filter', inwcyfilter => '5,Input WCY Filter', - inspotfilter => '5,Input Spot Filter', + inspotsfilter => '5,Input Spot Filter', passwd => '9,Passwd List,parray', pingint => '5,Ping Interval ', nopings => '5,Ping Obs Count', @@ -88,6 +89,7 @@ use vars qw(%channels %valid); logininfo => '9,Login info req,yesno', talklist => '0,Talk List,parray', cluster => '5,Cluster data', + isbasic => '9,Internal Connection', ); # object destruction @@ -102,10 +104,10 @@ sub DESTROY undef $self->{delayed}; undef $self->{annfilter}; undef $self->{wwvfilter}; - undef $self->{spotfilter}; + undef $self->{spotsfilter}; undef $self->{inannfilter}; undef $self->{inwwvfilter}; - undef $self->{inspotfilter}; + undef $self->{inspotsfilter}; undef $self->{passwd}; undef $self->{node}; } @@ -440,12 +442,16 @@ sub decode_input my $chcall = (ref $dxchan) ? $dxchan->call : "UN.KNOWN"; # the above regexp must work - if (!defined $sort || !defined $call || !defined $line || - (ref $dxchan && $call ne $chcall)) { - $data =~ s/([\x00-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg; - dbg('chan', "DUFF Line from $chcall: $data"); + unless (defined $sort && defined $call && defined $line) { +# $data =~ s/([\x00-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg; + dbg('err', "DUFF Line on $chcall: $data"); return (); } + + if(ref($dxchan) && $call ne $chcall) { + dbg('err', "DUFF Line come in for $call on wrong channel $chcall" ); + return(); + } return ($sort, $call, $line); }