Diff for /loncom/lonsql between versions 1.42 and 1.45

version 1.42, 2002/05/11 21:26:53 version 1.45, 2002/06/17 20:25:51
Line 46 Line 46
 ## ORGANIZATION OF THIS PERL SCRIPT                                          ##  ## ORGANIZATION OF THIS PERL SCRIPT                                          ##
 ## 1. Modules used                                                           ##  ## 1. Modules used                                                           ##
 ## 2. Enable find subroutine                                                 ##  ## 2. Enable find subroutine                                                 ##
 ## 3. Read httpd access.conf and get variables                               ##  ## 3. Read httpd config files and get variables                              ##
 ## 4. Make sure that database can be accessed                                ##  ## 4. Make sure that database can be accessed                                ##
 ## 5. Make sure this process is running from user=www                        ##  ## 5. Make sure this process is running from user=www                        ##
 ## 6. Check if other instance is running                                     ##  ## 6. Check if other instance is running                                     ##
Line 80  sub wanted { Line 80  sub wanted {
 $childmaxattempts=10;  $childmaxattempts=10;
 $run =0;#running counter to generate the query-id  $run =0;#running counter to generate the query-id
   
 # ------------------------------------------- Read access.conf and loncapa.conf  # -------------------------------- Read loncapa_apache.conf and loncapa.conf
 my $perlvarref=LONCAPA::Configuration::read_conf('access.conf','loncapa.conf');  my $perlvarref=LONCAPA::Configuration::read_conf('loncapa_apache.conf',
                                                    'loncapa.conf');
 my %perlvar=%{$perlvarref};  my %perlvar=%{$perlvarref};
   
 # ------------------------------------- Make sure that database can be accessed  # ------------------------------------- Make sure that database can be accessed
Line 188  sub logthis { Line 189  sub logthis {
     my $local=localtime($now);      my $local=localtime($now);
     print $fh "$local ($$): $message\n";      print $fh "$local ($$): $message\n";
 }  }
   
   
   
   # -------------------------------------------- Return path to profile directory
   
   sub propath {
       my ($udom,$uname)=@_;
       $udom=~s/\W//g;
       $uname=~s/\W//g;
       my $subdir=$uname.'__';
       $subdir =~ s/(.)(.)(.).*/$1\/$2\/$3/;
       my $proname="$perlvar{'lonUsersDir'}/$udom/$subdir/$uname";
       return $proname;
   } 
   
   # ------------------------------------------------------------------ Course log
   
   sub courselog {
       my ($path,$command)=@_;
       return 'not_yet_implemented';
   }
   
   # -------------------------------------------------------------------- User log
   
   sub userlog {
       my ($path,$command)=@_;
       return 'not_yet_implemented';
   }
   
   
 # ---------------------------------------------------- Fork once and dissociate  # ---------------------------------------------------- Fork once and dissociate
 $fpid=fork;  $fpid=fork;
 exit if $fpid;  exit if $fpid;
Line 275  sub make_new_child { Line 306  sub make_new_child {
     my $userinput = <$client>;      my $userinput = <$client>;
     chomp($userinput);      chomp($userinput);
                   
     my ($conserver,$querytmp,      my ($conserver,$query,
  $customtmp,$customshowtmp)=split(/&/,$userinput);   $arg1,$arg2,$arg3)=split(/&/,$userinput);
     my $query=unescape($querytmp);      my $query=unescape($query);
     my $custom=unescape($customtmp);  
     my $customshow=unescape($customshowtmp);  
   
             #send query id which is pid_unixdatetime_runningcounter              #send query id which is pid_unixdatetime_runningcounter
     $queryid = $thisserver;      $queryid = $thisserver;
Line 289  sub make_new_child { Line 318  sub make_new_child {
     print $client "$queryid\n";      print $client "$queryid\n";
           
     &logthis("QUERY: $query");      &logthis("QUERY: $query");
     &logthis("QUERY: $query");  
     sleep 1;      sleep 1;
   
               my $result='';
   
   # ---------- At this point, query is received, query-ID assigned and sent back 
   # $query eq 'logquery' will mean that this is a query against log-files
   
   
      if (($query eq 'userlog') || ($query eq 'courselog')) {
   # ----------------------------------------------------- beginning of log query
   #
   # this goes against a user's log file
   #
          my $udom=&unescape($arg1);
          my $uname=&unescape($arg2);
                  my $command=&unescape($arg3);
                  my $path=&propath($udom,$uname);
                  if (-e "$path/activity.log") {
      if ($query eq 'userlog') {
                          $result=&userlog($path,$command);
                      } else {
                          $result=&courselog($path,$command);
                      }
                  } else {
      &logthis('Unable to do log query: '.$uname.'@'.$udom);
              $result='no_such_file';
          }
   # ------------------------------------------------------------ end of log query
             } else {
   # -------------------------------------------------------- This is an sql query
       my $custom=unescape($arg1);
       my $customshow=unescape($arg2);
             #prepare and execute the query              #prepare and execute the query
     my $sth = $dbh->prepare($query);      my $sth = $dbh->prepare($query);
     my $result;  
     my @files;      my @files;
     my $subsetflag=0;      my $subsetflag=0;
     if ($query) {      if ($query) {
Line 370  sub make_new_child { Line 429  sub make_new_child {
  $result=join("&",@r2) unless $query;   $result=join("&",@r2) unless $query;
  $result.=$customresult;   $result.=$customresult;
     }      }
     # reply with result  # ------------------------------------------------------------ end of sql query
     $result.="\n" if $result;    }
       # reply with result, append \n unless already there
   
       $result.="\n" unless ($result=~/\n$/);
             &reply("queryreply:$queryid:$result",$conserver);              &reply("queryreply:$queryid:$result",$conserver);
   
         }          }

Removed from v.1.42  
changed lines
  Added in v.1.45


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>