added loginfo stuff
[spider.git] / perl / DXChannel.pm
index 9f7b8d180fefec8ce6f9184b0bbc122b5fc9bbc6..de9ecaa7540c5a9386853ad4610d19ebd86fbfbf 100644 (file)
@@ -78,11 +78,12 @@ use vars qw(%channels %valid);
                  inwwvfilter => '5,Input WWV Filter',
                  inspotfilter => '5,Input Spot Filter',
                  passwd => '9,Passwd List,parray',
-                 pingint => '9,Ping Interval ',
-                 nopings => '9,Ping Obs Count',
-                 lastping => '9,Ping last sent,atime',
-                 pingtime => '9,Ping totaltime,parray',
+                 pingint => '5,Ping Interval ',
+                 nopings => '5,Ping Obs Count',
+                 lastping => '5,Ping last sent,atime',
+                 pingtime => '5,Ping totaltime,parray',
                  pingave => '0,Ping ave time',
+                 logininfo => '9,Login info req,yesno',
                 );
 
 # object destruction
@@ -149,6 +150,44 @@ sub get_all
        return values(%channels);
 }
 
+#
+# gimme all the ak1a nodes
+#
+sub get_all_ak1a
+{
+       my @list = DXChannel->get_all();
+       my $ref;
+       my @out;
+       foreach $ref (@list) {
+               push @out, $ref if $ref->is_ak1a;
+       }
+       return @out;
+}
+
+# return a list of all users
+sub get_all_users
+{
+       my @list = DXChannel->get_all();
+       my $ref;
+       my @out;
+       foreach $ref (@list) {
+               push @out, $ref if $ref->is_user;
+       }
+       return @out;
+}
+
+# return a list of all user callsigns
+sub get_all_user_calls
+{
+       my @list = DXChannel->get_all();
+       my $ref;
+       my @out;
+       foreach $ref (@list) {
+               push @out, $ref->call if $ref->is_user;
+       }
+       return @out;
+}
+
 # obtain a channel object by searching for its connection reference
 sub get_by_cnum
 {
@@ -331,6 +370,22 @@ sub closeall
        }
 }
 
+#
+# Tell all the users that we have come in or out (if they want to know)
+#
+sub tell_login
+{
+       my ($self, $m) = @_;
+       
+       # send info to all logged in thingies
+       my @dxchan = get_all_users();
+       my $dxchan;
+       foreach $dxchan (@dxchan) {
+               next if $dxchan == $self;
+               $dxchan->send($dxchan->msg($m, $self->{call})) if $dxchan->{logininfo};
+       }
+}
+
 # various access routines
 
 #