--- loncom/lonnet/perl/lonnet.pm 2001/12/04 15:19:11 1.180 +++ 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.180 2001/12/04 15:19:11 albertel Exp $ +# $Id: lonnet.pm,v 1.186 2001/12/07 16:43:39 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -60,8 +60,11 @@ # 10/2 Gerd Kortemeyer # 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.180 2001/12/04 15:19:11 albertel Exp $ +# $Id: lonnet.pm,v 1.186 2001/12/07 16:43:39 www Exp $ # ### @@ -169,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); @@ -766,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 { @@ -796,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 { @@ -1712,14 +1737,14 @@ sub plaintext { # ------------------------------------------------------------------ Plain Text sub fileembstyle { - my $ending=shift; + my $ending=lc(shift); return $fe{$ending}; } # ------------------------------------------------------------ Description Text sub filedescription { - my $ending=shift; + my $ending=lc(shift); return $fd{$ending}; } @@ -2606,6 +2631,11 @@ sub unescape { # ================================================================ Main Program +sub goodbye { + &flushcourselogs(); + &logthis("Shutting down"); +} + BEGIN { # ------------------------------------------------------------ Read access.conf { @@ -2691,10 +2721,11 @@ BEGIN { my $config=Apache::File->new("$perlvar{'lonTabDir'}/filetypes.tab"); while (my $configline=<$config>) { + next if ($configline =~ /^\#/); chomp($configline); my ($ending,$emb,@descr)=split(/\s+/,$configline); if ($descr[0] ne '') { - $fe{$ending}=$emb; + $fe{$ending}=lc($emb); $fd{$ending}=join(' ',@descr); } } @@ -2702,7 +2733,9 @@ BEGIN { %metacache=(); -$readit='done'; +$processmarker=$$.'_'.time.'_'.$perlvar{'lonHostID'}; +$dumpcount=0; + &logtouch(); &logthis('INFO: Read configuration'); }