--- loncom/lond 2012/04/11 06:22:04 1.489 +++ loncom/lond 2012/04/11 21:32:28 1.490 @@ -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.490 2012/04/11 21:32:28 droeschl Exp $ # # Copyright Michigan State University Board of Trustees # @@ -34,6 +34,7 @@ use strict; use lib '/home/httpd/lib/perl/'; use LONCAPA; use LONCAPA::Configuration; +use LONCAPA::Lond; use IO::Socket; use IO::File; @@ -60,7 +61,7 @@ my $DEBUG = 0; # Non zero to ena my $status=''; my $lastlog=''; -my $VERSION='$Revision: 1.489 $'; #' stupid emacs +my $VERSION='$Revision: 1.490 $'; #' stupid emacs my $remoteVERSION; my $currenthostid="default"; my $currentdomainid; @@ -3260,6 +3261,15 @@ sub dump_profile_database { sub dump_with_regexp { 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"; @@ -6319,6 +6329,9 @@ sub Debug { # reply - Text to send to 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 { my ($fd, $reply, $request) = @_; if (ref($reply)) { @@ -8031,6 +8044,8 @@ Authen::Krb5 =head1 COREQUISITES +none + =head1 OSNAMES linux @@ -8118,9 +8133,9 @@ or the CA's certificate in the call to l <error> is the textual reason this failed. Usual reasons: =over 2 - + =item Apache config file for loncapa incorrect: - + one of the variables lonCertificateDirectory, lonnetCertificateAuthority, or lonnetCertificate undefined or incorrect @@ -8239,7 +8254,7 @@ Could not rewrite the internal password file for a user =item Result of password change for <user> : <result> - + A unix password change for <user> was attempted and the pipe returned <result> @@ -8268,7 +8283,7 @@ lond has been asked to exit by its clien 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>]. - + 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, <hostname> the host lond is working for, and <message> the reason the child died @@ -8352,7 +8367,7 @@ file when sent it's USR1 signal. That p assumed to be hung in some un-fixable way. =item Finished checking children - + Master processs's USR1 processing is cojmplete. =item (Red) CRITICAL: ------- Starting ------ @@ -8366,7 +8381,7 @@ Started a new child process for <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 - + In child process initialization. either getpeername returned undef or a zero sized object was returned. Processing continues, but in my opinion, this should be cause for the child to exit. @@ -8377,7 +8392,7 @@ In child process initialization. The pe The client address is stored as "Unavailable" and processing continues. =item (Yellow) INFO: Connection <ip> <name> connection type = <type> - + In child initialization. A good connectionw as received from <ip>. =over 2 @@ -8427,7 +8442,7 @@ The client (<client> is the peer's name negotiated an SSL connection with this child process. =item (Green) Successful insecure authentication with <client> - + The client has successfully negotiated an insecure connection withthe child process.