Initial user multiple attachments!!
[spider.git] / perl / DXUser.pm
index a2617a31884d80dd632c4193dba45928e9a8d4ee..57bef501ce8cc464f66b0e2c79598db9016276ac 100644 (file)
@@ -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 = (
@@ -92,7 +92,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 +190,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 +398,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();
 }