X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUser.pm;h=b33f882384e63d161a18ecd0a8cfecca2f3b4837;hb=e2ca7811e49048bfad82ec31e148a79fe9904e2b;hp=a2617a31884d80dd632c4193dba45928e9a8d4ee;hpb=f18ba64dd93bbf7c47e6b5143bfc99af817888e8;p=spider.git diff --git a/perl/DXUser.pm b/perl/DXUser.pm index a2617a31..b33f8823 100644 --- a/perl/DXUser.pm +++ b/perl/DXUser.pm @@ -20,7 +20,7 @@ use File::Copy; use strict; -use vars qw(%u $dbm $filename %valid $lastoperinterval $lasttime $lru $lrusize $tooold $v3 $noips); +use vars qw(%u $dbm $filename %valid $lastoperinterval $lasttime $lru $lrusize $tooold $v3); %u = (); $dbm = undef; @@ -30,7 +30,7 @@ $lasttime = 0; $lrusize = 2000; $tooold = 86400 * 365; # this marks an old user who hasn't given enough info to be useful $v3 = 0; -$noips = 4; +our $maxconnlist = 3; # remember this many connection time (duration) [start, end] pairs # hash of valid elements and a simple prompt %valid = ( @@ -83,6 +83,12 @@ $noips = 4; wantdxitu => '0,Show ITU Zone,yesno', wantgtk => '0,Want GTK interface,yesno', wantpc9x => '0,Want PC9X interface,yesno', + wantrbn => '0,Want RBN spots,yesno', + wantft => '0,Want RBN FT4/8,yesno', + wantcw => '0,Want RBN CW,yesno', + wantrtty => '0,Want RBN RTTY,yesno', + wantpsk => '0,Want RBN PSK,yesno', + wantbeacon => '0,Want (RBN) Beacon,yesno', lastoper => '9,Last for/oper,cldatetime', nothere => '0,Not Here Text', registered => '9,Registered?,yesno', @@ -92,7 +98,8 @@ $noips = 4; believe => '1,Believable nodes,parray', lastping => '1,Last Ping at,ptimelist', maxconnect => '1,Max Connections', - ip => '1,IP addresses,piplist', + startt => '0,Start Time,cldatetime', + connlist => '1,Connections,parraydifft', ); #no strict; @@ -189,21 +196,6 @@ sub del_file unlink "$main::local_data/users.v3"; } -# IP address handling -# this allows one to ask whether an IP address has been used with this node or let's one set an IP address for this node. -sub ip -{ - my $self = shift; - my $node = shift; - my $ipin = shift; - - $self->{ip} = {} unless ref $self->{ip}; - my $ref = $self->{ip}; - delete $ref->{''}; - $ref->{$node} = [$ipin, $main::systime] if $ipin; - return $ref->{$node}->[0]; -} - # # periodic processing # @@ -412,7 +404,14 @@ sub del sub close { my $self = shift; - $self->{lastin} = time; + my $startt = shift; + my $ip = shift; + $self->{lastin} = $main::systime; + # add a record to the connect list + my $ref = [$startt || $self->{startt}, $main::systime]; + push @$ref, $ip if $ip; + push @{$self->{connlist}}, $ref; + shift @{$self->{connlist}} if @{$self->{connlist}} > $maxconnlist; $self->put(); } @@ -842,6 +841,12 @@ sub is_ak1a return $self->{sort} eq 'A'; } +sub is_rbn +{ + my $self = shift; + return $self->{sort} eq 'N' +} + sub unset_passwd { my $self = shift;