added missing wcy filters
[spider.git] / perl / DXChannel.pm
index de9ecaa7540c5a9386853ad4610d19ebd86fbfbf..93d07c1d3a69561ed50e84a40d2f2824a6118645 100644 (file)
@@ -30,7 +30,6 @@ use DXM;
 use DXUtil;
 use DXDebug;
 use Filter;
-use Carp;
 
 use strict;
 use vars qw(%channels %valid);
@@ -52,6 +51,7 @@ use vars qw(%channels %valid);
                  consort => '5,Connection Type',
                  'sort' => '5,Type of Channel',
                  wwv => '0,Want WWV,yesno',
+                 wcy => '0,Want WCY,yesno',
                  wx => '0,Want WX,yesno',
                  talk => '0,Want Talk,yesno',
                  ann => '0,Want Announce,yesno',
@@ -73,9 +73,11 @@ use vars qw(%channels %valid);
                  delayed => '5,Delayed messages,parray',
                  annfilter => '5,Announce Filter',
                  wwvfilter => '5,WWV Filter',
+                 wcyfilter => '5,WCY Filter',
                  spotfilter => '5,Spot Filter',
                  inannfilter => '5,Input Ann Filter',
                  inwwvfilter => '5,Input WWV Filter',
+                 inwcyfilter => '5,Input WCY Filter',
                  inspotfilter => '5,Input Spot Filter',
                  passwd => '9,Passwd List,parray',
                  pingint => '5,Ping Interval ',
@@ -120,6 +122,7 @@ sub alloc
                $self->{lang} = $user->lang;
                $user->new_group() if !$user->group;
                $self->{group} = $user->group;
+               $self->{sort} = $user->sort;
        }
        $self->{startt} = $self->{t} = time;
        $self->{state} = 0;
@@ -130,6 +133,7 @@ sub alloc
        # get the filters
        $self->{spotfilter} = Filter::read_in('spots', $call, 0);
        $self->{wwvfilter} = Filter::read_in('wwv', $call, 0);
+       $self->{wcyfilter} = Filter::read_in('wcy', $call, 0);
        $self->{annfilter} = Filter::read_in('ann', $call, 0);
 
        bless $self, $pkg; 
@@ -159,7 +163,7 @@ sub get_all_ak1a
        my $ref;
        my @out;
        foreach $ref (@list) {
-               push @out, $ref if $ref->is_ak1a;
+               push @out, $ref if $ref->is_node;
        }
        return @out;
 }
@@ -216,7 +220,12 @@ sub is_bbs
        return $self->{'sort'} eq 'B';
 }
 
-# is it an ak1a cluster ?
+sub is_node
+{
+       my $self = shift;
+       return $self->{'sort'} =~ /[ACRSX]/;
+}
+# is it an ak1a node ?
 sub is_ak1a
 {
        my $self = shift;
@@ -230,13 +239,34 @@ sub is_user
        return $self->{'sort'} eq 'U';
 }
 
-# is it a connect type
-sub is_connect
+# is it a clx node
+sub is_clx
 {
        my $self = shift;
        return $self->{'sort'} eq 'C';
 }
 
+# is it a spider node
+sub is_spider
+{
+       my $self = shift;
+       return $self->{'sort'} eq 'S';
+}
+
+# is it a DXNet node
+sub is_dxnet
+{
+       my $self = shift;
+       return $self->{'sort'} eq 'X';
+}
+
+# is it a ar-cluster node
+sub is_arcluster
+{
+       my $self = shift;
+       return $self->{'sort'} eq 'R';
+}
+
 # for perl 5.004's benefit
 sub sort
 {
@@ -346,8 +376,9 @@ sub disconnect
        my $user = $self->{user};
        my $conn = $self->{conn};
        my $call = $self->{call};
+    my $nopc39 = shift || 0;
        
-       $self->finish();
+       $self->finish($nopc39);
        $conn->send_now("Z$call|bye") if $conn; # this will cause 'client' to disconnect
        $user->close() if defined $user;
        $conn->disconnect() if $conn;