Diff for /loncom/lond between versions 1.489 and 1.489.2.3

version 1.489, 2012/04/11 06:22:04 version 1.489.2.3, 2013/03/02 03:31:10
Line 2373  sub fetch_user_file_handler { Line 2373  sub fetch_user_file_handler {
  unlink($transname);   unlink($transname);
  &Failure($client, "failed\n", $userinput);   &Failure($client, "failed\n", $userinput);
     } else {      } else {
                   if ($fname =~ /^default.+\.(page|sequence)$/) {
                       my ($major,$minor) = split(/\./,$clientversion);
                       if (($major < 2) || ($major == 2 && $minor < 11)) {
                           my $now = time;
                           &Apache::lonnet::do_cache_new('crschange',$udom.'_'.$uname,$now,600);
                           my $key = &escape('internal.contentchange');
                           my $what = "$key=$now";
                           my $hashref = &tie_user_hash($udom,$uname,'environment',
                                                        &GDBM_WRCREAT(),"P",$what);
                           if ($hashref) {
                               $hashref->{$key}=$now;
                               if (!&untie_user_hash($hashref)) {
                                   &logthis("error: ".($!+0)." untie (GDBM) failed ".
                                            "when updating internal.contentchange");
                               }
                           }
                       }
                   }
  &Reply($client, "ok\n", $userinput);   &Reply($client, "ok\n", $userinput);
     }      }
  }      }   
