--- loncom/lonnet/perl/lonnet.pm 2006/01/21 08:27:02 1.702 +++ loncom/lonnet/perl/lonnet.pm 2006/01/27 20:37:21 1.704 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.702 2006/01/21 08:27:02 albertel Exp $ +# $Id: lonnet.pm,v 1.704 2006/01/27 20:37:21 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -124,7 +124,7 @@ sub logperm { # -------------------------------------------------- Non-critical communication sub subreply { my ($cmd,$server)=@_; - my $peerfile="$perlvar{'lonSockDir'}/$server"; + my $peerfile="$perlvar{'lonSockDir'}/".$hostname{$server}; # # With loncnew process trimming, there's a timing hole between lonc server # process exit and the master server picking up the listen on the AF_UNIX @@ -152,7 +152,7 @@ sub subreply { } my $answer; if ($client) { - print $client "$cmd\n"; + print $client "sethost:$server:$cmd\n"; $answer=<$client>; if (!$answer) { $answer="con_lost"; } chomp($answer); @@ -5331,10 +5331,17 @@ sub get_slot { $cdom=$env{'course.'.$courseid.'.domain'}; $cnum=$env{'course.'.$courseid.'.num'}; } - my %slotinfo=&get('slots',[$which],$cdom,$cnum); - &Apache::lonhomework::showhash(%slotinfo); - my ($tmp)=keys(%slotinfo); - if ($tmp=~/^error:/) { return (); } + my $key=join("\0",'slots',$cdom,$cnum,$which); + my %slotinfo; + if (exists($remembered{$key})) { + $slotinfo{$which} = $remembered{$key}; + } else { + %slotinfo=&get('slots',[$which],$cdom,$cnum); + &Apache::lonhomework::showhash(%slotinfo); + my ($tmp)=keys(%slotinfo); + if ($tmp=~/^error:/) { return (); } + $remembered{$key} = $slotinfo{$which}; + } if (ref($slotinfo{$which}) eq 'HASH') { return %{$slotinfo{$which}}; }