Change DXUser->get* to DXUser::get*

and also check the output of thaw more carefully, complain if it
isn't a DXUser.
This commit is contained in:
Dirk Koopman 2008-05-06 15:00:00 +01:00
parent 8182fba8e3
commit ab811a0c90
97 changed files with 132 additions and 127 deletions

View File

@ -1,3 +1,7 @@
06May08=======================================================================
1. Finally made the incompatible change of changing DXUser->get* to
DXUser::get*. This will break any third party addons or commands use these
commands.
22Apr08======================================================================= 22Apr08=======================================================================
1. Added two Xmas Is calls. 1. Added two Xmas Is calls.
15Apr08======================================================================= 15Apr08=======================================================================

View File

@ -1,4 +1,4 @@
Programming Notes ($Id$) Programming Notes
* Every command that can used on the command line lives in either this * Every command that can used on the command line lives in either this
directory ('cmd') or in a local version ('local_cmd'). You are cajoled or directory ('cmd') or in a local version ('local_cmd'). You are cajoled or
@ -98,7 +98,7 @@ Programming Notes ($Id$)
locators locators
* It is important that you remember when you have tie hashes using MLDBM * It is important that you remember when you have tie hashes using MLDBM
et al. If you do a DXUser->get($call) you will get a different (older) et al. If you do a DXUser::get($call) you will get a different (older)
thing than the one in $self->$user. This is almost certainly NOT what thing than the one in $self->$user. This is almost certainly NOT what
you want if want to modify a user that is currently connected. you want if want to modify a user that is currently connected.

View File

@ -16,7 +16,7 @@ my @f = split /\s+/, $line;
return (1, "usage: catchup <node call> all|[<msgno ...]") unless @f >= 2; return (1, "usage: catchup <node call> all|[<msgno ...]") unless @f >= 2;
my $call = uc shift @f; my $call = uc shift @f;
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
return (1, "$call not a node") unless $user && $user->sort ne 'U'; return (1, "$call not a node") unless $user && $user->sort ne 'U';
my @out; my @out;

View File

