[LON-CAPA-cvs] cvs: loncom(version_2_6_X) /interface loncommon.pm
raeburn
lon-capa-cvs-allow@mail.lon-capa.org
Fri, 04 Apr 2008 16:48:42 -0000
raeburn Fri Apr 4 12:48:42 2008 EDT
Modified files: (Branch: version_2_6_X)
/loncom/interface loncommon.pm
Log:
- backport 1.650, 1.651
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.636.2.5 loncom/interface/loncommon.pm:1.636.2.6
--- loncom/interface/loncommon.pm:1.636.2.5 Sun Mar 23 19:13:26 2008
+++ loncom/interface/loncommon.pm Fri Apr 4 12:48:42 2008
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.636.2.5 2008/03/23 23:13:26 raeburn Exp $
+# $Id: loncommon.pm,v 1.636.2.6 2008/04/04 16:48:42 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -132,6 +132,9 @@
do {
($content, $response) = &Apache::lonnet::ssi($resource, %form);
$ok = $response->is_success;
+ if (!$ok) {
+ &Apache::lonnet::logthis("Failed ssi_with_retries on $resource: ".$response->is_success.', '.$response->code.', '.$response->message);
+ }
$retries--;
} while (!$ok && ($retries > 0));
@@ -3176,7 +3179,7 @@
}
if (defined($target)) { $form{'grade_target'} = $target; }
$feedurl=&Apache::lonnet::clutter($feedurl);
- my $userview=&Apache::lonnet::ssi_body($feedurl,%form);
+ my ($userview,$response)=&Apache::lonnet::ssi_body($feedurl,%form);
$userview=~s/\<body[^\>]*\>//gi;
$userview=~s/\<\/body\>//gi;
$userview=~s/\<html\>//gi;
@@ -3185,7 +3188,39 @@
$userview=~s/\<\/head\>//gi;
$userview=~s/action\s*\=/would_be_action\=/gi;
$userview=&relative_to_absolute($feedurl,$userview);
- return $userview;
+ if (wantarray) {
+ return ($userview,$response);
+ } else {
+ return $userview;
+ }
+}
+
+sub get_student_view_with_retries {
+ my ($symb,$retries,$username,$domain,$courseid,$target,$moreenv) = @_;
+
+ my $ok = 0; # True if we got a good response.
+ my $content;
+ my $response;
+
+ # Try to get the student_view done. within the retries count:
+
+ do {
+ ($content, $response) = &get_student_view($symb,$username,$domain,$courseid,$target,$moreenv);
+ $ok = $response->is_success;
+ if (!$ok) {
+ &Apache::lonnet::logthis("Failed get_student_view_with_retries on $symb: ".$response->is_success.', '.$response->code.', '.$response->message);
+ }
+ $retries--;
+ } while (!$ok && ($retries > 0));
+
+ if (!$ok) {
+ $content = ''; # On error return an empty content.
+ }
+ if (wantarray) {
+ return ($content, $response);
+ } else {
+ return $content;
+ }
}
=pod