Diff for /loncom/lonsql between versions 1.31 and 1.38

version 1.31, 2001/04/11 20:05:29 version 1.38, 2001/11/28 21:49:27
Line 3 Line 3
 # 7/25 Gerd Kortemeyer  # 7/25 Gerd Kortemeyer
 # many different dates Scott Harrison  # many different dates Scott Harrison
 # 03/22/2001 Scott Harrison  # 03/22/2001 Scott Harrison
   # 8/30 Gerd Kortemeyer
   
 use IO::Socket;  use IO::Socket;
 use Symbol;  use Symbol;
 use POSIX;  use POSIX;
Line 19  require "find.pl"; Line 21  require "find.pl";
 sub wanted {  sub wanted {
     (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&      (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
     -f _ &&      -f _ &&
     /^.*\.meta$/ &&      /^.*\.meta$/ && !/^.+\.\d+\.[^\.]+\.meta$/ &&
     push(@metalist,"$dir/$_");      push(@metalist,"$dir/$_");
 }  }
   
Line 45  close(CONFIG); Line 47  close(CONFIG);
     $dbh = DBI->connect("DBI:mysql:loncapa","www",$perlvar{'lonSqlAccess'},{ RaiseError =>0,PrintError=>0})      $dbh = DBI->connect("DBI:mysql:loncapa","www",$perlvar{'lonSqlAccess'},{ RaiseError =>0,PrintError=>0})
     ) {       ) { 
  print "Cannot connect to database!\n";   print "Cannot connect to database!\n";
  exit;   $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";
    $subj="LON: $perlvar{'lonHostID'} Cannot connect to database!";
    system("echo 'Cannot connect to MySQL database!' |\
    mailto $emailto -s '$subj' > /dev/null");
    exit 1;
     }      }
     else {      else {
  $dbh->disconnect;   $dbh->disconnect;
Line 73  while ($configline=<CONFIG>) { Line 79  while ($configline=<CONFIG>) {
     chomp($ip);      chomp($ip);
   
     $hostip{$ip}=$id;      $hostip{$ip}=$id;
   
     if ($id eq $perlvar{'lonHostID'}) { $thisserver=$name; }      if ($id eq $perlvar{'lonHostID'}) { $thisserver=$name; }
   
     $PREFORK++;      $PREFORK++;
 }  }
 close(CONFIG);  close(CONFIG);
   
   $PREFORK=int($PREFORK/4);
   
 $unixsock = "mysqlsock";  $unixsock = "mysqlsock";
 my $localfile="$perlvar{'lonSockDir'}/$unixsock";  my $localfile="$perlvar{'lonSockDir'}/$unixsock";
 my $server;  my $server;
Line 270  sub make_new_child { Line 277  sub make_new_child {
  }   }
  else {   else {
     @metalist=(); pop @metalist;      @metalist=(); pop @metalist;
     &find("$perlvar{'lonDocRoot'}/res");      opendir(RESOURCES,"$perlvar{'lonDocRoot'}/res/$perlvar{'lonDefDomain'}");
       my @homeusers=grep
             {&ishome("$perlvar{'lonDocRoot'}/res/$perlvar{'lonDefDomain'}/$_")}
             grep {!/^\.\.?$/} readdir(RESOURCES);
       closedir RESOURCES;
       foreach my $user (@homeusers) {
    &find("$perlvar{'lonDocRoot'}/res/$perlvar{'lonDefDomain'}/$user");
       }
  }   }
 # &logthis("FILELIST:" . join(":::",@metalist));  # &logthis("FILELIST:" . join(":::",@metalist));
  # if file is indicated in sql database and   # if file is indicated in sql database and
Line 289  sub make_new_child { Line 303  sub make_new_child {
        'creationdate','keywords','language',         'creationdate','keywords','language',
        'lastrevisiondate','mime','notes',         'lastrevisiondate','mime','notes',
        'owner','subject','title') {         'owner','subject','title') {
     $stuff=~s/\n?\<$f[^\>]*\>.*?<\/$f[^\>]*\>\n?//;      $stuff=~s/\n?\<$f[^\>]*\>.*?<\/$f[^\>]*\>\n?//s;
  }   }
  my $m2=$m; my $docroot=$perlvar{'lonDocRoot'};   my $m2=$m; my $docroot=$perlvar{'lonDocRoot'};
  $m2=~s/^$docroot//;   $m2=~s/^$docroot//;
  $m2=~s/\.meta$//;   $m2=~s/\.meta$//;
  unless ($query) {   unless ($query) {
     my $q2="select * from metadata where url like '$m2'";      my $q2="select * from metadata where url like binary '$m2'";
     my $sth = $dbh->prepare($q2);      my $sth = $dbh->prepare($q2);
     $sth->execute();      $sth->execute();
     my $r1=$sth->fetchall_arrayref;      my $r1=$sth->fetchall_arrayref;
Line 364  sub reply { Line 378  sub reply {
     }      }
   } else {    } else {
     $answer='self_reply';      $answer='self_reply';
       $answer=subreply($cmd,$server);
   }     } 
   return $answer;    return $answer;
 }  }
Line 383  sub unescape { Line 398  sub unescape {
     $str =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;      $str =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
     return $str;      return $str;
 }  }
   
   # --------------------------------------- Is this the home server of an author?
   # (copied from lond, modification of the return value)
   sub ishome {
       my $author=shift;
       $author=~s/\/home\/httpd\/html\/res\/([^\/]*)\/([^\/]*).*/$1\/$2/;
       my ($udom,$uname)=split(/\//,$author);
       my $proname=propath($udom,$uname);
       if (-e $proname) {
    return 1;
       } else {
           return 0;
       }
   }
   
   # -------------------------------------------- Return path to profile directory
   # (copied from lond)
   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;
   } 

Removed from v.1.31  
changed lines
  Added in v.1.38


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