--- loncom/lonnet/perl/lonnet.pm	2001/12/05 14:48:28	1.182
+++ loncom/lonnet/perl/lonnet.pm	2001/12/07 16:43:39	1.186
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # TCP networking package
 #
-# $Id: lonnet.pm,v 1.182 2001/12/05 14:48:28 matthew Exp $
+# $Id: lonnet.pm,v 1.186 2001/12/07 16:43:39 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -61,8 +61,10 @@
 # 10/5,10/10,11/13,11/15 Scott Harrison
 # 11/17,11/20,11/22,11/29 Gerd Kortemeyer
 # 12/5 Matthew Hall
+# 12/5 Guy Albertelli
+# 12/6 Gerd Kortemeyer
 #
-# $Id: lonnet.pm,v 1.182 2001/12/05 14:48:28 matthew Exp $
+# $Id: lonnet.pm,v 1.186 2001/12/07 16:43:39 www Exp $
 #
 ###
 
@@ -170,7 +172,7 @@ use Apache::File;
 use LWP::UserAgent();
 use HTTP::Headers;
 use vars 
-qw(%perlvar %hostname %homecache %hostip %spareid %hostdom %libserv %pr %prp %fe %fd $readit %metacache %packagetab %courselogs);
+qw(%perlvar %hostname %homecache %hostip %spareid %hostdom %libserv %pr %prp %fe %fd %metacache %packagetab %courselogs %accesshash $processmarker $dumpcount);
 use IO::Socket;
 use GDBM_File;
 use Apache::Constants qw(:common :http);
@@ -767,6 +769,16 @@ sub flushcourselogs {
             }
         }        
     } keys %courselogs;
+    &logthis('Flushing access logs');
+    map {
+        my $entry=$_;
+        $entry=~/\_\_\_(\w+)\/(\w+)\/(.*)\_\_\_(\w+)$/;
+        my %temphash=($entry => $accesshash{$entry});
+        if (&Apache::lonnet::put('resevaldata',\%temphash,$1,$2) eq 'ok') {
+	    delete $accesshash{$entry};
+        }
+    } keys %accesshash;
+    $dumpcount++;
 }
 
 sub courselog {
@@ -797,6 +809,18 @@ sub courseacclog {
     &courselog($what);
 }
 
+sub countacc {
+    my $url=&declutter(shift);
+    unless ($ENV{'request.course.id'}) { return ''; }
+    $accesshash{$ENV{'request.course.id'}.'___'.$url.'___course'}=1;
+    my $key=$processmarker.'_'.$dumpcount.'___'.$url.'___count';
+    if (defined($accesshash{$key})) {
+	$accesshash{$key}++;
+    } else {
+        $accesshash{$key}=1;
+    }
+}
+    
 # ----------------------------------------------------------- Check out an item
 
 sub checkout {
@@ -2607,6 +2631,11 @@ sub unescape {
 
 # ================================================================ Main Program
 
+sub goodbye {
+   &flushcourselogs();
+   &logthis("Shutting down");
+}
+
 BEGIN {
 # ------------------------------------------------------------ Read access.conf
 {
@@ -2692,7 +2721,7 @@ BEGIN {
     my $config=Apache::File->new("$perlvar{'lonTabDir'}/filetypes.tab");
 
     while (my $configline=<$config>) {
-       next if (/^\#/);
+       next if ($configline =~ /^\#/);
        chomp($configline);
        my ($ending,$emb,@descr)=split(/\s+/,$configline);
        if ($descr[0] ne '') { 
@@ -2704,7 +2733,9 @@ BEGIN {
 
 %metacache=();
 
-$readit='done';
+$processmarker=$$.'_'.time.'_'.$perlvar{'lonHostID'};
+$dumpcount=0;
+
 &logtouch();
 &logthis('<font color=yellow>INFO: Read configuration</font>');
 }