version 1.71, 2006/02/07 16:20:39
|
version 1.75, 2006/02/10 09:47:36
|
Line 260 if (-e $pidfile) {
|
Line 260 if (-e $pidfile) {
|
# Read hosts file |
# Read hosts file |
# |
# |
my $thisserver; |
my $thisserver; |
|
my %hostname; |
my $PREFORK=4; # number of children to maintain, at least four spare |
my $PREFORK=4; # number of children to maintain, at least four spare |
open (CONFIG,"$perlvar{'lonTabDir'}/hosts.tab") || die "Can't read host file"; |
open (CONFIG,"$perlvar{'lonTabDir'}/hosts.tab") || die "Can't read host file"; |
while (my $configline=<CONFIG>) { |
while (my $configline=<CONFIG>) { |
my ($id,$domain,$role,$name)=split(/:/,$configline); |
my ($id,$domain,$role,$name)=split(/:/,$configline); |
$name=~s/\s//g; |
$name=~s/\s//g; |
$thisserver=$name if ($id eq $perlvar{'lonHostID'}); |
$thisserver=$name if ($id eq $perlvar{'lonHostID'}); |
|
$hostname{$id}=$name; |
#$PREFORK++; |
#$PREFORK++; |
} |
} |
close(CONFIG); |
close(CONFIG); |
Line 386 sub make_new_child {
|
Line 388 sub make_new_child {
|
$run = $run+1; |
$run = $run+1; |
my $userinput = <$client>; |
my $userinput = <$client>; |
chomp($userinput); |
chomp($userinput); |
|
$userinput=~s/\:(\w+)$//; |
|
my $searchdomain=$1; |
# |
# |
my ($conserver,$query, |
my ($conserver,$query, |
$arg1,$arg2,$arg3)=split(/&/,$userinput); |
$arg1,$arg2,$arg3)=split(/&/,$userinput); |
Line 440 sub make_new_child {
|
Line 444 sub make_new_child {
|
$locresult = &localenroll::fetch_enrollment($dom,\%affiliates,\%replies); |
$locresult = &localenroll::fetch_enrollment($dom,\%affiliates,\%replies); |
} elsif ($query eq 'institutionalphotos') { |
} elsif ($query eq 'institutionalphotos') { |
my $crs = &unescape($arg2); |
my $crs = &unescape($arg2); |
$locresult = &localenroll::institutional_photos($dom,$crs,\%affiliates,\%replies,'update'); |
eval { |
|
local($SIG{__DIE__})='DEFAULT'; |
|
$locresult = &localenroll::institutional_photos($dom,$crs,\%affiliates,\%replies,'update'); |
|
}; |
|
if ($@) { |
|
$locresult = 'error'; |
|
} |
} |
} |
$result = &escape($locresult.':'); |
$result = &escape($locresult.':'); |
if ($locresult) { |
if ($locresult) { |
Line 462 sub make_new_child {
|
Line 472 sub make_new_child {
|
} |
} |
} else { |
} else { |
# Do an sql query |
# Do an sql query |
$result = &do_sql_query($query,$arg1,$arg2); |
$result = &do_sql_query($query,$arg1,$arg2,$searchdomain); |
} |
} |
# result does not need to be escaped because it has already been |
# result does not need to be escaped because it has already been |
# escaped. |
# escaped. |
Line 513 sub process_file {
|
Line 523 sub process_file {
|
} |
} |
|
|
sub do_sql_query { |
sub do_sql_query { |
my ($query,$custom,$customshow) = @_; |
my ($query,$custom,$customshow,$searchdomain) = @_; |
# &logthis('doing query '.$query); |
|
|
# |
|
# limit to searchdomain if given and table is metadata |
|
# |
|
if (($searchdomain) && ($query=~/FROM metadata/)) { |
|
$query.=' HAVING (domain="'.$searchdomain.'")'; |
|
} |
|
# &logthis('doing query ('.$searchdomain.')'.$query); |
|
|
|
|
|
|
$custom = &unescape($custom); |
$custom = &unescape($custom); |
$customshow = &unescape($customshow); |
$customshow = &unescape($customshow); |
# |
# |
Line 527 sub do_sql_query {
|
Line 547 sub do_sql_query {
|
# |
# |
if ($query) { |
if ($query) { |
#prepare and execute the query |
#prepare and execute the query |
|
&logthis($query); |
my $sth = $dbh->prepare($query); |
my $sth = $dbh->prepare($query); |
unless ($sth->execute()) { |
unless ($sth->execute()) { |
&logthis('<font color="blue">'. |
&logthis('<font color="blue">'. |
Line 658 Returns: The results of the message or '
|
Line 679 Returns: The results of the message or '
|
######################################################## |
######################################################## |
sub subreply { |
sub subreply { |
my ($cmd,$server)=@_; |
my ($cmd,$server)=@_; |
my $peerfile="$perlvar{'lonSockDir'}/$server"; |
my $peerfile="$perlvar{'lonSockDir'}/".$hostname{$server}; |
my $sclient=IO::Socket::UNIX->new(Peer =>"$peerfile", |
my $sclient=IO::Socket::UNIX->new(Peer =>"$peerfile", |
Type => SOCK_STREAM, |
Type => SOCK_STREAM, |
Timeout => 10) |
Timeout => 10) |
or return "con_lost"; |
or return "con_lost"; |
print $sclient "$cmd\n"; |
print $sclient "sethost:$server:$cmd\n"; |
my $answer=<$sclient>; |
my $answer=<$sclient>; |
chomp($answer); |
chomp($answer); |
$answer="con_lost" if (!$answer); |
$answer="con_lost" if (!$answer); |