X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUser.pm;h=116b69e62eebec01552ec5bb2a9c47066d9d4f61;hb=49d7cd28623df3c4accf72d48f74b4b00238a81a;hp=dd35c5e7aeeb268bbcc1706feb5a06ff2cc0a876;hpb=8467e0bbd9951b6b2395e832c7f54f78f5fff8cc;p=spider.git diff --git a/perl/DXUser.pm b/perl/DXUser.pm index dd35c5e7..116b69e6 100644 --- a/perl/DXUser.pm +++ b/perl/DXUser.pm @@ -51,6 +51,8 @@ my $json; buddies => '0,Buddies,parray', build => '1,Build', call => '0,Callsign', + clientoutput => '0,User OUT Format', + clientinput => '0,User IN Format', connlist => '1,Connections,parraydifft', dxok => '9,Accept DX Spots?,yesno', # accept his dx spots? email => '0,E-mail Address,parray', @@ -80,9 +82,10 @@ my $json; prompt => '0,Required Prompt', qra => '0,Locator', qth => '0,Home QTH', - rbnseeme => '0,RBN See Me', + rbnseeme => '0,RBN See Me,yesno', registered => '9,Registered?,yesno', startt => '0,Start Time,cldatetime', + user_interval => '0,Prompt IdleTime', version => '1,Version', wantann => '0,Req Announce,yesno', wantann_talk => '0,Talklike Anns,yesno', @@ -130,6 +133,8 @@ sub AUTOLOAD goto &$AUTOLOAD; } +my $readonly; + #use strict; # @@ -159,6 +164,8 @@ sub init $dbm = tie (%u, 'DB_File', $filename, O_RDONLY, 0666, $DB_BTREE) or confess "can't open user file: $fn ($!) [rebuild it from user_json?]"; } } + $readonly = !$mode; + die "Cannot open $filename ($!)\n" unless $dbm || $mode == 2; return; } @@ -188,6 +195,7 @@ sub process sub finish { + dbg('DXUser finished') unless $readonly; $dbm->sync; undef $dbm; untie %u; @@ -346,7 +354,7 @@ sub close my $ip = shift; # add a record to the connect list $self->{lastin} = $main::systime; - my $ref = [$startt || $self->{startt}, $main::systime]; + my $ref = [$self->{startt} || $startt, $main::systime]; push @$ref, $ip if $ip; push @{$self->{connlist}}, $ref; shift @{$self->{connlist}} if @{$self->{connlist}} > $maxconnlist; @@ -975,7 +983,15 @@ sub recover LogDbg('command', $s); return ($s); } - + +sub END +{ + if ($dbm) { + print "DXUser Ended\n" unless $readonly; + finish(); + } +} + 1; __END__