do non blocking connects
[spider.git] / perl / DXChannel.pm
index d566c177c05f07a1ac0b76eac0419db98934010e..3e32f429cfe39e745bae74f3f3283ce160a342d4 100644 (file)
@@ -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};
 }
@@ -368,12 +370,11 @@ sub disconnect
 {
        my $self = shift;
        my $user = $self->{user};
-       my $conn = $self->{conn};
        my $call = $self->{call};
        
-       $self->finish($conn);
+       $self->finish;
        $user->close() if defined $user;
-       $conn->disconnect() if $conn;
+       $self->{conn}->disconnect;
        $self->del();
 }
 
@@ -441,7 +442,7 @@ sub decode_input
        
        # the above regexp must work
        unless (defined $sort && defined $call && defined $line) {
-               $data =~ s/([\x00-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg;
+#              $data =~ s/([\x00-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg;
                dbg('err', "DUFF Line on $chcall: $data");
                return ();
        }