--- loncom/lonnet/perl/lonnet.pm 2004/04/29 07:18:10 1.490 +++ loncom/lonnet/perl/lonnet.pm 2004/04/29 07:57:47 1.491 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.490 2004/04/29 07:18:10 albertel Exp $ +# $Id: lonnet.pm,v 1.491 2004/04/29 07:57:47 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -4448,6 +4448,15 @@ sub latest_rnd_algorithm_id { return '64bit2'; } +sub getCODE { + if (defined($ENV{'form.CODE'})) { return $ENV{'form.CODE'}; } + if (defined($Apache::lonhomework::parsing_a_problem) && + defined($Apache::lonhomework::history{'resource.CODE'})) { + return $Apache::lonhomework::history{'resource.CODE'}; + } + return undef; +} + sub rndseed { my ($symb,$courseid,$domain,$username)=@_; @@ -4459,8 +4468,7 @@ sub rndseed { if (!$domain) { $domain=$wdomain; } if (!$username) { $username=$wusername } my $which=$ENV{"course.$courseid.rndseed"}; - my $CODE=$ENV{'form.CODE'}; - if (defined($CODE)) { + if (defined(&getCODE())) { return &rndseed_CODE_64bit($symb,$courseid,$domain,$username); } elsif ($which eq '64bit2') { return &rndseed_64bit2($symb,$courseid,$domain,$username); @@ -4535,8 +4543,8 @@ sub rndseed_CODE_64bit { use integer; my $symbchck=unpack("%32S*",$symb.' ') << 16; my $symbseed=numval2($symb); - my $CODEchck=unpack("%32S*",$ENV{'form.CODE'}.' ') << 16; - my $CODEseed=numval($ENV{'form.CODE'}); + my $CODEchck=unpack("%32S*",&getCODE().' ') << 16; + my $CODEseed=numval(&getCODE()); my $courseseed=unpack("%32S*",$courseid.' '); my $num1=$symbseed+$CODEchck; my $num2=$CODEseed+$courseseed+$symbchck;