--- loncom/lonnet/perl/lonnet.pm 2001/11/22 19:02:07 1.176 +++ loncom/lonnet/perl/lonnet.pm 2001/11/22 20:09:22 1.177 @@ -37,7 +37,7 @@ # 10/5,10/10,11/13,11/15 Scott Harrison # 11/17,11/20,11/22 Gerd Kortemeyer # -# $Id: lonnet.pm,v 1.176 2001/11/22 19:02:07 www Exp $ +# $Id: lonnet.pm,v 1.177 2001/11/22 20:09:22 www Exp $ # ### @@ -2239,7 +2239,7 @@ sub metadata { $uri=~s/\.meta$//; # # Is the metadata already cached? -# If "keys" are set, the assumption is that everything is already cached. +# Look at timestamp of caching # Everything is cached by the main uri, libraries are never directly cached # unless (abs($metacache{$uri.':cachedtimestamp'}-time)<600) { @@ -2326,12 +2326,12 @@ sub metadata { if (defined($depthcount)) { $depthcount++; } else { $depthcount=0; } if ($depthcount<20) { - $metacache{$uri.':keys'}.=','. - &metadata($uri,'keys', - $parser->get_text('/import'),$unikey, - $depthcount); + map { + $metathesekeys{$_}=1; + } split(/\,/,&metadata($uri,'keys', + $parser->get_text('/import'),$unikey, + $depthcount)); } - } else { if (defined($token->[2]->{'name'})) { @@ -2355,6 +2355,7 @@ sub metadata { } $metacache{$uri.':keys'}=join(',',keys %metathesekeys); $metacache{$uri.':cachedtimestamp'}=time; +# this is the end of "was not already recently cached } return $metacache{$uri.':'.$what}; }