[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