--- loncom/lond 2007/04/10 23:11:30 1.373 +++ loncom/lond 2007/07/25 22:52:07 1.376 @@ -2,7 +2,7 @@ # The LearningOnline Network # lond "LON Daemon" Server (port "LOND" 5663) # -# $Id: lond,v 1.373 2007/04/10 23:11:30 albertel Exp $ +# $Id: lond,v 1.376 2007/07/25 22:52:07 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -59,7 +59,7 @@ my $DEBUG = 0; # Non zero to ena my $status=''; my $lastlog=''; -my $VERSION='$Revision: 1.373 $'; #' stupid emacs +my $VERSION='$Revision: 1.376 $'; #' stupid emacs my $remoteVERSION; my $currenthostid="default"; my $currentdomainid; @@ -4640,6 +4640,30 @@ sub inst_usertypes_handler { } ®ister_handler("inst_usertypes", \&inst_usertypes_handler, 0, 1, 0); +sub inst_dirsrch_handler { + my ($cmd, $tail, $client) = @_; + my ($domain,$srchby,$srchterm,$srchtype) = split(/:/, $tail); + $srchby = &unescape($srchby); + $srchterm = &unescape($srchterm); + my $userinput = $cmd.":".$tail; # For logging purposes. + my (%instusers,%instids,$result,$res); + eval { + local($SIG{__DIE__})='DEFAULT'; + $result=&localenroll::get_userinfo($domain,undef,undef,\%instusers,\%instids,undef,$srchby,$srchterm,$srchtype); + }; + if ($result eq 'ok') { + if (keys(%instusers) > 0) { + foreach my $key (keys(%instusers)) { + my $usrstr = &Apache::lonnet::hash2str(%{$instusers{$key}}); + $res.=&escape($key).'='.&escape($usrstr).'&'; + } + } + $res=~s/\&$//; + } + &Reply($client, "$res\n", $userinput); +} +®ister_handler("instdirsrch", \&inst_dirsrch_handler, 0, 1, 0); + # mkpath makes all directories for a file, expects an absolute path with a # file or a trailing / if just a dir is passed # returns 1 on success 0 on failure @@ -5048,7 +5072,8 @@ sub UpdateHosts { foreach my $child (keys(%children)) { my $childip = $children{$child}; - if (!defined(&Apache::lonnet::get_hosts_from_ip($childip))) { + if ($childip ne '127.0.0.1' + && !defined(&Apache::lonnet::get_hosts_from_ip($childip))) { logthis(' UpdateHosts killing child ' ." $child for ip $childip "); kill('INT', $child); @@ -5485,7 +5510,7 @@ sub make_new_child { # ---------------- New known client connecting, could mean machine online again if (&Apache::lonnet::get_host_ip($currenthostid) ne $clientip && $clientip ne '127.0.0.1') { - &Apache::lonnet::reconlonc(); + &Apache::lonnet::reconlonc($clientname); } &logthis("Established connection: $clientname"); &status('Will listen to '.$clientname);