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=======================================================================
1. Added two Xmas Is calls.
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
directory ('cmd') or in a local version ('local_cmd'). You are cajoled or
@ -98,7 +98,7 @@ Programming Notes ($Id$)
locators
* 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
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;
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';
my @out;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -15,13 +15,13 @@ my @nodes;
return (1, $self->msg('e5')) if $self->priv < 6;
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;
foreach $call (@args) {
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) {
push @nodes, $call;
} else {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -13,7 +13,7 @@ my @out;
return (1, $self->msg('e5')) unless $self->priv >= 5;
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('e13', $call)), next unless $user->is_node;
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('loce2', $line)) unless is_latlong($line);
$user = DXUser->get_current($call);
$user = DXUser::get_current($call);
if ($user) {
$line = uc $line;
my ($lat, $long) = DXBearing::stoll($line);

View File

@ -21,7 +21,7 @@ if ($self->priv < 9) {
foreach $call (@args) {
$call = uc $call;
unless ($self->remotecmd || $self->inscript) {
if ($ref = DXUser->get_current($call)) {
if ($ref = DXUser::get_current($call)) {
$ref->lockout(1);
$ref->put();
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;
$user = DXUser->get_current($call);
$user = DXUser::get_current($call);
if ($user) {
$user->name($line);
$user->put();

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -23,7 +23,7 @@ foreach $call (@args) {
if ($chan) {
push @out, $self->msg('nodee1', $call);
} else {
$user = DXUser->get($call);
$user = DXUser::get($call);
$create = !$user;
$user = DXUser->new($call) if $create;
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('loce2', $line)) unless is_latlong($line);
$user = DXUser->get_current($call);
$user = DXUser::get_current($call);
if ($user) {
$line = uc $line;
my ($lat, $long) = DXBearing::stoll($line);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -18,7 +18,7 @@ use DB_File;
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) {
if ($data =~ m{isolate}) {
my $u = DXUser->get_current($key);
my $u = DXUser::get_current($key);
if ($u && $u->isolate) {
push @out, $key;
++$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) {
if (\$data =~ m{lockout}) {
if (\$line eq 'ALL' || \$key =~ /^$line/) {
my \$ur = DXUser->get_current(\$key);
my \$ur = DXUser::get_current(\$key);
if (\$ur && \$ur->lockout) {
push \@out, \$key;
++\$count;

View File

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

View File

@ -39,7 +39,7 @@ if (@call == 0) {
my $call;
foreach $call (sort @call) {
my $clref = Route::Node::get($call);
my $uref = DXUser->get_current($call);
my $uref = DXUser::get_current($call);
my ($sort, $ver, $build);
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) {
if (\$data =~ m{registered}) {
if (!\$line || (\$line && \$key =~ /^$line/)) {
my \$u = DXUser->get_current(\$key);
my \$u = DXUser::get_current(\$key);
if (\$u && \$u->registered) {
push \@out, \$key;
++\$count;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -6,7 +6,7 @@
#
my ($self, $line) = @_;
my $user = DXUser->get_current($self->call);
my $user = DXUser::get_current($self->call);
my $passwd = $user->passwd if $user;
my $lth = length $passwd;
$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;
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';
my @out;

View File

@ -15,13 +15,13 @@ my @nodes;
return (1, $self->msg('e5')) if $self->priv < 6;
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;
foreach $call (@args) {
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;
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -13,7 +13,7 @@ my @out;
return (1, $self->msg('e5')) unless $self->priv >= 5;
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('e13', $call)), next unless $user->is_node;
my $group = $user->group || [];

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -124,7 +124,7 @@ sub alloc
$self->{gotit} = [];
# $self->{lastt} = $main::systime;
$self->{lines} = [];
$self->{private} = 1 if $bulltopriv && DXUser->get_current($self->{to});
$self->{private} = 1 if $bulltopriv && DXUser::get_current($self->{to});
return $self;
}
@ -200,7 +200,7 @@ sub handle_28
$ref->{lastt} = $main::systime;
# 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) {
$ref->{private} = 1;
dbg("set bull to $ref->{to} to private") if isdbg('msg');
@ -476,7 +476,7 @@ sub notify
{
my $ref = shift;
my $to = $ref->{to};
my $uref = DXUser->get_current($to);
my $uref = DXUser::get_current($to);
my $dxchan = DXChannel::get($to);
if (((*Net::SMTP && $email_server) || $email_prog) && $uref && $uref->wantemail) {
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";
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;
$myprot_version += $main::version*100;
@ -1122,7 +1122,7 @@ sub process_rcmd
{
my ($self, $tonode, $fromnode, $user, $cmd) = @_;
if ($tonode eq $main::mycall) {
my $ref = DXUser->get_current($fromnode);
my $ref = DXUser::get_current($fromnode);
my $cref = Route::Node::get($fromnode);
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!
@ -1141,7 +1141,7 @@ sub process_rcmd
$self->send_rcmd_reply($main::mycall, $fromnode, $user, "your attempt is logged, Tut tut tut...!");
}
} else {
my $ref = DXUser->get_current($tonode);
my $ref = DXUser::get_current($tonode);
if ($ref && $ref->is_clx) {
$self->route($tonode, pc84($fromnode, $tonode, $user, $cmd));
} else {
@ -1166,7 +1166,7 @@ sub process_rcmd_reply
$dxchan->send($line) if $dxchan;
}
} else {
my $ref = DXUser->get_current($tonode);
my $ref = DXUser::get_current($tonode);
if ($ref && $ref->is_clx) {
$self->route($tonode, pc85($fromnode, $tonode, $user, $line));
} else {

View File

@ -226,7 +226,7 @@ sub handle_11
#
# fix up qra locators of known users
my $user = DXUser->get_current($spot[4]);
my $user = DXUser::get_current($spot[4]);
if ($user) {
my $qra = $user->qra;
unless ($qra && is_qra($qra)) {
@ -463,7 +463,7 @@ sub handle_16
# reject this if we think it is a node already
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)) {
dbg("PCPROT: $call is a node") if isdbg('chanerr');
next;
@ -485,7 +485,7 @@ sub handle_16
}
# 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->homenode($parent->call) if !$user->homenode;
$user->node($parent->call);
@ -568,7 +568,7 @@ sub handle_17
$parent->del_user($uref);
# 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_buddies('logoutb', $ucall, $ncall);
@ -638,7 +638,7 @@ sub check_add_node
my $call = shift;
# 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) {
$user = DXUser->new($call);
$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
my $user = DXUser->get_current($call);
my $user = DXUser::get_current($call);
$user = DXUser->new($call) unless $user;
if ($sort == 1) {

View File

@ -237,7 +237,6 @@ sub new
sub get
{
my $pkg = shift;
my $call = uc shift;
my $data;
@ -248,6 +247,11 @@ sub get
# search for it
unless ($dbm->get($call, $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);
return $ref;
}
@ -264,14 +268,11 @@ sub get
sub get_current
{
my $pkg = shift;
my $call = uc shift;
my $dxchan = DXChannel::get($call);
return $dxchan->user if $dxchan;
my $rref = Route::get($call);
return $rref->user if $rref && exists $rref->{user};
return $pkg->get($call);
return get($call);
}
#

View File

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

View File

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

View File

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

View File

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

View File

@ -385,7 +385,7 @@ sub parse
while (@f) {
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;
if ($f[0] eq 'input') {
shift @f;
@ -550,7 +550,7 @@ sub cmd
return $dxchan->msg('filter5') unless $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, $filter) if $r;

View File

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

View File

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

View File

@ -165,7 +165,7 @@ sub new_channel
# set up the basic channel info
# 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);
if ($dxchan) {
if ($user && $user->is_node) {
@ -186,7 +186,7 @@ sub new_channel
# is he locked out ?
my $basecall = $call;
$basecall =~ s/-\d+$//;
my $baseuser = DXUser->get_current($basecall);
my $baseuser = DXUser::get_current($basecall);
my $lock = $user->lockout if $user;
if ($baseuser && $baseuser->lockout || $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
{
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;
$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;
}

View File

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

View File

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

View File

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

View File

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