--- loncom/lond 2012/04/11 06:22:04 1.489 +++ loncom/lond 2012/05/02 00:30:19 1.489.2.1 @@ -2,7 +2,7 @@ # The LearningOnline Network # lond "LON Daemon" Server (port "LOND" 5663) # -# $Id: lond,v 1.489 2012/04/11 06:22:04 raeburn Exp $ +# $Id: lond,v 1.489.2.1 2012/05/02 00:30:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -60,7 +60,7 @@ my $DEBUG = 0; # Non zero to ena my $status=''; my $lastlog=''; -my $VERSION='$Revision: 1.489 $'; #' stupid emacs +my $VERSION='$Revision: 1.489.2.1 $'; #' stupid emacs my $remoteVERSION; my $currenthostid="default"; my $currentdomainid; @@ -3248,9 +3248,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. @@ -3263,7 +3260,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 { @@ -3281,31 +3278,27 @@ 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 -# on the server hosting the user session, when constructing the roles/courses +# 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); -# -# If dump is for roles.db from a pre-2.10 server, determine the LON-CAPA -# version on the server which requested the data. For LON-CAPA 2.9, the +# +# If dump is for roles.db from a pre-2.10 server, determine the LON-CAPA +# version on the server which requested the data. For LON-CAPA 2.9, the # client session will have sent its LON-CAPA version when initiating the # 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}; @@ -3314,16 +3307,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 @@ -3334,9 +3329,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)); } } }