@ -18,7 +18,7 @@ my $f;
if ($self->priv >= 8) { if ($self->priv >= 8) {
if (@f && is_callsign(uc $f[0])) { if (@f && is_callsign(uc $f[0])) {
$f = uc shift @f; $f = uc shift @f;
my $uref = DXUser->get($f); my $uref = DXUser::get($f);
$call = $uref->call if $uref; $call = $uref->call if $uref;
} elsif (@f && lc $f[0] eq 'node_default' || lc $f[0] eq 'user_default') { } elsif (@f && lc $f[0] eq 'node_default' || lc $f[0] eq 'user_default') {
$call = lc shift @f; $call = lc shift @f;

View File

@ -18,7 +18,7 @@ my $f;
if ($self->priv >= 8) { if ($self->priv >= 8) {
if (@f && is_callsign(uc $f[0])) { if (@f && is_callsign(uc $f[0])) {
$f = uc shift @f; $f = uc shift @f;
my $uref = DXUser->get($f); my $uref = DXUser::get($f);
$call = $uref->call if $uref; $call = $uref->call if $uref;
} elsif (@f && lc $f[0] eq 'node_default' || lc $f[0] eq 'user_default') { } elsif (@f && lc $f[0] eq 'node_default' || lc $f[0] eq 'user_default') {
$call = lc shift @f; $call = lc shift @f;

View File

@ -18,7 +18,7 @@ my $f;
if ($self->priv >= 8) { if ($self->priv >= 8) {
if (@f && is_callsign(uc $f[0])) { if (@f && is_callsign(uc $f[0])) {
$f = uc shift @f; $f = uc shift @f;
my $uref = DXUser->get($f); my $uref = DXUser::get($f);
$call = $uref->call if $uref; $call = $uref->call if $uref;
} elsif (@f && lc $f[0] eq 'node_default' || lc $f[0] eq 'user_default') { } elsif (@f && lc $f[0] eq 'node_default' || lc $f[0] eq 'user_default') {
$call = lc shift @f; $call = lc shift @f;

View File

@ -18,7 +18,7 @@ my $f;
if ($self->priv >= 8) { if ($self->priv >= 8) {
if (@f && is_callsign(uc $f[0])) { if (@f && is_callsign(uc $f[0])) {
$f = uc shift @f; $f = uc shift @f;
my $uref = DXUser->get($f); my $uref = DXUser::get($f);
$call = $uref->call if $uref; $call = $uref->call if $uref;
} elsif (@f && lc $f[0] eq 'node_default' || lc $f[0] eq 'user_default') { } elsif (@f && lc $f[0] eq 'node_default' || lc $f[0] eq 'user_default') {
$call = lc shift @f; $call = lc shift @f;

View File

@ -18,7 +18,7 @@ my $f;
if ($self->priv >= 8) { if ($self->priv >= 8) {
if (@f && is_callsign(uc $f[0])) { if (@f && is_callsign(uc $f[0])) {
$f = uc shift @f; $f = uc shift @f;
my $uref = DXUser->get($f); my $uref = DXUser::get($f);
$call = $uref->call if $uref; $call = $uref->call if $uref;
} elsif (@f && lc $f[0] eq 'node_default' || lc $f[0] eq 'user_default') { } elsif (@f && lc $f[0] eq 'node_default' || lc $f[0] eq 'user_default') {
$call = lc shift @f; $call = lc shift @f;

View File

@ -11,7 +11,7 @@ return (1, $self->msg('already', $call)) if DXChannel::get($call);
return (1, $self->msg('outconn', $call)) if grep {$_->{call} eq $call} @main::outstanding_connects; return (1, $self->msg('outconn', $call)) if grep {$_->{call} eq $call} @main::outstanding_connects;
return (1, $self->msg('conscript', $lccall)) unless -e "$main::root/connect/$lccall"; return (1, $self->msg('conscript', $lccall)) unless -e "$main::root/connect/$lccall";
my $user = DXUser->get($call); my $user = DXUser::get($call);
return (1, $self->msg('lockout', $call)) if $user && $user->lockout; return (1, $self->msg('lockout', $call)) if $user && $user->lockout;
my @out; my @out;

View File

@ -19,7 +19,7 @@ return (1, $self->msg('e5')) if $self->priv < 9 || $self->remotecmd;
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
$user = DXUser->get($call); $user = DXUser::get($call);
unless ($user) { unless ($user) {
$user = DXUser->new($call); $user = DXUser->new($call);
$user->sort('U'); $user->sort('U');

View File

@ -22,7 +22,7 @@ foreach $call (@args) {
if ($chan) { if ($chan) {
push @out, $self->msg('nodee1', $call); push @out, $self->msg('nodee1', $call);
} else { } else {
$user = DXUser->get($call); $user = DXUser::get($call);
if ($user) { if ($user) {
$user->del; $user->del;
push @out, $self->msg('deluser', $call); push @out, $self->msg('deluser', $call);

View File

@ -29,7 +29,7 @@ use DB_File;
my ($action, $count, $key, $data); my ($action, $count, $key, $data);
for ($action = R_FIRST, $count = 0; !$DXUser::dbm->seq($key, $data, $action); $action = R_NEXT) { for ($action = R_FIRST, $count = 0; !$DXUser::dbm->seq($key, $data, $action); $action = R_NEXT) {
if ($data =~ m{(?:lat|long) =>}) { if ($data =~ m{(?:lat|long) =>}) {
my $u = DXUser->get_current($key); my $u = DXUser::get_current($key);
if ($u) { if ($u) {
my $lat = $u->lat; my $lat = $u->lat;
my $long = $u->long; my $long = $u->long;

View File

@ -22,7 +22,7 @@ if ($self->priv < 1) {
my $call; my $call;
foreach $call (@f) { foreach $call (@f) {
my $ref = DXUser->get_current($call); my $ref = DXUser::get_current($call);
if ($ref) { if ($ref) {
my $name = $ref->name; my $name = $ref->name;
my $qth = $ref->qth; my $qth = $ref->qth;

View File

@ -23,7 +23,7 @@ foreach $call (@args) {
if ($chan) { if ($chan) {
push @out, $self->msg('nodee1', $call); push @out, $self->msg('nodee1', $call);
} else { } else {
$user = DXUser->get($call); $user = DXUser::get($call);
$create = !$user; $create = !$user;
$user = DXUser->new($call) if $create; $user = DXUser->new($call) if $create;
if ($user) { if ($user) {

View File

@ -23,7 +23,7 @@ foreach $call (@args) {
if ($chan) { if ($chan) {
push @out, $self->msg('nodee1', $call); push @out, $self->msg('nodee1', $call);
} else { } else {
$user = DXUser->get($call); $user = DXUser::get($call);
$create = !$user; $create = !$user;
$user = DXUser->new($call) if $create; $user = DXUser->new($call) if $create;
if ($user) { if ($user) {

View File

@ -15,13 +15,13 @@ my @nodes;
return (1, $self->msg('e5')) if $self->priv < 6; return (1, $self->msg('e5')) if $self->priv < 6;
return (1, $self->msg('e22', $node)) unless is_callsign($node); return (1, $self->msg('e22', $node)) unless is_callsign($node);
my $user = DXUser->get_current($node); my $user = DXUser::get_current($node);
return (1, $self->msg('e13', $node)) unless $user->is_node; return (1, $self->msg('e13', $node)) unless $user->is_node;
foreach $call (@args) { foreach $call (@args) {
return (1, $self->msg('e22', $node)) unless is_callsign($call); return (1, $self->msg('e22', $node)) unless is_callsign($call);
my $u = DXUser->get_current($call); my $u = DXUser::get_current($call);
if ($u->is_node) { if ($u->is_node) {
push @nodes, $call; push @nodes, $call;
} else { } else {

View File

@ -23,7 +23,7 @@ foreach $call (@args) {
if ($chan) { if ($chan) {
push @out, $self->msg('nodee1', $call); push @out, $self->msg('nodee1', $call);
} else { } else {
$user = DXUser->get($call); $user = DXUser::get($call);
$create = !$user; $create = !$user;
$user = DXUser->new($call) if $create; $user = DXUser->new($call) if $create;
if ($user) { if ($user) {

View File

@ -15,7 +15,7 @@ my @out;
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantdxcq(1); $user->wantdxcq(1);
if ($user->wantdxitu) { if ($user->wantdxitu) {

View File

@ -15,7 +15,7 @@ my @out;
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantgrid(1); $user->wantgrid(1);
$user->put; $user->put;

View File

@ -15,7 +15,7 @@ my @out;
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantdxitu(1); $user->wantdxitu(1);
if ($user->wantdxcq) { if ($user->wantdxcq) {

View File

@ -23,7 +23,7 @@ foreach $call (@args) {
if ($chan) { if ($chan) {
push @out, $self->msg('nodee1', $call); push @out, $self->msg('nodee1', $call);
} else { } else {
$user = DXUser->get($call); $user = DXUser::get($call);
$create = !$user; $create = !$user;
$user = DXUser->new($call) if $create; $user = DXUser->new($call) if $create;
if ($user) { if ($user) {

View File

@ -15,7 +15,7 @@ my @f = split /\s+/, $line;
return (1, $self->msg('emaile1')) if !$line; return (1, $self->msg('emaile1')) if !$line;
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->email(\@f); $user->email(\@f);
$user->wantemail(1); $user->wantemail(1);

View File

@ -16,7 +16,7 @@ $line =~ s/\s+$//;
return (1, $self->msg('bbse1')) if !$line; return (1, $self->msg('bbse1')) if !$line;
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
$line = uc $line; $line = uc $line;
$user->bbs($line); $user->bbs($line);

View File

@ -17,7 +17,7 @@ $line =~ s/[{}]//g; # no braces allowed
return (1, $self->msg('hnodee1')) if !$line; return (1, $self->msg('hnodee1')) if !$line;
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
$line = uc $line; $line = uc $line;
$user->homenode($line); $user->homenode($line);

View File

@ -23,7 +23,7 @@ foreach $call (@args) {
if ($chan) { if ($chan) {
push @out, $self->msg('nodee1', $call); push @out, $self->msg('nodee1', $call);
} else { } else {
$user = DXUser->get($call); $user = DXUser::get($call);
$create = !$user; $create = !$user;
$user = DXUser->new($call) if $create; $user = DXUser->new($call) if $create;
my $f; my $f;

View File

@ -22,7 +22,7 @@ $line = lc $line;
return (1, $self->msg('lange1', join(',', @lang))) unless grep $_ eq $line, @lang; return (1, $self->msg('lange1', join(',', @lang))) unless grep $_ eq $line, @lang;
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->lang($line); $user->lang($line);
$user->put(); $user->put();

View File

@ -13,7 +13,7 @@ my @out;
return (1, $self->msg('e5')) unless $self->priv >= 5; return (1, $self->msg('e5')) unless $self->priv >= 5;
foreach my $call (@args) { foreach my $call (@args) {
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
push(@out, $self->msg('e3', 'set/localnode', $call)), next unless $user; push(@out, $self->msg('e3', 'set/localnode', $call)), next unless $user;
push(@out, $self->msg('e13', $call)), next unless $user->is_node; push(@out, $self->msg('e13', $call)), next unless $user->is_node;
my $group = $user->group || []; my $group = $user->group || [];

View File

@ -18,7 +18,7 @@ return (1, $self->msg('loce1')) if !$line;
return (1, $self->msg('loce3', uc $line)) if is_qra($line); return (1, $self->msg('loce3', uc $line)) if is_qra($line);
return (1, $self->msg('loce2', $line)) unless is_latlong($line); return (1, $self->msg('loce2', $line)) unless is_latlong($line);
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
$line = uc $line; $line = uc $line;
my ($lat, $long) = DXBearing::stoll($line); my ($lat, $long) = DXBearing::stoll($line);

View File

@ -21,7 +21,7 @@ if ($self->priv < 9) {
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
unless ($self->remotecmd || $self->inscript) { unless ($self->remotecmd || $self->inscript) {
if ($ref = DXUser->get_current($call)) { if ($ref = DXUser::get_current($call)) {
$ref->lockout(1); $ref->lockout(1);
$ref->put(); $ref->put();
push @out, $self->msg("lockout", $call); push @out, $self->msg("lockout", $call);

View File

@ -17,7 +17,7 @@ $line =~ s/[{}]//g; # no braces allowed
return (1, $self->msg('namee1')) if !$line; return (1, $self->msg('namee1')) if !$line;
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->name($line); $user->name($line);
$user->put(); $user->put();

View File

@ -23,7 +23,7 @@ foreach $call (@args) {
if ($chan) { if ($chan) {
push @out, $self->msg('nodee1', $call); push @out, $self->msg('nodee1', $call);
} else { } else {
$user = DXUser->get($call); $user = DXUser::get($call);
$create = !$user; $create = !$user;
$user = DXUser->new($call) if $create; $user = DXUser->new($call) if $create;
if ($user) { if ($user) {

View File

@ -22,7 +22,7 @@ foreach $call (@args) {
$call = uc $call; $call = uc $call;
my $dxchan = DXChannel::get($call); my $dxchan = DXChannel::get($call);
$user = $dxchan->user if $dxchan; $user = $dxchan->user if $dxchan;
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
unless ($user->is_node) { unless ($user->is_node) {
push @out, $self->msg('e13', $call); push @out, $self->msg('e13', $call);

View File

@ -25,7 +25,7 @@ if ($call) {
return (1, $self->msg('e5')); return (1, $self->msg('e5'));
} }
return (1, $self->msg('e29')) unless @args; return (1, $self->msg('e29')) unless @args;
if ($ref = DXUser->get_current($call)) { if ($ref = DXUser::get_current($call)) {
$ref->passphrase($args[0]); $ref->passphrase($args[0]);
$ref->put(); $ref->put();
push @out, $self->msg("passphrase", $call); push @out, $self->msg("passphrase", $call);

View File

@ -26,7 +26,7 @@ if ($call) {
return (1, $self->msg('e5')); return (1, $self->msg('e5'));
} }
return (1, $self->msg('e29')) unless @args; return (1, $self->msg('e29')) unless @args;
if ($ref = DXUser->get_current($call)) { if ($ref = DXUser::get_current($call)) {
$ref->passwd($args[0]); $ref->passwd($args[0]);
$ref->put(); $ref->put();
push @out, $self->msg("password", $call); push @out, $self->msg("password", $call);

View File

@ -34,7 +34,7 @@ foreach $call (@args) {
$call = uc $call; $call = uc $call;
my $dxchan = DXChannel::get($call); my $dxchan = DXChannel::get($call);
$user = $dxchan->user if $dxchan; $user = $dxchan->user if $dxchan;
$user = DXUser->get($call) unless $user; $user = DXUser::get($call) unless $user;
if ($user) { if ($user) {
unless ($user->is_node) { unless ($user->is_node) {
push @out, $self->msg('e13', $call); push @out, $self->msg('e13', $call);

View File

@ -32,7 +32,7 @@ foreach $call (@args) {
$ref->user->priv($priv); $ref->user->priv($priv);
$ref->user->put(); $ref->user->put();
} }
if (!$ref && ($user = DXUser->get($call))) { if (!$ref && ($user = DXUser::get($call))) {
$user->priv($priv); $user->priv($priv);
$user->put(); $user->put();
} }

View File

@ -16,7 +16,7 @@ $line =~ s/\s+$//;
return (1, $self->msg('e9')) if !$line; return (1, $self->msg('e9')) if !$line;
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->prompt($line); $user->prompt($line);
$self->{prompt} = $line; # this is like this because $self->prompt is a function that does something else $self->{prompt} = $line; # this is like this because $self->prompt is a function that does something else

View File

@ -17,7 +17,7 @@ $line =~ s/\s+$//;
return (1, $self->msg('qrae1')) if !$line; return (1, $self->msg('qrae1')) if !$line;
return (1, $self->msg('qrae2', $line)) unless is_qra($line); return (1, $self->msg('qrae2', $line)) unless is_qra($line);
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
my $qra = uc $line; my $qra = uc $line;
my $oldqra = $user->qra || ""; my $oldqra = $user->qra || "";

View File

@ -17,7 +17,7 @@ $line =~ s/[{}]//g; # no braces allowed
return (1, $self->msg('qthe1')) if !$line; return (1, $self->msg('qthe1')) if !$line;
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->qth($line); $user->qth($line);
$user->put(); $user->put();

View File

@ -22,7 +22,7 @@ return (1, $self->msg('reginac')) unless $main::reqreg;
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
unless ($self->remotecmd || $self->inscript) { unless ($self->remotecmd || $self->inscript) {
if ($ref = DXUser->get_current($call)) { if ($ref = DXUser::get_current($call)) {
$ref->registered(1); $ref->registered(1);
$ref->put(); $ref->put();
push @out, $self->msg("reg", $call); push @out, $self->msg("reg", $call);

View File

@ -16,7 +16,7 @@ return (1, $self->msg('e5')) if $self->priv < 9;
foreach $call (@args) { foreach $call (@args) {
return (1, $self->msg('e12')) unless is_callsign($call); return (1, $self->msg('e12')) unless is_callsign($call);
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantroutepc19(1); $user->wantroutepc19(1);
$user->put; $user->put;

View File

@ -16,7 +16,7 @@ return (1, $self->msg('e5')) if $self->priv < 9;
foreach $call (@args) { foreach $call (@args) {
return (1, $self->msg('e12')) unless is_callsign($call); return (1, $self->msg('e12')) unless is_callsign($call);
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantsendpc16(1); $user->wantsendpc16(1);
$user->put; $user->put;

View File

@ -23,7 +23,7 @@ foreach $call (@args) {
if ($chan) { if ($chan) {
push @out, $self->msg('nodee1', $call); push @out, $self->msg('nodee1', $call);
} else { } else {
$user = DXUser->get($call); $user = DXUser::get($call);
$create = !$user; $create = !$user;
$user = DXUser->new($call) if $create; $user = DXUser->new($call) if $create;
if ($user) { if ($user) {

View File

@ -20,7 +20,7 @@ return (1, $self->msg('loce1')) if !$line;
return (1, $self->msg('loce3', uc $line)) if is_qra($line); return (1, $self->msg('loce3', uc $line)) if is_qra($line);
return (1, $self->msg('loce2', $line)) unless is_latlong($line); return (1, $self->msg('loce2', $line)) unless is_latlong($line);
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
$line = uc $line; $line = uc $line;
my ($lat, $long) = DXBearing::stoll($line); my ($lat, $long) = DXBearing::stoll($line);

View File

@ -23,7 +23,7 @@ foreach $call (@args) {
if ($chan) { if ($chan) {
push @out, $self->msg('nodee1', $call); push @out, $self->msg('nodee1', $call);
} else { } else {
$user = DXUser->get($call); $user = DXUser::get($call);
return (1, $self->msg('usernf', $call)) if !$user; return (1, $self->msg('usernf', $call)) if !$user;
$user->sort('U'); $user->sort('U');
$user->priv(0); $user->priv(0);

View File

@ -14,7 +14,7 @@ return (1, $self->msg('suser1')) if @args < 3;
my $call = uc $args[0]; my $call = uc $args[0];
my $ref = DXUser->get_current($call); my $ref = DXUser::get_current($call);
my $field = $args[1]; my $field = $args[1];
my $value = $args[2]; my $value = $args[2];

View File

@ -17,7 +17,7 @@ return (1, $self->msg('db3', 'FCC USDB')) unless $USDB::present;
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantusstate(1); $user->wantusstate(1);
if ($user->wantdxitu) { if ($user->wantdxitu) {

View File

@ -16,7 +16,7 @@ return (1, $self->msg('e5')) if $self->priv < 9;
foreach $call (@args) { foreach $call (@args) {
return (1, $self->msg('e12')) unless is_callsign($call); return (1, $self->msg('e12')) unless is_callsign($call);
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantpc16(1); $user->wantpc16(1);
$user->put; $user->put;

View File

@ -16,7 +16,7 @@ return (1, $self->msg('e5')) if $self->priv < 9;
foreach $call (@args) { foreach $call (@args) {
return (1, $self->msg('e12')) unless is_callsign($call); return (1, $self->msg('e12')) unless is_callsign($call);
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantpc9x(1); $user->wantpc9x(1);
$user->put; $user->put;

View File

@ -33,7 +33,7 @@ my @in;
if (@list) { if (@list) {
foreach $l (@list) { foreach $l (@list) {
my $user = DXUser->get_current(uc $l); my $user = DXUser::get_current(uc $l);
if ($user && $user->lat && $user->long) { if ($user && $user->lat && $user->long) {
push @in, [$user->qth, $user->lat, -$user->long, uc $l ]; push @in, [$user->qth, $user->lat, -$user->long, uc $l ];
} else { } else {

View File

@ -18,7 +18,7 @@ use DB_File;
my ($action, $count, $key, $data) = (0,0,0,0); my ($action, $count, $key, $data) = (0,0,0,0);
for ($action = DXUser::R_FIRST, $count=0; !$DXUser::dbm->seq($key, $data, $action); $action = DXUser::R_NEXT) { for ($action = DXUser::R_FIRST, $count=0; !$DXUser::dbm->seq($key, $data, $action); $action = DXUser::R_NEXT) {
if ($data =~ m{isolate}) { if ($data =~ m{isolate}) {
my $u = DXUser->get_current($key); my $u = DXUser::get_current($key);
if ($u && $u->isolate) { if ($u && $u->isolate) {
push @out, $key; push @out, $key;
++$count; ++$count;

View File

@ -26,7 +26,7 @@ my ($action, $count, $key, $data) = (0,0,0,0);
eval qq{for (\$action = DXUser::R_FIRST, \$count = 0; !\$DXUser::dbm->seq(\$key, \$data, \$action); \$action = DXUser::R_NEXT) { eval qq{for (\$action = DXUser::R_FIRST, \$count = 0; !\$DXUser::dbm->seq(\$key, \$data, \$action); \$action = DXUser::R_NEXT) {
if (\$data =~ m{lockout}) { if (\$data =~ m{lockout}) {
if (\$line eq 'ALL' || \$key =~ /^$line/) { if (\$line eq 'ALL' || \$key =~ /^$line/) {
my \$ur = DXUser->get_current(\$key); my \$ur = DXUser::get_current(\$key);
if (\$ur && \$ur->lockout) { if (\$ur && \$ur->lockout) {
push \@out, \$key; push \@out, \$key;
++\$count; ++\$count;

View File

@ -40,7 +40,7 @@ my @in;
if (@list) { if (@list) {
foreach $l (@list) { foreach $l (@list) {
my $user = DXUser->get_current(uc $l); my $user = DXUser::get_current(uc $l);
if ($user && $user->lat && $user->long) { if ($user && $user->lat && $user->long) {
push @in, [$user->qth, $user->lat, -$user->long, uc $l ]; push @in, [$user->qth, $user->lat, -$user->long, uc $l ];
} else { } else {

View File

@ -39,7 +39,7 @@ if (@call == 0) {
my $call; my $call;
foreach $call (sort @call) { foreach $call (sort @call) {
my $clref = Route::Node::get($call); my $clref = Route::Node::get($call);
my $uref = DXUser->get_current($call); my $uref = DXUser::get_current($call);
my ($sort, $ver, $build); my ($sort, $ver, $build);
my $pcall = sprintf "%-11s", $call; my $pcall = sprintf "%-11s", $call;

View File

@ -24,7 +24,7 @@ my ($action, $count, $key, $data) = (0,0,0,0);
eval qq{for (\$action = DXUser::R_FIRST, \$count = 0; !\$DXUser::dbm->seq(\$key, \$data, \$action); \$action = DXUser::R_NEXT) { eval qq{for (\$action = DXUser::R_FIRST, \$count = 0; !\$DXUser::dbm->seq(\$key, \$data, \$action); \$action = DXUser::R_NEXT) {
if (\$data =~ m{registered}) { if (\$data =~ m{registered}) {
if (!\$line || (\$line && \$key =~ /^$line/)) { if (!\$line || (\$line && \$key =~ /^$line/)) {
my \$u = DXUser->get_current(\$key); my \$u = DXUser::get_current(\$key);
if (\$u && \$u->registered) { if (\$u && \$u->registered) {
push \@out, \$key; push \@out, \$key;
++\$count; ++\$count;

View File

@ -26,7 +26,7 @@ if (@f <= 2 && uc $f[0] eq 'ALL') {
} }
foreach $call (@calls) { foreach $call (@calls) {
my $ref = DXUser->get_current($call); my $ref = DXUser::get_current($call);
next if !$ref; next if !$ref;
my $lat = $ref->lat; my $lat = $ref->lat;
my $long = $ref->long; my $long = $ref->long;
@ -42,7 +42,7 @@ if (@f <= 2 && uc $f[0] eq 'ALL') {
} }
} else { } else {
foreach $call (@f) { foreach $call (@f) {
my $ref = DXUser->get_current($call); my $ref = DXUser::get_current($call);
if ($ref) { if ($ref) {
my $name = $ref->name; my $name = $ref->name;
my $qth = $ref->qth; my $qth = $ref->qth;

View File

@ -39,7 +39,7 @@ my @in;
if (@list) { if (@list) {
foreach $l (@list) { foreach $l (@list) {
my $user = DXUser->get_current(uc $l); my $user = DXUser::get_current(uc $l);
if ($user && $user->lat && $user->long) { if ($user && $user->lat && $user->long) {
push @in, [$user->qth, $user->lat, -$user->long, uc $l ]; push @in, [$user->qth, $user->lat, -$user->long, uc $l ];
} else { } else {

View File

@ -12,7 +12,7 @@ my @out;
if (@list) { if (@list) {
foreach my $call (sort @list) { foreach my $call (sort @list) {
my $uref = DXUser->get_current($call); my $uref = DXUser::get_current($call);
if ($uref) { if ($uref) {
my $name = $uref->name || '?'; my $name = $uref->name || '?';
my $qth = $uref->qth || '?'; my $qth = $uref->qth || '?';

View File

@ -26,7 +26,7 @@ if ($self->priv < 9) {
my @out; my @out;
$call = uc $call; $call = uc $call;
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
unless ($user) { unless ($user) {
$user = DXUser->new($call); $user = DXUser->new($call);
push @out, $self->msg('spf1', $call); push @out, $self->msg('spf1', $call);

View File

@ -12,7 +12,7 @@ my $call;
my @out; my @out;
foreach $call (@list) { foreach $call (@list) {
$call = uc $call; $call = uc $call;
my $ref = DXUser->get_current($call); my $ref = DXUser::get_current($call);
if ($ref) { if ($ref) {
if ($self->consort eq 'ax25') { if ($self->consort eq 'ax25') {
@out = grep { !/(Password|Privilege)/ } print_all_fields($self, $ref, "User Information $call"); @out = grep { !/(Password|Privilege)/ } print_all_fields($self, $ref, "User Information $call");

View File

@ -6,7 +6,7 @@
# #
my ($self, $line) = @_; my ($self, $line) = @_;
my $user = DXUser->get_current($self->call); my $user = DXUser::get_current($self->call);
my $passwd = $user->passwd if $user; my $passwd = $user->passwd if $user;
my $lth = length $passwd; my $lth = length $passwd;
$lth = 100 unless $lth; $lth = 100 unless $lth;

View File

@ -16,7 +16,7 @@ my @f = split /\s+/, $line;
return (1, "usage: catchup <node call> all|[<msgno ...]") unless @f >= 2; return (1, "usage: catchup <node call> all|[<msgno ...]") unless @f >= 2;
my $call = uc shift @f; my $call = uc shift @f;
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
return (1, "$call not a node") unless $user && $user->sort ne 'U'; return (1, "$call not a node") unless $user && $user->sort ne 'U';
my @out; my @out;

View File

@ -15,13 +15,13 @@ my @nodes;
return (1, $self->msg('e5')) if $self->priv < 6; return (1, $self->msg('e5')) if $self->priv < 6;
return (1, $self->msg('e22', $node)) unless is_callsign($node); return (1, $self->msg('e22', $node)) unless is_callsign($node);
my $user = DXUser->get_current($node); my $user = DXUser::get_current($node);
return (1, $self->msg('e13', $node)) unless $user->is_node; return (1, $self->msg('e13', $node)) unless $user->is_node;
foreach $call (@args) { foreach $call (@args) {
return (1, $self->msg('e22', $node)) unless is_callsign($call); return (1, $self->msg('e22', $node)) unless is_callsign($call);
my $u = DXUser->get_current($call); my $u = DXUser::get_current($call);
push @nodes, $call; push @nodes, $call;
} }

View File

@ -15,7 +15,7 @@ my @out;
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantdxcq(0); $user->wantdxcq(0);
$user->put; $user->put;

View File

@ -15,7 +15,7 @@ my @out;
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantgrid(0); $user->wantgrid(0);
$user->put; $user->put;

View File

@ -15,7 +15,7 @@ my @out;
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantdxitu(0); $user->wantdxitu(0);
$user->put; $user->put;

View File

@ -10,7 +10,7 @@ my ($self, $line) = @_;
my $call = $self->call; my $call = $self->call;
my $user; my $user;
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantemail(0); $user->wantemail(0);
$user->put(); $user->put();

View File

@ -23,7 +23,7 @@ foreach $call (@args) {
if ($chan) { if ($chan) {
push @out, $self->msg('nodee1', $call); push @out, $self->msg('nodee1', $call);
} else { } else {
$user = DXUser->get($call); $user = DXUser::get($call);
return (1, $self->msg('usernf', $call)) if !$user; return (1, $self->msg('usernf', $call)) if !$user;
$user->isolate(0); $user->isolate(0);
$user->close(); $user->close();

View File

@ -13,7 +13,7 @@ my @out;
return (1, $self->msg('e5')) unless $self->priv >= 5; return (1, $self->msg('e5')) unless $self->priv >= 5;
foreach my $call (@args) { foreach my $call (@args) {
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
push(@out, $self->msg('e3', 'set/localnode', $call)), next unless $user; push(@out, $self->msg('e3', 'set/localnode', $call)), next unless $user;
push(@out, $self->msg('e13', $call)), next unless $user->is_node; push(@out, $self->msg('e13', $call)), next unless $user->is_node;
my $group = $user->group || []; my $group = $user->group || [];

View File

@ -21,7 +21,7 @@ if ($self->priv < 9) {
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
unless ($self->remotecmd || $self->inscript) { unless ($self->remotecmd || $self->inscript) {
if ($ref = DXUser->get_current($call)) { if ($ref = DXUser::get_current($call)) {
$ref->lockout(0); $ref->lockout(0);
$ref->put(); $ref->put();
push @out, $self->msg("lockoutun", $call); push @out, $self->msg("lockoutun", $call);

View File

@ -24,7 +24,7 @@ if ($self->priv < 9) {
for (@args) { for (@args) {
my $call = uc $_; my $call = uc $_;
if ($ref = DXUser->get_current($call)) { if ($ref = DXUser::get_current($call)) {
$ref->unset_passphrase; $ref->unset_passphrase;
$ref->put(); $ref->put();
push @out, $self->msg("passphraseu", $call); push @out, $self->msg("passphraseu", $call);

View File

@ -24,7 +24,7 @@ if ($self->priv < 9) {
for (@args) { for (@args) {
my $call = uc $_; my $call = uc $_;
if ($ref = DXUser->get_current($call)) { if ($ref = DXUser::get_current($call)) {
$ref->unset_passwd; $ref->unset_passwd;
$ref->put(); $ref->put();
push @out, $self->msg("passwordu", $call); push @out, $self->msg("passwordu", $call);

View File

@ -10,7 +10,7 @@ my ($self, $line) = @_;
my $call = $self->call; my $call = $self->call;
my $user; my $user;
$user = DXUser->get_current($call); $user = DXUser::get_current($call);
if ($user) { if ($user) {
delete $user->{prompt}; delete $user->{prompt};
delete $self->{prompt}; delete $self->{prompt};

View File

@ -22,7 +22,7 @@ return (1, $self->msg('reginac')) unless $main::reqreg;
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
unless ($self->remotecmd || $self->inscript) { unless ($self->remotecmd || $self->inscript) {
if ($ref = DXUser->get_current($call)) { if ($ref = DXUser::get_current($call)) {
$ref->registered(0); $ref->registered(0);
$ref->put(); $ref->put();
my $dxchan = DXChannel::get($call); my $dxchan = DXChannel::get($call);

View File

@ -16,7 +16,7 @@ return (1, $self->msg('e5')) if $self->priv < 9;
foreach $call (@args) { foreach $call (@args) {
return (1, $self->msg('e12')) unless is_callsign($call); return (1, $self->msg('e12')) unless is_callsign($call);
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantroutepc19(0); $user->wantroutepc19(0);
$user->put; $user->put;

View File

@ -16,7 +16,7 @@ return (1, $self->msg('e5')) if $self->priv < 9;
foreach $call (@args) { foreach $call (@args) {
return (1, $self->msg('e12')) unless is_callsign($call); return (1, $self->msg('e12')) unless is_callsign($call);
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantsendpc16(0); $user->wantsendpc16(0);
$user->put; $user->put;

View File

@ -17,7 +17,7 @@ return (1, $self->msg('db3', 'FCC USDB')) unless $USDB::present;
foreach $call (@args) { foreach $call (@args) {
$call = uc $call; $call = uc $call;
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantusstate(0); $user->wantusstate(0);
$user->put; $user->put;

View File

@ -16,7 +16,7 @@ return (1, $self->msg('e5')) if $self->priv < 9;
foreach $call (@args) { foreach $call (@args) {
return (1, $self->msg('e12')) unless is_callsign($call); return (1, $self->msg('e12')) unless is_callsign($call);
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantpc16(0); $user->wantpc16(0);
$user->put; $user->put;

View File

@ -16,7 +16,7 @@ return (1, $self->msg('e5')) if $self->priv < 9;
foreach $call (@args) { foreach $call (@args) {
return (1, $self->msg('e12')) unless is_callsign($call); return (1, $self->msg('e12')) unless is_callsign($call);
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if ($user) { if ($user) {
$user->wantpc9x(0); $user->wantpc9x(0);
$user->put; $user->put;

View File

@ -971,7 +971,7 @@ sub format_dx_spot
my $comment = substr (($_[3] || ''), 0, $clth); my $comment = substr (($_[3] || ''), 0, $clth);
$comment .= ' ' x ($clth - length($comment)); $comment .= ' ' x ($clth - length($comment));
if ($self->{user}->wantgrid) { if ($self->{user}->wantgrid) {
my $ref = DXUser->get_current($_[4]); my $ref = DXUser::get_current($_[4]);
if ($ref) { if ($ref) {
$loc = $ref->qra || ''; $loc = $ref->qra || '';
$loc = ' ' . substr($loc, 0, 4) if $loc; $loc = ' ' . substr($loc, 0, 4) if $loc;
@ -1015,7 +1015,7 @@ sub dx_spot
} elsif ($self->{gtk}) { } elsif ($self->{gtk}) {
my ($dxloc, $byloc); my ($dxloc, $byloc);
my $ref = DXUser->get_current($_[4]); my $ref = DXUser::get_current($_[4]);
if ($ref) { if ($ref) {
$byloc = $ref->qra; $byloc = $ref->qra;
$byloc = substr($byloc, 0, 4) if $byloc; $byloc = substr($byloc, 0, 4) if $byloc;
@ -1023,7 +1023,7 @@ sub dx_spot
my $spot = $_[1]; my $spot = $_[1];
$spot =~ s|/\w{1,4}$||; $spot =~ s|/\w{1,4}$||;
$ref = DXUser->get_current($spot); $ref = DXUser::get_current($spot);
if ($ref) { if ($ref) {
$dxloc = $ref->qra; $dxloc = $ref->qra;
$dxloc = substr($dxloc, 0, 4) if $dxloc; $dxloc = substr($dxloc, 0, 4) if $dxloc;
@ -1191,7 +1191,7 @@ sub import_cmd
if ($dxchan) { if ($dxchan) {
@out = $s->run($dxchan, 1); @out = $s->run($dxchan, 1);
} else { } else {
my $u = DXUser->get($call); my $u = DXUser::get($call);
if ($u) { if ($u) {
$dxchan = $main::me; $dxchan = $main::me;
my $old = $dxchan->{call}; my $old = $dxchan->{call};

View File

@ -219,7 +219,7 @@ sub last_connect
{ {
my $call = uc shift; my $call = uc shift;
return $main::systime if DXChannel::get($call); return $main::systime if DXChannel::get($call);
my $user = DXUser->get($call); my $user = DXUser::get($call);
return $user ? $user->lastin : 0; return $user ? $user->lastin : 0;
} }

View File

@ -124,7 +124,7 @@ sub alloc
$self->{gotit} = []; $self->{gotit} = [];
# $self->{lastt} = $main::systime; # $self->{lastt} = $main::systime;
$self->{lines} = []; $self->{lines} = [];
$self->{private} = 1 if $bulltopriv && DXUser->get_current($self->{to}); $self->{private} = 1 if $bulltopriv && DXUser::get_current($self->{to});
return $self; return $self;
} }
@ -200,7 +200,7 @@ sub handle_28
$ref->{lastt} = $main::systime; $ref->{lastt} = $main::systime;
# look to see whether this is a non private message sent to a known callsign # look to see whether this is a non private message sent to a known callsign
my $uref = DXUser->get_current($ref->{to}); my $uref = DXUser::get_current($ref->{to});
if (is_callsign($ref->{to}) && !$ref->{private} && $uref && $uref->homenode) { if (is_callsign($ref->{to}) && !$ref->{private} && $uref && $uref->homenode) {
$ref->{private} = 1; $ref->{private} = 1;
dbg("set bull to $ref->{to} to private") if isdbg('msg'); dbg("set bull to $ref->{to} to private") if isdbg('msg');
@ -476,7 +476,7 @@ sub notify
{ {
my $ref = shift; my $ref = shift;
my $to = $ref->{to}; my $to = $ref->{to};
my $uref = DXUser->get_current($to); my $uref = DXUser::get_current($to);
my $dxchan = DXChannel::get($to); my $dxchan = DXChannel::get($to);
if (((*Net::SMTP && $email_server) || $email_prog) && $uref && $uref->wantemail) { if (((*Net::SMTP && $email_server) || $email_prog) && $uref && $uref->wantemail) {
my $email = $uref->email; my $email = $uref->email;

View File

@ -232,7 +232,7 @@ sub init
do "$main::data/hop_table.pl" if -e "$main::data/hop_table.pl"; do "$main::data/hop_table.pl" if -e "$main::data/hop_table.pl";
confess $@ if $@; confess $@ if $@;
my $user = DXUser->get($main::mycall); my $user = DXUser::get($main::mycall);
die "User $main::mycall not setup or disappeared RTFM" unless $user; die "User $main::mycall not setup or disappeared RTFM" unless $user;
$myprot_version += $main::version*100; $myprot_version += $main::version*100;
@ -1122,7 +1122,7 @@ sub process_rcmd
{ {
my ($self, $tonode, $fromnode, $user, $cmd) = @_; my ($self, $tonode, $fromnode, $user, $cmd) = @_;
if ($tonode eq $main::mycall) { if ($tonode eq $main::mycall) {
my $ref = DXUser->get_current($fromnode); my $ref = DXUser::get_current($fromnode);
my $cref = Route::Node::get($fromnode); my $cref = Route::Node::get($fromnode);
Log('rcmd', 'in', ($ref->{priv}||0), $fromnode, $cmd); Log('rcmd', 'in', ($ref->{priv}||0), $fromnode, $cmd);
if ($cmd !~ /^\s*rcmd/i && $cref && $ref && $ref->homenode && $cref->call eq $ref->homenode) { # not allowed to relay RCMDS! if ($cmd !~ /^\s*rcmd/i && $cref && $ref && $ref->homenode && $cref->call eq $ref->homenode) { # not allowed to relay RCMDS!
@ -1141,7 +1141,7 @@ sub process_rcmd
$self->send_rcmd_reply($main::mycall, $fromnode, $user, "your attempt is logged, Tut tut tut...!"); $self->send_rcmd_reply($main::mycall, $fromnode, $user, "your attempt is logged, Tut tut tut...!");
} }
} else { } else {
my $ref = DXUser->get_current($tonode); my $ref = DXUser::get_current($tonode);
if ($ref && $ref->is_clx) { if ($ref && $ref->is_clx) {
$self->route($tonode, pc84($fromnode, $tonode, $user, $cmd)); $self->route($tonode, pc84($fromnode, $tonode, $user, $cmd));
} else { } else {
@ -1166,7 +1166,7 @@ sub process_rcmd_reply
$dxchan->send($line) if $dxchan; $dxchan->send($line) if $dxchan;
} }
} else { } else {
my $ref = DXUser->get_current($tonode); my $ref = DXUser::get_current($tonode);
if ($ref && $ref->is_clx) { if ($ref && $ref->is_clx) {
$self->route($tonode, pc85($fromnode, $tonode, $user, $line)); $self->route($tonode, pc85($fromnode, $tonode, $user, $line));
} else { } else {

View File

@ -226,7 +226,7 @@ sub handle_11
# #
# fix up qra locators of known users # fix up qra locators of known users
my $user = DXUser->get_current($spot[4]); my $user = DXUser::get_current($spot[4]);
if ($user) { if ($user) {
my $qra = $user->qra; my $qra = $user->qra;
unless ($qra && is_qra($qra)) { unless ($qra && is_qra($qra)) {
@ -463,7 +463,7 @@ sub handle_16
# reject this if we think it is a node already # reject this if we think it is a node already
my $r = Route::Node::get($call); my $r = Route::Node::get($call);
my $u = DXUser->get_current($call) unless $r; my $u = DXUser::get_current($call) unless $r;
if ($r || ($u && $u->is_node)) { if ($r || ($u && $u->is_node)) {
dbg("PCPROT: $call is a node") if isdbg('chanerr'); dbg("PCPROT: $call is a node") if isdbg('chanerr');
next; next;
@ -485,7 +485,7 @@ sub handle_16
} }
# add this station to the user database, if required # add this station to the user database, if required
my $user = DXUser->get_current($ncall); my $user = DXUser::get_current($ncall);
$user = DXUser->new($call) unless $user; $user = DXUser->new($call) unless $user;
$user->homenode($parent->call) if !$user->homenode; $user->homenode($parent->call) if !$user->homenode;
$user->node($parent->call); $user->node($parent->call);
@ -568,7 +568,7 @@ sub handle_17
$parent->del_user($uref); $parent->del_user($uref);
# send info to all logged in thingies # send info to all logged in thingies
my $user = DXUser->get_current($ncall); my $user = DXUser::get_current($ncall);
$self->tell_login('logoutu', "$ncall: $ucall") if $user && $user->is_local_node; $self->tell_login('logoutu', "$ncall: $ucall") if $user && $user->is_local_node;
$self->tell_buddies('logoutb', $ucall, $ncall); $self->tell_buddies('logoutb', $ucall, $ncall);
@ -638,7 +638,7 @@ sub check_add_node
my $call = shift; my $call = shift;
# add this station to the user database, if required (don't remove SSID from nodes) # add this station to the user database, if required (don't remove SSID from nodes)
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
if (!$user) { if (!$user) {
$user = DXUser->new($call); $user = DXUser->new($call);
$user->priv(1); # I have relented and defaulted nodes $user->priv(1); # I have relented and defaulted nodes
@ -1142,7 +1142,7 @@ sub handle_41
} }
# add this station to the user database, if required # add this station to the user database, if required
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
$user = DXUser->new($call) unless $user; $user = DXUser->new($call) unless $user;
if ($sort == 1) { if ($sort == 1) {

View File

@ -237,7 +237,6 @@ sub new
sub get sub get
{ {
my $pkg = shift;
my $call = uc shift; my $call = uc shift;
my $data; my $data;
@ -248,6 +247,11 @@ sub get
# search for it # search for it
unless ($dbm->get($call, $data)) { unless ($dbm->get($call, $data)) {
$ref = decode($data); $ref = decode($data);
dbg("DXUser::get: data error on $call $!") unless $ref;
if ($ref && ref $ref ne 'DXUser') {
dbg("DXUser::get: got strange answer from decode ". ref $ref. " ignoring");
return undef;
}
$lru->put($call, $ref); $lru->put($call, $ref);
return $ref; return $ref;
} }
@ -264,14 +268,11 @@ sub get
sub get_current sub get_current
{ {
my $pkg = shift;
my $call = uc shift; my $call = uc shift;
my $dxchan = DXChannel::get($call); my $dxchan = DXChannel::get($call);
return $dxchan->user if $dxchan; return $dxchan->user if $dxchan;
my $rref = Route::get($call); return get($call);
return $rref->user if $rref && exists $rref->{user};
return $pkg->get($call);
} }
# #

View File

@ -33,7 +33,7 @@ sub handle_input
@in = (DXCommandmode::run_cmd($dxchan, $cmd)); @in = (DXCommandmode::run_cmd($dxchan, $cmd));
} else { } else {
# remote command # remote command
my $ref = DXUser->get_current($self->{o}); my $ref = DXUser::get_current($self->{o});
my $cref = Route::Node::get($self->{o}); my $cref = Route::Node::get($self->{o});
my $answer; my $answer;
@ -61,7 +61,7 @@ sub topcxx
{ {
my $self = shift; my $self = shift;
my $ref = DXUser->get_current($self->{to}); my $ref = DXUser::get_current($self->{to});
my $s; my $s;
if ($ref && $ref->is_clx && $self->{u}) { if ($ref && $ref->is_clx && $self->{u}) {

View File

@ -68,7 +68,7 @@ sub add
push @$ref, $self; push @$ref, $self;
$pings{$to} = $ref; $pings{$to} = $ref;
my $u = DXUser->get_current($to); my $u = DXUser::get_current($to);
if ($u) { if ($u) {
$u->lastping(($via || $from), $main::systime); $u->lastping(($via || $from), $main::systime);
$u->put; $u->put;
@ -137,7 +137,7 @@ sub _handle_believe
{ {
my ($from, $via) = @_; my ($from, $via) = @_;
my $user = DXUser->get_current($from); my $user = DXUser::get_current($from);
if ($user) { if ($user) {
$user->set_believe($via); $user->set_believe($via);
$user->put; $user->put;

View File

@ -40,7 +40,7 @@ sub topcxx
my $dxchan = shift; my $dxchan = shift;
my @out; my @out;
my $ref = DXUser->get_current($self->{to}); my $ref = DXUser::get_current($self->{to});
for (split /(?:%0D)?\%0A/, $self->{content}) { for (split /(?:%0D)?\%0A/, $self->{content}) {
my $line = $_; my $line = $_;
$line =~ s/\s*$//; $line =~ s/\s*$//;

View File

@ -106,7 +106,7 @@ sub dequeue
my $sort = $conn->{csort}; my $sort = $conn->{csort};
$sort = 'local' if $conn->{peerhost} =~ /127\.\d+\.\d+\.\d+$/ || $conn->{peerhost} eq '::1'; $sort = 'local' if $conn->{peerhost} =~ /127\.\d+\.\d+\.\d+$/ || $conn->{peerhost} eq '::1';
my $uref; my $uref;
if ($main::passwdreq || ($uref = DXUser->get_current($msg)) && $uref->passwd ) { if ($main::passwdreq || ($uref = DXUser::get_current($msg)) && $uref->passwd ) {
$conn->conns($msg); $conn->conns($msg);
$conn->{state} = 'WP'; $conn->{state} = 'WP';
$conn->{decho} = $conn->{echo}; $conn->{decho} = $conn->{echo};
@ -120,7 +120,7 @@ sub dequeue
$conn->disconnect; $conn->disconnect;
} }
} elsif ($conn->{state} eq 'WP' ) { } elsif ($conn->{state} eq 'WP' ) {
my $uref = DXUser->get_current($conn->{call}); my $uref = DXUser::get_current($conn->{call});
$msg =~ s/[\r\n]+$//; $msg =~ s/[\r\n]+$//;
if ($uref && $msg eq $uref->passwd) { if ($uref && $msg eq $uref->passwd) {
my $sort = $conn->{csort}; my $sort = $conn->{csort};

View File

@ -385,7 +385,7 @@ sub parse
while (@f) { while (@f) {
if ($ntoken == 0) { if ($ntoken == 0) {
if (@f && $dxchan->priv >= 8 && ((is_callsign(uc $f[0]) && DXUser->get(uc $f[0])) || $f[0] =~ /(?:node|user)_default/)) { if (@f && $dxchan->priv >= 8 && ((is_callsign(uc $f[0]) && DXUser::get(uc $f[0])) || $f[0] =~ /(?:node|user)_default/)) {
$call = shift @f; $call = shift @f;
if ($f[0] eq 'input') { if ($f[0] eq 'input') {
shift @f; shift @f;
@ -550,7 +550,7 @@ sub cmd
return $dxchan->msg('filter5') unless $line; return $dxchan->msg('filter5') unless $line;
my ($r, $filter, $fno, $user, $s) = $self->parse($dxchan, $sort, $line); my ($r, $filter, $fno, $user, $s) = $self->parse($dxchan, $sort, $line);
my $u = DXUser->get_current($user); my $u = DXUser::get_current($user);
return (1, $dxchan->msg('isow', $user)) if $u && $u->isolate; return (1, $dxchan->msg('isow', $user)) if $u && $u->isolate;
return (1, $filter) if $r; return (1, $filter) if $r;

View File

@ -27,7 +27,7 @@ sub dx_spot
my $t = shift; my $t = shift;
my $loc_spotted = ''; my $loc_spotted = '';
my $loc_spotter = ''; my $loc_spotter = '';
my $ref = DXUser->get_current($spotted); my $ref = DXUser::get_current($spotted);
if ($ref) { if ($ref) {
my $loc = $ref->qra || ''; my $loc = $ref->qra || '';
$loc_spotted =substr($loc, 0, 4) if $loc; $loc_spotted =substr($loc, 0, 4) if $loc;
@ -42,7 +42,7 @@ sub dx_spot
my $spotted_cc = (Prefix::cty_data($spotted))[5]; my $spotted_cc = (Prefix::cty_data($spotted))[5];
my $spotter_cc = (Prefix::cty_data($_[1]))[5]; my $spotter_cc = (Prefix::cty_data($_[1]))[5];
$ref = DXUser->get_current($_[1]); $ref = DXUser::get_current($_[1]);
if ($ref) { if ($ref) {
my $loc = $ref->qra || ''; my $loc = $ref->qra || '';
$loc_spotter = substr($loc, 0, 4) if $loc; $loc_spotter = substr($loc, 0, 4) if $loc;

View File

@ -11,6 +11,6 @@ use vars qw($version $subversion $build);
$version = '1.54'; $version = '1.54';
$subversion = '0'; $subversion = '0';
$build = '219'; $build = '220';
1; 1;

View File

@ -165,7 +165,7 @@ sub new_channel
# set up the basic channel info # set up the basic channel info
# is there one already connected to me - locally? # is there one already connected to me - locally?
my $user = DXUser->get_current($call); my $user = DXUser::get_current($call);
my $dxchan = DXChannel::get($call); my $dxchan = DXChannel::get($call);
if ($dxchan) { if ($dxchan) {
if ($user && $user->is_node) { if ($user && $user->is_node) {
@ -186,7 +186,7 @@ sub new_channel
# is he locked out ? # is he locked out ?
my $basecall = $call; my $basecall = $call;
$basecall =~ s/-\d+$//; $basecall =~ s/-\d+$//;
my $baseuser = DXUser->get_current($basecall); my $baseuser = DXUser::get_current($basecall);
my $lock = $user->lockout if $user; my $lock = $user->lockout if $user;
if ($baseuser && $baseuser->lockout || $lock) { if ($baseuser && $baseuser->lockout || $lock) {
if (!$user || !defined $lock || $lock) { if (!$user || !defined $lock || $lock) {
@ -387,9 +387,9 @@ DXUser->init($userfn, 1);
# look for the sysop and the alias user and complain if they aren't there # look for the sysop and the alias user and complain if they aren't there
{ {
my $ref = DXUser->get($mycall); my $ref = DXUser::get($mycall);
die "$mycall missing, run the create_sysop.pl script and please RTFM" unless $ref && $ref->priv == 9; die "$mycall missing, run the create_sysop.pl script and please RTFM" unless $ref && $ref->priv == 9;
$ref = DXUser->get($myalias); $ref = DXUser::get($myalias);
die "$myalias missing, run the create_sysop.pl script and please RTFM" unless $ref && $ref->priv == 9; die "$myalias missing, run the create_sysop.pl script and please RTFM" unless $ref && $ref->priv == 9;
} }

View File

@ -50,7 +50,7 @@ package DXUser;
@all = DXUser::get_all_calls(); @all = DXUser::get_all_calls();
for $a (@all) { for $a (@all) {
my $ref = DXUser->get($a); my $ref = DXUser::get($a);
my $s = $ref->encode() if $ref; my $s = $ref->encode() if $ref;
print OUT "'$a' => q{$s},\n" if $a; print OUT "'$a' => q{$s},\n" if $a;
$count++; $count++;

View File

@ -28,7 +28,7 @@ sub delete_it
sub create_it sub create_it
{ {
my $ref = DXUser->get(uc $mycall); my $ref = DXUser::get(uc $mycall);
$ref->del() if $ref; $ref->del() if $ref;
my $self = DXUser->new(uc $mycall); my $self = DXUser->new(uc $mycall);
@ -51,7 +51,7 @@ sub create_it
$self->close(); $self->close();
# now do one for the alias # now do one for the alias
$ref = DXUser->get(uc $myalias); $ref = DXUser::get(uc $myalias);
$ref->del() if $ref; $ref->del() if $ref;
$self = DXUser->new(uc $myalias); $self = DXUser->new(uc $myalias);

View File

@ -45,7 +45,7 @@ my @ignore;
my ($action, $key, $data) = (0,0,0); my ($action, $key, $data) = (0,0,0);
for ($action = DXUser::R_FIRST, $count = 0; !$DXUser::dbm->seq($key, $data, $action); $action = DXUser::R_NEXT) { for ($action = DXUser::R_FIRST, $count = 0; !$DXUser::dbm->seq($key, $data, $action); $action = DXUser::R_NEXT) {
if ($data =~ m{sort => '[ACRSX]'}) { if ($data =~ m{sort => '[ACRSX]'}) {
my $user = DXUser->get($key); my $user = DXUser::get($key);
if ($user->is_node) { if ($user->is_node) {
$nodes ++; $nodes ++;
if (grep $key eq $_, (@nodes, $mycall)) { if (grep $key eq $_, (@nodes, $mycall)) {

View File

@ -29,7 +29,7 @@ sub create_it
{ {
my $ref; my $ref;
while ($ref = DXUser->get(uc $mycall)) { while ($ref = DXUser::get(uc $mycall)) {
print "old call $mycall deleted\n"; print "old call $mycall deleted\n";
$ref->del(); $ref->del();
} }
@ -55,7 +55,7 @@ sub create_it
print "new call $mycall added\n"; print "new call $mycall added\n";
# now do one for the alias # now do one for the alias
while ($ref = DXUser->get($myalias)) { while ($ref = DXUser::get($myalias)) {
print "old call $myalias deleted\n"; print "old call $myalias deleted\n";
$ref->del(); $ref->del();
} }