--- loncom/lonnet/perl/lonnet.pm	2004/09/20 21:10:00	1.523.2.6
+++ loncom/lonnet/perl/lonnet.pm	2004/09/27 19:02:11	1.523.2.8
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # TCP networking package
 #
-# $Id: lonnet.pm,v 1.523.2.6 2004/09/20 21:10:00 albertel Exp $
+# $Id: lonnet.pm,v 1.523.2.8 2004/09/27 19:02:11 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -795,11 +795,11 @@ sub getsection {
         if ($key eq $courseid.'_st') { $section=''; }
         my ($dummy,$end,$start)=split(/\_/,&unescape($value));
         my $now=time;
-        if (defined($end) && ($now > $end)) {
+        if (defined($end) && $end && ($now > $end)) {
             $Expired{$end}=$section;
             next;
         }
-        if (defined($start) && ($now < $start)) {
+        if (defined($start) && $start && ($now < $start)) {
             $Pending{$start}=$section;
             next;
         }
@@ -3132,8 +3132,10 @@ sub log_query {
 sub fetch_enrollment_query {
     my ($context,$affiliatesref,$replyref,$dom,$cnum) = @_;
     my $homeserver;
+    my $maxtries = 1;
     if ($context eq 'automated') {
         $homeserver = $perlvar{'lonHostID'};
+        $maxtries = 10; # will wait for up to 2000s for retrieval of classlist data before timeout
     } else {
         $homeserver = &homeserver($cnum,$dom);
     }
@@ -3148,6 +3150,16 @@ sub fetch_enrollment_query {
     my $queryid=&reply("querysend:".$query.':'.$dom.':'.$ENV{'user.name'}.':'.$cmd,$homeserver);
     unless ($queryid=~/^\Q$host\E\_/) { return 'error: '.$queryid; }
     my $reply = &get_query_reply($queryid);
+    my $tries = 1;
+    while (($reply=~/^timeout/) && ($tries < $maxtries)) {
+	$reply = &get_query_reply($queryid);
+	$tries++;
+    }
+    if ( ($reply =~/^timeout/) || ($reply =~/^error/) ) {
+	&logthis('fetch_enrollment_query error: '.$reply.' for '.$dom.' '.
+		 $ENV{'user.name'}.' for '.$queryid.' context: '.$context.' '.
+		 $cnum.' maxtries: '.$maxtries.' tries: '.$tries);
+    }
     unless ( ($reply =~/^timeout/) || ($reply =~/^error/) ) {
         my @responses = split/:/,$reply;
         if ($homeserver eq $perlvar{'lonHostID'}) {