version 1.3, 2000/07/02 04:01:56
|
version 1.7, 2001/03/22 15:21:54
|
Line 1
|
Line 1
|
#!/usr/bin/perl |
#!/usr/bin/perl |
# lonsql-based on the preforker:harsha jagasia:date:5/10/00 |
# lonsql-based on the preforker:harsha jagasia:date:5/10/00 |
|
# 7/25 Gerd Kortemeyer |
|
# many different dates Scott Harrison |
|
# 03/22/2001 Scott Harrison |
use IO::Socket; |
use IO::Socket; |
use Symbol; |
use Symbol; |
use POSIX; |
use POSIX; |
Line 27 while ($configline=<CONFIG>) {
|
Line 29 while ($configline=<CONFIG>) {
|
} |
} |
close(CONFIG); |
close(CONFIG); |
|
|
|
# --------------------------------------------- Check if other instance running |
|
|
|
my $pidfile="$perlvar{'lonDaemons'}/logs/lonsql.pid"; |
|
|
|
if (-e $pidfile) { |
|
my $lfh=IO::File->new("$pidfile"); |
|
my $pide=<$lfh>; |
|
chomp($pide); |
|
if (kill 0 => $pide) { die "already running"; } |
|
} |
|
|
# ------------------------------------------------------------- Read hosts file |
# ------------------------------------------------------------- Read hosts file |
$PREFORK=4; # number of children to maintain, at least four spare |
$PREFORK=4; # number of children to maintain, at least four spare |
|
|
Line 168 sub make_new_child {
|
Line 181 sub make_new_child {
|
#open database handle |
#open database handle |
# making dbh global to avoid garbage collector |
# making dbh global to avoid garbage collector |
unless ( |
unless ( |
$dbh = DBI->connect("DBI:mysql:loncapa","www","newmysql",{ RaiseError =>0,PrintError=>0}) |
$dbh = DBI->connect("DBI:mysql:loncapa","www","123",{ RaiseError =>0,PrintError=>0}) |
) { |
) { |
my $st=120+int(rand(240)); |
my $st=120+int(rand(240)); |
&logthis("<font color=blue>WARNING: Couldn't connect to database ($st secs): $@</font>"); |
&logthis("<font color=blue>WARNING: Couldn't connect to database ($st secs): $@</font>"); |
Line 189 sub make_new_child {
|
Line 202 sub make_new_child {
|
my $userinput = <$client>; |
my $userinput = <$client>; |
chomp($userinput); |
chomp($userinput); |
|
|
my ($conserver,$querytmp)=split(/&/,$userinput); |
my ($conserver,$querytmp,$customtmp)=split(/&/,$userinput); |
my $query=unescape($querytmp); |
my $query=unescape($querytmp); |
|
my $custom=unescape($customtmp); |
|
|
#send query id which is pid_unixdatetime_runningcounter |
#send query id which is pid_unixdatetime_runningcounter |
$queryid = $thisserver; |
$queryid = $thisserver; |
Line 212 sub make_new_child {
|
Line 226 sub make_new_child {
|
my @r2; map {my $a=$_; my @b=map {escape($_)} @$a; push @r2,join(",", @b)} (@$r1); |
my @r2; map {my $a=$_; my @b=map {escape($_)} @$a; push @r2,join(",", @b)} (@$r1); |
$result=join("&",@r2) . "\n"; |
$result=join("&",@r2) . "\n"; |
} |
} |
|
|
|
# do custom metadata searching here and build into result |
|
|
&reply("queryreply:$queryid:$result",$conserver); |
&reply("queryreply:$queryid:$result",$conserver); |
|
|
} |
} |