use DXCluster;
use DXProtVars;
use DXCommandmode;
+use DXLog;
use Spot;
use DXProtout;
use Carp;
$self->send(pc18());
$self->state('init');
$self->pc50_t(time);
+ Log('DXProt', "$call connected");
}
#
if ($pcno == 21) { # delete a cluster from the list
my $call = uc $field[1];
- my $ref = DXCluster->get($call);
- $ref->del() if $ref;
+ if ($call ne $main::mycall) { # don't allow malicious buggers to disconnect me!
+ my $ref = DXCluster->get($call);
+ $ref->del() if $ref;
+ }
last SWITCH;
}
if ($pcno == 22) {last SWITCH;}
if ($pcno == 23 || $pcno == 27) { # WWV info
+ Geomag::update(@field[1..$#field]);
last SWITCH;
}
if ($pcno == 41) { # user info
# add this station to the user database, if required
+ $field[1] =~ s/-\d+$//o;
my $user = DXUser->get_current($field[1]);
$user = DXUser->new($field[1]) if !$user;
# now broadcast to all other ak1a nodes that I have gone
broadcast_ak1a(pc21($self->call, 'Gone.'), $self);
+ Log('DXProt', $self->call . " Disconnected");
$ref->del() if $ref;
}