fix badspotters and local ann/full.
[spider.git] / perl / DXChannel.pm
index f6a98cb14a1c18dad119ece5f4b3d14e60ea73a7..adf7c358ddfec793cf90cedf136da8e799355e0e 100644 (file)
@@ -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