Line 3248  sub dump_profile_database { Line 3266  sub dump_profile_database {
 #                               range       - optional range of entries  #                               range       - optional range of entries
 #                                             e.g., 10-20 would return the  #                                             e.g., 10-20 would return the
 #                                             10th to 19th items, etc.    #                                             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.  #   $client                   - Channel open on the client.
 # Returns:  # Returns:
 #    1    - Continue processing.  #    1    - Continue processing.
Line 3263  sub dump_with_regexp { Line 3278  sub dump_with_regexp {
   
     my $userinput = "$cmd:$tail";      my $userinput = "$cmd:$tail";
   
     my ($udom,$uname,$namespace,$regexp,$range,$extra)=split(/:/,$tail);      my ($udom,$uname,$namespace,$regexp,$range)=split(/:/,$tail);
     if (defined($regexp)) {      if (defined($regexp)) {
  $regexp=&unescape($regexp);   $regexp=&unescape($regexp);
     } else {      } else {
Line 3281  sub dump_with_regexp { Line 3296  sub dump_with_regexp {
     }      }
     my $hashref = &tie_user_hash($udom, $uname, $namespace,      my $hashref = &tie_user_hash($udom, $uname, $namespace,
  &GDBM_READER());   &GDBM_READER());
     my $skipcheck;  
     if ($hashref) {      if ($hashref) {
         my $qresult='';          my $qresult='';
  my $count=0;   my $count=0;
 #  #
 # When dump is for roles.db, determine if LON-CAPA version checking is needed.  # 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,  # Sessions on 2.10 and later do not require version checking, as that occurs
 # to indicate no version checking is needed (in this case, checking occurs  # on the server hosting the user session, when constructing the roles/courses
 # on the server hosting the user session, when constructing the roles/courses   
 # screen).  # screen).
 #   #
         if ($extra ne '') {          my $skipcheck;
             $extra = &Apache::lonnet::thaw_unescape($extra);  
             $skipcheck = $extra->{'skipcheck'};  
         }  
         my @ids = &Apache::lonnet::current_machine_ids();          my @ids = &Apache::lonnet::current_machine_ids();
         my (%homecourses,$major,$minor,$now);          my (%homecourses,$major,$minor,$now);
 #   #
 # If dump is for roles.db from a pre-2.10 server, determine the LON-CAPA     # 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    # 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  # 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  # connection. For LON-CAPA 2.8 and older, the version is retrieved from
 # the global %loncaparevs in lonnet.pm.  # the global %loncaparevs in lonnet.pm.
 #   # 
         if (($namespace eq 'roles') && (!$skipcheck)) {  # 
           if ($namespace eq 'roles') {
             my $loncaparev = $clientversion;              my $loncaparev = $clientversion;
             if ($loncaparev eq '') {              if ($loncaparev eq '') {
                 $loncaparev = $Apache::lonnet::loncaparevs{$clientname};                  $loncaparev = $Apache::lonnet::loncaparevs{$clientname};
Line 3314  sub dump_with_regexp { Line 3325  sub dump_with_regexp {
                 $major = $1;                  $major = $1;
                 $minor = $2;                  $minor = $2;
             }              }
               if (($major > 2) || (($major == 2) && ($minor > 9))) {
                   $skipcheck = 1;
               }
             $now = time;              $now = time;
         }          }
  while (my ($key,$value) = each(%$hashref)) {   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)$}) {                  if ($key =~ m{^/($LONCAPA::match_domain)/($LONCAPA::match_courseid)(/?[^_]*)_(cc|co|in|ta|ep|ad|st|cr)$}) {
                     my $cdom = $1;                      my $cdom = $1;
                     my $cnum = $2;                      my $cnum = $2;
                     unless ($skipcheck) {                      my ($role,$roleend,$rolestart) = split(/\_/,$value);
                         my ($role,$roleend,$rolestart) = split(/\_/,$value);                      if (!$roleend || $roleend > $now) {
                         if (!$roleend || $roleend > $now) {  
 #  #
 # For active course roles, check that requesting server is running a LON-CAPA  # 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  # version which meets any version requirements for the course. Do not include
Line 3334  sub dump_with_regexp { Line 3347  sub dump_with_regexp {
 # homeserver is the current server, or whether it is a different server.  # homeserver is the current server, or whether it is a different server.
 # In both cases, the course's version requirement needs to be retrieved.  # In both cases, the course's version requirement needs to be retrieved.
 #   # 
                             next unless (&releasereqd_check($cnum,$cdom,$key,$value,$major,                          next unless (&releasereqd_check($cnum,$cdom,$key,$value,$major,
                                                             $minor,\%homecourses,\@ids));                                                          $minor,\%homecourses,\@ids));
                         }  
                     }                      }
                 }                  }
             }              }
Line 5092  sub validate_instcode_handler { Line 5104  sub validate_instcode_handler {
     my ($dom,$instcode,$owner) = split(/:/, $tail);      my ($dom,$instcode,$owner) = split(/:/, $tail);
     $instcode = &unescape($instcode);      $instcode = &unescape($instcode);
     $owner = &unescape($owner);      $owner = &unescape($owner);
     my ($outcome,$description) =       my ($outcome,$description,$credits) = 
         &localenroll::validate_instcode($dom,$instcode,$owner);          &localenroll::validate_instcode($dom,$instcode,$owner);
     my $result = &escape($outcome).'&'.&escape($description);      my $result = &escape($outcome).'&'.&escape($description).'&'.
                    &escape($credits);
     &Reply($client, \$result, $userinput);      &Reply($client, \$result, $userinput);
   
     return 1;      return 1;
Line 6565  sub make_new_child { Line 6578  sub make_new_child {
 #---------------------------------------------------- kerberos 5 initialization  #---------------------------------------------------- kerberos 5 initialization
         &Authen::Krb5::init_context();          &Authen::Krb5::init_context();
  unless (($dist eq 'fedora5') || ($dist eq 'fedora4') ||     unless (($dist eq 'fedora5') || ($dist eq 'fedora4') ||  
  ($dist eq 'fedora6') || ($dist eq 'suse9.3')) {   ($dist eq 'fedora6') || ($dist eq 'suse9.3') ||
                   ($dist eq 'suse12.2')) {
     &Authen::Krb5::init_ets();      &Authen::Krb5::init_ets();
  }   }
   
Line 7914  Place in B<logs/lond.log> Line 7928  Place in B<logs/lond.log>
   
 stores hash in namespace  stores hash in namespace
   
 =item rolesputy  =item rolesput
   
 put a role into a user's environment  put a role into a user's environment
   

Removed from v.1.489  
changed lines
  Added in v.1.489.2.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>