--- loncom/lond 2012/04/26 19:51:40 1.492
+++ loncom/lond 2013/03/01 04:49:10 1.498
@@ -2,7 +2,7 @@
# The LearningOnline Network
# lond "LON Daemon" Server (port "LOND" 5663)
#
-# $Id: lond,v 1.492 2012/04/26 19:51:40 droeschl Exp $
+# $Id: lond,v 1.498 2013/03/01 04:49:10 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.492 $'; #' stupid emacs
+my $VERSION='$Revision: 1.498 $'; #' stupid emacs
my $remoteVERSION;
my $currenthostid="default";
my $currentdomainid;
@@ -2370,6 +2370,24 @@ sub fetch_user_file_handler {
unlink($transname);
&Failure($client, "failed\n", $userinput);
} 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);
}
}
@@ -3176,6 +3194,17 @@ sub get_profile_keys {
sub dump_profile_database {
my ($cmd, $tail, $client) = @_;
+ my $res = LONCAPA::Lond::dump_profile_database($tail);
+
+ if ($res =~ /^error:/) {
+ Failure($client, \$res, "$cmd:$tail");
+ } else {
+ Reply($client, \$res, "$cmd:$tail");
+ }
+
+ return 1;
+
+ #TODO remove
my $userinput = "$cmd:$tail";
my ($udom,$uname,$namespace) = split(/:/,$tail);
@@ -3254,7 +3283,7 @@ sub dump_profile_database {
sub dump_with_regexp {
my ($cmd, $tail, $client) = @_;
- my $res = LONCAPA::Lond::dump_with_regexp($tail, $clientname, $clientversion);
+ my $res = LONCAPA::Lond::dump_with_regexp($tail, $clientversion);
if ($res =~ /^error:/) {
Failure($client, \$res, "$cmd:$tail");
@@ -3838,6 +3867,17 @@ sub put_course_id_hash_handler {
# a reply is written to $client.
sub dump_course_id_handler {
my ($cmd, $tail, $client) = @_;
+
+ my $res = LONCAPA::Lond::dump_course_id_handler($tail);
+ if ($res =~ /^error:/) {
+ Failure($client, \$res, "$cmd:$tail");
+ } else {
+ Reply($client, \$res, "$cmd:$tail");
+ }
+
+ return 1;
+
+ #TODO remove
my $userinput = "$cmd:$tail";
my ($udom,$since,$description,$instcodefilter,$ownerfilter,$coursefilter,
@@ -4974,9 +5014,10 @@ sub validate_instcode_handler {
my ($dom,$instcode,$owner) = split(/:/, $tail);
$instcode = &unescape($instcode);
$owner = &unescape($owner);
- my ($outcome,$description) =
+ my ($outcome,$description,$credits) =
&localenroll::validate_instcode($dom,$instcode,$owner);
- my $result = &escape($outcome).'&'.&escape($description);
+ my $result = &escape($outcome).'&'.&escape($description).'&'.
+ &escape($credits);
&Reply($client, \$result, $userinput);
return 1;
@@ -6450,7 +6491,8 @@ sub make_new_child {
#---------------------------------------------------- kerberos 5 initialization
&Authen::Krb5::init_context();
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();
}
@@ -6495,10 +6537,13 @@ sub make_new_child {
#
# If the remote is attempting a local init... give that a try:
#
+ logthis("remotereq: $remotereq");
(my $i, my $inittype, $clientversion) = split(/:/, $remotereq);
# 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.
+ # $clientversion contains path to keyfile if $inittype eq 'local'
+ # it's overridden below in this case
$clientversion ||= $Apache::lonnet::loncaparevs{$clientname};
# If the connection type is ssl, but I didn't get my
@@ -7364,41 +7409,6 @@ sub get_usersession_config {
}
-#
-# get_courseinfo_hash() is used to retrieve course information from the db
-# file: nohist_courseids.db for a course for which the current server is *not*
-# the home server.
-#
-# A hash of a hash will be retrieved. The outer hash contains a single key --
-# courseID -- for the course for which the data are being requested.
-# The contents of the inner hash, for that single item in the outer hash
-# are returned (and cached in memcache for 10 minutes).
-#
-
-sub get_courseinfo_hash {
- my ($cnum,$cdom,$home) = @_;
- my %info;
- eval {
- local($SIG{ALRM}) = sub { die "timeout\n"; };
- local($SIG{__DIE__})='DEFAULT';
- alarm(3);
- %info = &Apache::lonnet::courseiddump($cdom,'.',1,'.','.',$cnum,1,[$home],'.');
- alarm(0);
- };
- if ($@) {
- if ($@ eq "timeout\n") {
- &logthis("WARNING courseiddump for $cnum:$cdom from $home timedout");
- } else {
- &logthis("WARNING unexpected error during eval of call for courseiddump from $home");
- }
- } else {
- if (ref($info{$cdom.'_'.$cnum}) eq 'HASH') {
- my $hashid = $cdom.':'.$cnum;
- return &Apache::lonnet::do_cache_new('courseinfo',$hashid,$info{$cdom.'_'.$cnum},600);
- }
- }
- return;
-}
sub distro_and_arch {
@@ -7612,7 +7622,7 @@ Place in B
stores hash in namespace
-=item rolesputy
+=item rolesput
put a role into a user's environment