--- loncom/lonsql 2004/06/08 22:09:44 1.62 +++ loncom/lonsql 2005/11/07 15:43:03 1.68 @@ -3,7 +3,7 @@ # The LearningOnline Network # lonsql - LON TCP-MySQL-Server Daemon for handling database requests. # -# $Id: lonsql,v 1.62 2004/06/08 22:09:44 raeburn Exp $ +# $Id: lonsql,v 1.68 2005/11/07 15:43:03 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -206,6 +206,23 @@ my $run =0; # running count my $perlvarref=LONCAPA::Configuration::read_conf('loncapa.conf'); my %perlvar=%{$perlvarref}; # +# Write the /home/www/.my.cnf file +my $conf_file = '/home/www/.my.cnf'; +if (! -e $conf_file) { + if (open MYCNF, ">$conf_file") { + print MYCNF <<"ENDMYCNF"; +[client] +user=www +password=$perlvar{'lonSqlAccess'} +ENDMYCNF + close MYCNF; + } else { + warn "Unable to write $conf_file, continuing"; + } +} + + +# # Make sure that database can be accessed # my $dbh; @@ -224,6 +241,7 @@ unless ($dbh = DBI->connect("DBI:mysql:l exit 1; } else { + unlink('/home/httpd/html/lon-status/mysql.txt'); $dbh->disconnect; } @@ -241,20 +259,18 @@ if (-e $pidfile) { # # Read hosts file # -my %hostip; my $thisserver; 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,$ip)=split(/:/,$configline); - chomp($ip); - $hostip{$ip}=$id; + my ($id,$domain,$role,$name)=split(/:/,$configline); + $name=~s/\s//g; $thisserver=$name if ($id eq $perlvar{'lonHostID'}); - $PREFORK++; + #$PREFORK++; } close(CONFIG); # -$PREFORK=int($PREFORK/4); +#$PREFORK=int($PREFORK/4); # # Create a socket to talk to lond @@ -415,7 +431,7 @@ sub make_new_child { my $locresult = ''; my $querystr = &unescape($arg3); foreach (split/%%/,$querystr) { - if (/^(\w+)=([^=]+)$/) { + if (/^([^=]+)=([^=]+)$/) { @{$affiliates{$1}} = split/,/,$2; } } @@ -424,6 +440,20 @@ sub make_new_child { if ($locresult) { $result .= &escape(join(':',map{$_.'='.$replies{$_}} keys %replies)); } + } elsif ($query eq 'prepare activity log') { + my ($cid,$domain) = map {&unescape($_);} ($arg1,$arg2); + &logthis('preparing activity log tables for '.$cid); + my $command = + qq{$perlvar{'lonDaemons'}/parse_activity_log.pl -course=$cid -domain=$domain}; + system($command); + &logthis($command); + my $returnvalue = $?>>8; + if ($returnvalue) { + $result = 'error: parse_activity_log.pl returned '. + $returnvalue; + } else { + $result = 'success'; + } } else { # Do an sql query $result = &do_sql_query($query,$arg1,$arg2); @@ -478,6 +508,7 @@ sub process_file { sub do_sql_query { my ($query,$custom,$customshow) = @_; + &logthis('doing query '.$query); $custom = &unescape($custom); $customshow = &unescape($customshow); #