#
# Copyright (c) 1998 - Dirk Koopman G1TLH
#
-# $Id$
+#
#
package DXUser;
use strict;
-use vars qw($VERSION $BRANCH);
-$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0));
-$main::build += $VERSION;
-$main::branch += $BRANCH;
-
use vars qw(%u $dbm $filename %valid $lastoperinterval $lasttime $lru $lrusize $tooold $v3);
%u = ();
wantusstate => '0,Show US State,yesno',
wantdxcq => '0,Show CQ Zone,yesno',
wantdxitu => '0,Show ITU Zone,yesno',
+ wantgtk => '0,Want GTK interface,yesno',
+ wantpc9x => '0,Want PC9X interface,yesno',
lastoper => '9,Last for/oper,cldatetime',
nothere => '0,Not Here Text',
registered => '9,Registered?,yesno',
sub get
{
- my $pkg = shift;
my $call = uc shift;
my $data;
# 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;
}
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);
}
#
sub asc_encode
{
my $self = shift;
- my $dd = new Data::Dumper([$self]);
- $dd->Indent(0);
- $dd->Terse(1);
- $dd->Quotekeys($] < 5.005 ? 1 : 0);
- return $dd->Dumpxs;
+ return dd($self);
}
#
{
my $s = shift;
my $ref;
+ $s =~ s/\%([0-9A-F][0-9A-F])/chr(hex($1))/eg;
eval '$ref = ' . $s;
if ($@) {
LogDbg('err', $@);
return _want('dxitu', @_);
}
+sub wantgtk
+{
+ return _want('gtk', @_);
+}
+
+sub wantpc9x
+{
+ return _want('pc9x', @_);
+}
+
sub wantlogininfo
{
my $self = shift;