--- loncom/lonsql 2004/07/28 20:46:28 1.63 +++ loncom/lonsql 2006/02/07 05:08:27 1.70 @@ -3,7 +3,7 @@ # The LearningOnline Network # lonsql - LON TCP-MySQL-Server Daemon for handling database requests. # -# $Id: lonsql,v 1.63 2004/07/28 20:46:28 matthew Exp $ +# $Id: lonsql,v 1.70 2006/02/07 05:08:27 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -211,31 +211,14 @@ my $conf_file = '/home/www/.my.cnf'; if (! -e $conf_file) { if (open MYCNF, ">$conf_file") { print MYCNF <<"ENDMYCNF"; -# Generated by LON-CAPA -# -# This file is edited automatically -# Put your configuration below the LON-CAPA configuration code -# -# BEGIN LON-CAPA Specific configuration code [client] user=www password=$perlvar{'lonSqlAccess'} -# END LON-CAPA Specific configuration code -# -# Place your own configuration code below the next line -#------------------------------------------------- ENDMYCNF - close MYCNF; } else { warn "Unable to write $conf_file, continuing"; } -} else { - # it exists. FIXME: Need to ensure we have current password in it... - # my @Original = `cat $conf_file`; - # if ($Original[0] =~ /^\# Generated by LON-CAPA/ ) { - # if (! open MYCNF, ">$conf_file") { - # } } @@ -258,6 +241,7 @@ unless ($dbh = DBI->connect("DBI:mysql:l exit 1; } else { + unlink('/home/httpd/html/lon-status/mysql.txt'); $dbh->disconnect; } @@ -275,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 @@ -441,7 +423,8 @@ sub make_new_child { $result='no_such_file'; } # end of log query - } elsif ($query eq 'fetchenrollment') { + } elsif (($query eq 'fetchenrollment') || + ($query eq 'institutionalphotos')) { # retrieve institutional class lists my $dom = &unescape($arg1); my %affiliates = (); @@ -449,20 +432,27 @@ sub make_new_child { my $locresult = ''; my $querystr = &unescape($arg3); foreach (split/%%/,$querystr) { - if (/^(\w+)=([^=]+)$/) { + if (/^([^=]+)=([^=]+)$/) { @{$affiliates{$1}} = split/,/,$2; } } - $locresult = &localenroll::fetch_enrollment($dom,\%affiliates,\%replies); + if ($query eq 'fetchenrollment') { + $locresult = &localenroll::fetch_enrollment($dom,\%affiliates,\%replies); + } elsif ($query eq 'institutionalphotos') { + my $crs = &unescape($arg2); + $locresult = &localenroll::institutional_photos($dom,$crs,\%affiliates,\%replies,'update'); + } $result = &escape($locresult.':'); 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{parse_activity_log.pl -course=$cid -domain=$domain}; + 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 '. @@ -524,6 +514,7 @@ sub process_file { sub do_sql_query { my ($query,$custom,$customshow) = @_; +# &logthis('doing query '.$query); $custom = &unescape($custom); $customshow = &unescape($customshow); #