--- loncom/lonsql 2006/03/27 19:51:42 1.71.2.2 +++ loncom/lonsql 2006/02/08 17:11:46 1.73 @@ -3,7 +3,7 @@ # The LearningOnline Network # lonsql - LON TCP-MySQL-Server Daemon for handling database requests. # -# $Id: lonsql,v 1.71.2.2 2006/03/27 19:51:42 albertel Exp $ +# $Id: lonsql,v 1.73 2006/02/08 17:11:46 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -260,12 +260,14 @@ if (-e $pidfile) { # Read hosts file # my $thisserver; +my %hostname; my $PREFORK=4; # number of children to maintain, at least four spare open (CONFIG,"$perlvar{'lonTabDir'}/hosts.tab") || die "Can't read host file"; while (my $configline=) { my ($id,$domain,$role,$name)=split(/:/,$configline); $name=~s/\s//g; $thisserver=$name if ($id eq $perlvar{'lonHostID'}); + $hostname{$id}=$name; #$PREFORK++; } close(CONFIG); @@ -442,13 +444,7 @@ sub make_new_child { $locresult = &localenroll::fetch_enrollment($dom,\%affiliates,\%replies); } elsif ($query eq 'institutionalphotos') { my $crs = &unescape($arg2); - eval { - local($SIG{__DIE__})='DEFAULT'; - $locresult = &localenroll::institutional_photos($dom,$crs,\%affiliates,\%replies,'update'); - }; - if ($@) { - $locresult = 'error'; - } + $locresult = &localenroll::institutional_photos($dom,$crs,\%affiliates,\%replies,'update'); } $result = &escape($locresult.':'); if ($locresult) { @@ -470,7 +466,7 @@ sub make_new_child { } } else { # Do an sql query - $result = &do_sql_query($query,$arg1,$arg2,$searchdomain); + $result = &do_sql_query($query,$arg1,$arg2); } # result does not need to be escaped because it has already been # escaped. @@ -521,18 +517,8 @@ sub process_file { } sub do_sql_query { - my ($query,$custom,$customshow,$searchdomain) = @_; - -# -# limit to searchdomain if given and table is metadata -# - if (($searchdomain) && ($query=~/FROM metadata/)) { - $query.=' HAVING (domain="'.$searchdomain.'")'; - } -# &logthis('doing query ('.$searchdomain.')'.$query); - - - + my ($query,$custom,$customshow) = @_; +# &logthis('doing query '.$query); $custom = &unescape($custom); $customshow = &unescape($customshow); # @@ -676,12 +662,12 @@ Returns: The results of the message or ' ######################################################## sub subreply { my ($cmd,$server)=@_; - my $peerfile="$perlvar{'lonSockDir'}/$server"; + my $peerfile="$perlvar{'lonSockDir'}/".$hostname{$server}; my $sclient=IO::Socket::UNIX->new(Peer =>"$peerfile", Type => SOCK_STREAM, Timeout => 10) or return "con_lost"; - print $sclient "$cmd\n"; + print $sclient "sethost:$server:$cmd\n"; my $answer=<$sclient>; chomp($answer); $answer="con_lost" if (!$answer);