--- loncom/lond 2012/04/11 21:32:28 1.490 +++ loncom/lond 2012/04/25 21:22:28 1.491 @@ -2,7 +2,7 @@ # The LearningOnline Network # lond "LON Daemon" Server (port "LOND" 5663) # -# $Id: lond,v 1.490 2012/04/11 21:32:28 droeschl Exp $ +# $Id: lond,v 1.491 2012/04/25 21:22:28 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -61,7 +61,7 @@ my $DEBUG = 0; # Non zero to ena my $status=''; my $lastlog=''; -my $VERSION='$Revision: 1.490 $'; #' stupid emacs +my $VERSION='$Revision: 1.491 $'; #' stupid emacs my $remoteVERSION; my $currenthostid="default"; my $currentdomainid; @@ -3249,9 +3249,6 @@ sub dump_profile_database { # range - optional range of entries # e.g., 10-20 would return the # 10th to 19th items, etc. -# extra - optional ref to hash of -# additional args. currently -# skipcheck is only key used. # $client - Channel open on the client. # Returns: # 1 - Continue processing. @@ -3273,7 +3270,7 @@ sub dump_with_regexp { my $userinput = "$cmd:$tail"; - my ($udom,$uname,$namespace,$regexp,$range,$extra)=split(/:/,$tail); + my ($udom,$uname,$namespace,$regexp,$range)=split(/:/,$tail); if (defined($regexp)) { $regexp=&unescape($regexp); } else { @@ -3291,21 +3288,16 @@ sub dump_with_regexp { } my $hashref = &tie_user_hash($udom, $uname, $namespace, &GDBM_READER()); - my $skipcheck; if ($hashref) { my $qresult=''; my $count=0; # # When dump is for roles.db, determine if LON-CAPA version checking is needed. -# Sessions on 2.10 and later will include skipcheck => 1 in extra args ref, -# to indicate no version checking is needed (in this case, checking occurs +# Sessions on 2.10 and later do not require version checking, as that occurs # on the server hosting the user session, when constructing the roles/courses # screen). -# - if ($extra ne '') { - $extra = &Apache::lonnet::thaw_unescape($extra); - $skipcheck = $extra->{'skipcheck'}; - } +# + my $skipcheck; my @ids = &Apache::lonnet::current_machine_ids(); my (%homecourses,$major,$minor,$now); # @@ -3315,7 +3307,7 @@ sub dump_with_regexp { # connection. For LON-CAPA 2.8 and older, the version is retrieved from # the global %loncaparevs in lonnet.pm. # - if (($namespace eq 'roles') && (!$skipcheck)) { + if ($namespace eq 'roles') { my $loncaparev = $clientversion; if ($loncaparev eq '') { $loncaparev = $Apache::lonnet::loncaparevs{$clientname}; @@ -3324,16 +3316,18 @@ sub dump_with_regexp { $major = $1; $minor = $2; } + if (($major > 2) || (($major == 2) && ($minor > 9))) { + $skipcheck = 1; + } $now = time; } while (my ($key,$value) = each(%$hashref)) { - if ($namespace eq 'roles') { + if (($namespace eq 'roles') && (!$skipcheck)) { if ($key =~ m{^/($LONCAPA::match_domain)/($LONCAPA::match_courseid)(/?[^_]*)_(cc|co|in|ta|ep|ad|st|cr)$}) { my $cdom = $1; my $cnum = $2; - unless ($skipcheck) { - my ($role,$roleend,$rolestart) = split(/\_/,$value); - if (!$roleend || $roleend > $now) { + my ($role,$roleend,$rolestart) = split(/\_/,$value); + if (!$roleend || $roleend > $now) { # # For active course roles, check that requesting server is running a LON-CAPA # version which meets any version requirements for the course. Do not include @@ -3344,9 +3338,8 @@ sub dump_with_regexp { # homeserver is the current server, or whether it is a different server. # In both cases, the course's version requirement needs to be retrieved. # - next unless (&releasereqd_check($cnum,$cdom,$key,$value,$major, - $minor,\%homecourses,\@ids)); - } + next unless (&releasereqd_check($cnum,$cdom,$key,$value,$major, + $minor,\%homecourses,\@ids)); } } }