--- loncom/Lond.pm 2019/07/11 18:12:01 1.15
+++ loncom/Lond.pm 2022/01/19 16:02:59 1.17
@@ -1,6 +1,6 @@
# The LearningOnline Network
#
-# $Id: Lond.pm,v 1.15 2019/07/11 18:12:01 raeburn Exp $
+# $Id: Lond.pm,v 1.17 2022/01/19 16:02:59 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -242,10 +242,10 @@ sub check_homecourses {
}
}
unless (&untie_domain_hash($hashref)) {
- &logthis("Failed to untie tied hash for nohist_courseids.db for $domain");
+ &Apache::lonnet::logthis("Failed to untie tied hash for nohist_courseids.db for $domain");
}
} else {
- &logthis("Failed to tie hash for nohist_courseids.db for $domain");
+ &Apache::lonnet::logthis("Failed to tie hash for nohist_courseids.db for $domain");
}
}
foreach my $hashid (keys(%recent)) {
@@ -317,9 +317,9 @@ sub get_courseinfo_hash {
};
if ($@) {
if ($@ eq "timeout\n") {
- &logthis("WARNING courseiddump for $cnum:$cdom from $home timedout");
+ &Apache::lonnet::logthis("WARNING courseiddump for $cnum:$cdom from $home timedout");
} else {
- &logthis("WARNING unexpected error during eval of call for courseiddump from $home");
+ &Apache::lonnet::logthis("WARNING unexpected error during eval of call for courseiddump from $home");
}
} else {
if (ref($info{$cdom.'_'.$cnum}) eq 'HASH') {
@@ -805,10 +805,10 @@ sub is_course {
}
&Apache::lonnet::do_cache_new('iscourse',$hashid,$iscourse,3600);
unless (&untie_domain_hash($hashref)) {
- &logthis("Failed to untie tied hash for nohist_courseids.db for $cdom");
+ &Apache::lonnet::logthis("Failed to untie tied hash for nohist_courseids.db for $cdom");
}
} else {
- &logthis("Failed to tie hash for nohist_courseids.db for $cdom");
+ &Apache::lonnet::logthis("Failed to tie hash for nohist_courseids.db for $cdom");
}
}
return $iscourse;
@@ -1024,6 +1024,25 @@ sub server_certs {
return $result;
}
+sub get_dom {
+ my ($userinput) = @_;
+ my ($cmd,$udom,$namespace,$what) =split(/:/,$userinput,4);
+ my $hashref = &tie_domain_hash($udom,$namespace,&GDBM_READER()) or
+ return "error: ".($!+0)." tie(GDBM) Failed while attempting $cmd";
+ my $qresult='';
+ if (ref($hashref)) {
+ chomp($what);
+ my @queries=split(/\&/,$what);
+ for (my $i=0;$i<=$#queries;$i++) {
+ $qresult.="$hashref->{$queries[$i]}&";
+ }
+ $qresult=~s/\&$//;
+ }
+ &untie_user_hash($hashref) or
+ return "error: ".($!+0)." untie(GDBM) Failed while attempting $cmd";
+ return $qresult;
+}
+
1;
__END__
@@ -1146,7 +1165,18 @@ courseID -- for the course for which the
The contents of the inner hash, for that single item in the outer hash
are returned (and cached in memcache for 10 minutes).
+=item get_dom ( $userinput )
+get_dom() will retrieve domain configuration information from a GDBM file
+in /home/httpd/lonUsers/$dom on the primary library server in a domain.
+The single argument passed is the string: $cmd:$udom:$namespace:$what
+where $cmd is the command historically passed to lond - i.e., getdom
+or egetdom, $udom is the domain, $namespace is the name of the GDBM file
+(encconfig or configuration), and $what is a string containing names of
+items to retrieve from the db file (each item name is escaped and separated
+from the next item name with an ampersand). The return value is either:
+error: followed by an error message, or a string containing the value (escaped)
+for each item, again separated from the next item with an ampersand.
=back