version 1.489, 2012/04/11 06:22:04
|
version 1.491, 2012/04/25 21:22:28
|
Line 34 use strict;
|
Line 34 use strict;
|
use lib '/home/httpd/lib/perl/'; |
use lib '/home/httpd/lib/perl/'; |
use LONCAPA; |
use LONCAPA; |
use LONCAPA::Configuration; |
use LONCAPA::Configuration; |
|
use LONCAPA::Lond; |
|
|
use IO::Socket; |
use IO::Socket; |
use IO::File; |
use IO::File; |
Line 3248 sub dump_profile_database {
|
Line 3249 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 3260 sub dump_profile_database {
|
Line 3258 sub dump_profile_database {
|
sub dump_with_regexp { |
sub dump_with_regexp { |
my ($cmd, $tail, $client) = @_; |
my ($cmd, $tail, $client) = @_; |
|
|
|
#TODO encapsulate $clientname and $clientversion in a object. |
|
my $res = LONCAPA::Lond::dump_with_regexp($cmd, $tail, $clientname, $clientversion); |
|
|
|
if ($res =~ /^error:/) { |
|
Failure($client, \$res, "$cmd:$tail"); |
|
} else { |
|
Reply($client, \$res, "$cmd:$tail"); |
|
} |
|
return 1; |
|
|
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 3288 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); |
# |
# |
Line 3305 sub dump_with_regexp {
|
Line 3307 sub dump_with_regexp {
|
# 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 3316 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 3338 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 6319 sub Debug {
|
Line 6322 sub Debug {
|
# reply - Text to send to client. |
# reply - Text to send to client. |
# request - Original request from client. |
# request - Original request from client. |
# |
# |
|
#NOTE $reply must be terminated by exactly *one* \n. If $reply is a reference |
|
#this is done automatically ($$reply must not contain any \n in this case). |
|
#If $reply is a string the caller has to ensure this. |
sub Reply { |
sub Reply { |
my ($fd, $reply, $request) = @_; |
my ($fd, $reply, $request) = @_; |
if (ref($reply)) { |
if (ref($reply)) { |
Line 8031 Authen::Krb5
|
Line 8037 Authen::Krb5
|
|
|
=head1 COREQUISITES |
=head1 COREQUISITES |
|
|
|
none |
|
|
=head1 OSNAMES |
=head1 OSNAMES |
|
|
linux |
linux |
Line 8118 or the CA's certificate in the call to l
|
Line 8126 or the CA's certificate in the call to l
|
<error> is the textual reason this failed. Usual reasons: |
<error> is the textual reason this failed. Usual reasons: |
|
|
=over 2 |
=over 2 |
|
|
=item Apache config file for loncapa incorrect: |
=item Apache config file for loncapa incorrect: |
|
|
one of the variables |
one of the variables |
lonCertificateDirectory, lonnetCertificateAuthority, or lonnetCertificate |
lonCertificateDirectory, lonnetCertificateAuthority, or lonnetCertificate |
undefined or incorrect |
undefined or incorrect |
Line 8239 Could not rewrite the
|
Line 8247 Could not rewrite the
|
internal password file for a user |
internal password file for a user |
|
|
=item Result of password change for <user> : <result> |
=item Result of password change for <user> : <result> |
|
|
A unix password change for <user> was attempted |
A unix password change for <user> was attempted |
and the pipe returned <result> |
and the pipe returned <result> |
|
|
Line 8268 lond has been asked to exit by its clien
|
Line 8276 lond has been asked to exit by its clien
|
client systemand <input> is the full exit command sent to the server. |
client systemand <input> is the full exit command sent to the server. |
|
|
=item Red CRITICAL: ABNORMAL EXIT. child <pid> for server <hostname> died through a crass with this error->[<message>]. |
=item Red CRITICAL: ABNORMAL EXIT. child <pid> for server <hostname> died through a crass with this error->[<message>]. |
|
|
A lond child terminated. NOte that this termination can also occur when the |
A lond child terminated. NOte that this termination can also occur when the |
child receives the QUIT or DIE signals. <pid> is the process id of the child, |
child receives the QUIT or DIE signals. <pid> is the process id of the child, |
<hostname> the host lond is working for, and <message> the reason the child died |
<hostname> the host lond is working for, and <message> the reason the child died |
Line 8352 file when sent it's USR1 signal. That p
|
Line 8360 file when sent it's USR1 signal. That p
|
assumed to be hung in some un-fixable way. |
assumed to be hung in some un-fixable way. |
|
|
=item Finished checking children |
=item Finished checking children |
|
|
Master processs's USR1 processing is cojmplete. |
Master processs's USR1 processing is cojmplete. |
|
|
=item (Red) CRITICAL: ------- Starting ------ |
=item (Red) CRITICAL: ------- Starting ------ |
Line 8366 Started a new child process for <client>
|
Line 8374 Started a new child process for <client>
|
connected to the child. This was as a result of a TCP/IP connection from a client. |
connected to the child. This was as a result of a TCP/IP connection from a client. |
|
|
=item Unable to determine who caller was, getpeername returned nothing |
=item Unable to determine who caller was, getpeername returned nothing |
|
|
In child process initialization. either getpeername returned undef or |
In child process initialization. either getpeername returned undef or |
a zero sized object was returned. Processing continues, but in my opinion, |
a zero sized object was returned. Processing continues, but in my opinion, |
this should be cause for the child to exit. |
this should be cause for the child to exit. |
Line 8377 In child process initialization. The pe
|
Line 8385 In child process initialization. The pe
|
The client address is stored as "Unavailable" and processing continues. |
The client address is stored as "Unavailable" and processing continues. |
|
|
=item (Yellow) INFO: Connection <ip> <name> connection type = <type> |
=item (Yellow) INFO: Connection <ip> <name> connection type = <type> |
|
|
In child initialization. A good connectionw as received from <ip>. |
In child initialization. A good connectionw as received from <ip>. |
|
|
=over 2 |
=over 2 |
Line 8427 The client (<client> is the peer's name
|
Line 8435 The client (<client> is the peer's name
|
negotiated an SSL connection with this child process. |
negotiated an SSL connection with this child process. |
|
|
=item (Green) Successful insecure authentication with <client> |
=item (Green) Successful insecure authentication with <client> |
|
|
|
|
The client has successfully negotiated an insecure connection withthe child process. |
The client has successfully negotiated an insecure connection withthe child process. |
|
|