X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?p=spider.git;a=blobdiff_plain;f=perl%2FDXCluster.pm;h=2ddd2358648f28616c2c8f2f197bce61303e9d4a;hp=9560ba576a5b131132c9ef26a5ab455946449f2b;hb=7432cb12ce865030c8b0315a30764e0088a59102;hpb=e5b0e3dee551a224de284a5ba550098256fcb268 diff --git a/perl/DXCluster.pm b/perl/DXCluster.pm index 9560ba57..2ddd2358 100644 --- a/perl/DXCluster.pm +++ b/perl/DXCluster.pm @@ -20,10 +20,11 @@ use Carp; use DXDebug; use strict; +use vars qw(%cluster %valid); -my %cluster = (); # this is where we store the dxcluster database +%cluster = (); # this is where we store the dxcluster database -my %valid = ( +%valid = ( mynode => '0,Parent Node,showcall', call => '0,Callsign', confmode => '0,Conference Mode,yesno', @@ -61,13 +62,6 @@ sub get_all return values(%cluster); } -sub delcluster; -{ - my $self = shift; - delete $cluster{$self->{call}}; -} - - # return a prompt for a field sub field_prompt { @@ -138,9 +132,9 @@ sub new my $self = $pkg->alloc($dxchan, $call, $confmode, $here); $self->{mynode} = $node; - $self->{list}->{$call} = $self; # add this user to the list on this node + $node->{list}->{$call} = $self; # add this user to the list on this node $users++; - dbg('cluster', "allocating user $self->{call}\n"); + dbg('cluster', "allocating user $call to $node->{call} in cluster\n"); return $self; } @@ -151,7 +145,8 @@ sub del my $node = $self->{mynode}; delete $node->{list}->{$call}; - delete $cluster{$call}; # remove me from the cluster table + delete $DXCluster::cluster{$call}; # remove me from the cluster table + dbg('cluster', "deleting user $call from $node->{call} in cluster\n"); $users-- if $users > 0; } @@ -182,7 +177,7 @@ sub new $self->{version} = $pcversion; $self->{list} = { } ; $nodes++; - dbg('cluster', "allocating node $self->{call}\n"); + dbg('cluster', "allocating node $call to cluster\n"); return $self; } @@ -191,7 +186,7 @@ sub get_all { my $list; my @out; - foreach $list (values(%cluster)) { + foreach $list (values(%DXCluster::cluster)) { push @out, $list if $list->{pcversion}; } return @out; @@ -207,6 +202,7 @@ sub del foreach $ref (values %{$self->{list}}) { $ref->del(); # this also takes them out of this list } + dbg('cluster', "deleting node $call from cluster\n"); $nodes-- if $nodes > 0; }