--- loncom/lonnet/perl/lonnet.pm 2012/07/17 14:49:32 1.1180 +++ loncom/lonnet/perl/lonnet.pm 2012/08/03 10:55:53 1.1182 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.1180 2012/07/17 14:49:32 droeschl Exp $ +# $Id: lonnet.pm,v 1.1182 2012/08/03 10:55:53 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -75,6 +75,7 @@ use LWP::UserAgent(); use HTTP::Date; use Image::Magick; + use Encode; use vars qw(%perlvar %spareid %pr %prp $memcache %packagetab $tmpdir @@ -2585,7 +2586,9 @@ sub ssi { $request->header(Cookie => $ENV{'HTTP_COOKIE'}); my $response= $ua->request($request); - my $content = Encode::decode_utf8($response->content); + my $content = $response->content; + + if (wantarray) { return ($content, $response); } else { @@ -9850,6 +9853,41 @@ sub devalidate_slots_cache { &devalidate_cache_new('allslots',$hashid); } +sub get_coursechange { + my ($cdom,$cnum) = @_; + if ($cdom eq '' || $cnum eq '') { + return unless ($env{'request.course.id'}); + $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + } + my $hashid=$cdom.'_'.$cnum; + my ($change,$cached)=&is_cached_new('crschange',$hashid); + if ((defined($cached)) && ($change ne '')) { + return $change; + } else { + my %crshash; + %crshash = &get('environment',['internal.contentchange'],$cdom,$cnum); + if ($crshash{'internal.contentchange'} eq '') { + $change = $env{'course.'.$cdom.'_'.$cnum.'.internal.created'}; + if ($change eq '') { + %crshash = &get('environment',['internal.created'],$cdom,$cnum); + $change = $crshash{'internal.created'}; + } + } else { + $change = $crshash{'internal.contentchange'}; + } + my $cachetime = 600; + &do_cache_new('crschange',$hashid,$change,$cachetime); + } + return $change; +} + +sub devalidate_coursechange_cache { + my ($cnum,$cdom)=@_; + my $hashid=$cnum.':'.$cdom; + &devalidate_cache_new('crschange',$hashid); +} + # ------------------------------------------------- Update symbolic store links sub symblist {