use Exporter;
@ISA = qw(Exporter);
-use Carp;
use DXDebug;
+use Carp;
use strict;
use vars qw(%cluster %valid);
$node->{list}->{$call} = $self; # add this user to the list on this node
$users++;
dbg('cluster', "allocating user $call to $node->{call} in cluster\n");
+ $node->update_users;
return $self;
}
my $self = shift;
my $call = $self->{call};
my $node = $self->{mynode};
-
+
delete $node->{list}->{$call};
delete $DXCluster::cluster{$call}; # remove me from the cluster table
dbg('cluster', "deleting user $call from $node->{call} in cluster\n");
+ $node->update_users;
$users-- if $users > 0;
}
foreach $ref (values %{$self->{list}}) {
$ref->del(); # this also takes them out of this list
}
+ delete $DXCluster::cluster{$call}; # remove me from the cluster table
dbg('cluster', "deleting node $call from cluster\n");
$nodes-- if $nodes > 0;
}
sub update_users
{
my $self = shift;
- if (%{$self->{list}}) {
- $self->{users} = scalar %{$self->{list}};
+ my $count = shift;
+ if ((keys %{$self->{list}})) {
+ $self->{users} = (keys %{$self->{list}});
} else {
- $self->{users} = shift;
+ $self->{users} = $count;
}
}