--- loncom/lonnet/perl/lonnet.pm 2006/04/06 18:04:23 1.725 +++ loncom/lonnet/perl/lonnet.pm 2006/04/07 22:42:32 1.728 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.725 2006/04/06 18:04:23 raeburn Exp $ +# $Id: lonnet.pm,v 1.728 2006/04/07 22:42:32 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -45,7 +45,6 @@ qw(%perlvar %hostname %badServerCache %i use IO::Socket; use GDBM_File; -use Apache::Constants qw(:common :http); use HTML::LCParser; use HTML::Parser; use Fcntl qw(:flock); @@ -279,6 +278,8 @@ sub transfer_profile_to_env { for ($envi=0;$envi<=$#profile;$envi++) { chomp($profile[$envi]); my ($envname,$envvalue)=split(/=/,$profile[$envi],2); + $envname=&unescape($envname); + $envvalue=&unescape($envvalue); $env{$envname} = $envvalue; if (my ($key,$time) = ($envname =~ /^(cgi\.(\d+)_\d+\.)/)) { if ($time < time-300) { @@ -331,6 +332,8 @@ sub appenv { chomp($oldenv[$i]); if ($oldenv[$i] ne '') { my ($name,$value)=split(/=/,$oldenv[$i],2); + $name=&unescape($name); + $value=&unescape($value); unless (defined($newenv{$name})) { $newenv{$name}=$value; } @@ -343,7 +346,7 @@ sub appenv { } my $newname; foreach $newname (keys %newenv) { - print $fh "$newname=$newenv{$newname}\n"; + print $fh &escape($newname).'='.&escape($newenv{$newname})."\n"; } close($fh); } @@ -355,7 +358,6 @@ sub appenv { sub delenv { my $delthis=shift; - my %newenv=(); if (($delthis=~/user\.role/) || ($delthis=~/user\.priv/)) { &logthis("WARNING: ". "Attempt to delete from environment ".$delthis); @@ -388,8 +390,10 @@ sub delenv { return 'error: '.$!; } foreach my $cur_key (@oldenv) { - if ($cur_key=~/^$delthis/) { - my ($key,undef) = split('=',$cur_key,2); + my $unescaped_cur_key = &unescape($cur_key); + if ($unescaped_cur_key=~/^$delthis/) { + my ($key) = split('=',$cur_key,2); + $key = &unescape($key); delete($env{$key}); } else { print $fh $cur_key; @@ -847,12 +851,9 @@ sub getsection { } sub save_cache { - my ($r)=@_; - if (! $r->is_initial_req()) { return DECLINED; } &purge_remembered(); #&Apache::loncommon::validate_page(); undef(%env); - return OK; } my $to_remember=-1; @@ -3987,7 +3988,7 @@ sub get_users_groups { my $grouplist; foreach my $key (keys %roleshash) { if ($key =~ /^\Q$courseid\E\/(\w+)\_gr$/) { - unless ($roleshash{$key} =~ /_1_1$/) { # deleted membership + unless ($roleshash{$key} =~ /_\d+_\-1$/) { # deleted membership $grouplist .= $1.':'; } } @@ -6520,7 +6521,6 @@ sub goodbye { &logthis(sprintf("%-20s is %s",'hits',$hits)); &flushcourselogs(); &logthis("Shutting down"); - return DONE; } BEGIN {