fix and moan if mycall and myalias are lowercase
[spider.git] / perl / DXUser.pm
index dd35c5e7aeeb268bbcc1706feb5a06ff2cc0a876..116b69e62eebec01552ec5bb2a9c47066d9d4f61 100644 (file)
@@ -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__