Diff for /loncom/lond between versions 1.148 and 1.152

version 1.148, 2003/09/29 10:09:18 version 1.152, 2003/10/08 14:18:34
Line 60 Line 60
 # 09/08/2003 Ron Fox:  Told lond to take care of change logging so we  # 09/08/2003 Ron Fox:  Told lond to take care of change logging so we
 #      don't have to remember it:  #      don't have to remember it:
 # $Log$  # $Log$
   # Revision 1.152  2003/10/08 14:18:34  www
   # Not good: this should be backported into 1.0.2!
   #
   # Revision 1.151  2003/10/03 15:11:03  albertel
   # - if we fail to fetch an update to the file, don't blow away the old one
   #   (this was the BUG that blew away that one default.sequence that Matthew
   #    ended up restoring from data.)
   #
   # Revision 1.150  2003/09/30 10:16:06  foxr
   # Added invocation of apachereload in ReloadApache sub.
   # This completes the addtion of the reinit functionality.
   #
   # Revision 1.149  2003/09/30 09:44:13  foxr
   # Tested UpdateHosts ability to
   # - Remove live children for hosts that are no longer in the hosts.tab
   # - Remove live children for hosts whose IPs have changed in the hosts.tab
   #
 # Revision 1.148  2003/09/29 10:09:18  foxr  # Revision 1.148  2003/09/29 10:09:18  foxr
 # Put in logic to reinit lond itself (except for apache reload).  I don't believe  # Put in logic to reinit lond itself (except for apache reload).  I don't believe
 # this logic works correctly yet, however lond still does everything it used to doso I'll do the commit anyway.  # this logic works correctly yet, however lond still does everything it used to doso I'll do the commit anyway.
Line 583  sub ReadHostTable { Line 600  sub ReadHostTable {
 }  }
 #  #
 #  Reload the Apache daemon's state.  #  Reload the Apache daemon's state.
   #  This is done by invoking /home/httpd/perl/apachereload
   #  a setuid perl script that can be root for us to do this job.
 #  #
 sub ReloadApache {  sub ReloadApache {
       my $execdir = $perlvar{'lonDaemons'};
       my $script  = $execdir."/apachereload";
       system($script);
 }  }
   
 #  #
Line 613  sub UpdateHosts { Line 635  sub UpdateHosts {
     foreach my $child (keys %children) {      foreach my $child (keys %children) {
  my $childip = $children{$child};   my $childip = $children{$child};
  if(!$hostid{$childip}) {   if(!$hostid{$childip}) {
       logthis('<font color="blue"> UpdateHosts killing child '
       ." $child for ip $childip </font>");
     kill('INT', $child);      kill('INT', $child);
    } else {
       logthis('<font color="green"> keeping child for ip '
       ." $childip (pid=$child) </font>");
  }   }
     }      }
     ReloadApache;      ReloadApache;
Line 651  sub checkchildren { Line 678  sub checkchildren {
         }          }
     }      }
     $SIG{ALRM} = 'DEFAULT';      $SIG{ALRM} = 'DEFAULT';
     $SIG{__DIE__} = \&cathcexception;      $SIG{__DIE__} = \&catchcexception;
 }  }
   
 # --------------------------------------------------------------------- Logging  # --------------------------------------------------------------------- Logging
Line 1391  sub make_new_child { Line 1418  sub make_new_child {
                        }                         }
 # -------------------------------------- fetch a user file from a remote server  # -------------------------------------- fetch a user file from a remote server
                    } elsif ($userinput =~ /^fetchuserfile/) {                     } elsif ($userinput =~ /^fetchuserfile/) {
                       my ($cmd,$fname)=split(/:/,$userinput);         my ($cmd,$fname)=split(/:/,$userinput);
       my ($udom,$uname,$ufile)=split(/\//,$fname);         my ($udom,$uname,$ufile)=split(/\//,$fname);
                       my $udir=propath($udom,$uname).'/userfiles';         my $udir=propath($udom,$uname).'/userfiles';
                       unless (-e $udir) { mkdir($udir,0770); }         unless (-e $udir) { mkdir($udir,0770); }
                        if (-e $udir) {                         if (-e $udir) {
                        $ufile=~s/^[\.\~]+//;     $ufile=~s/^[\.\~]+//;
                        $ufile=~s/\///g;     $ufile=~s/\///g;
                        my $transname=$udir.'/'.$ufile;     my $destname=$udir.'/'.$ufile;
                        my $remoteurl='http://'.$clientip.'/userfiles/'.$fname;     my $transname=$udir.'/'.$ufile.'.in.transit';
                              my $response;     my $remoteurl='http://'.$clientip.'/userfiles/'.$fname;
                               {     my $response;
                              my $ua=new LWP::UserAgent;     {
                              my $request=new HTTP::Request('GET',"$remoteurl");         my $ua=new LWP::UserAgent;
                              $response=$ua->request($request,$transname);         my $request=new HTTP::Request('GET',"$remoteurl");
       }         $response=$ua->request($request,$transname);
                              if ($response->is_error()) {     }
  unlink($transname);     if ($response->is_error()) {
                                  my $message=$response->status_line;         unlink($transname);
                                  &logthis(         my $message=$response->status_line;
                                   "LWP GET: $message for $fname ($remoteurl)");         &logthis("LWP GET: $message for $fname ($remoteurl)");
  print $client "failed\n";         print $client "failed\n";
                              } else {     } else {
                                  print $client "ok\n";         if (!rename($transname,$destname)) {
                              }     &logthis("Unable to move $transname to $destname");
                      } else {     unlink($transname);
                        print $client "not_home\n";     print $client "failed\n";
                      }          } else {
      print $client "ok\n";
          }
      }
          } else {
      print $client "not_home\n";
          }
 # ------------------------------------------ authenticate access to a user file  # ------------------------------------------ authenticate access to a user file
                    } elsif ($userinput =~ /^tokenauthuserfile/) {                     } elsif ($userinput =~ /^tokenauthuserfile/) {
                        my ($cmd,$fname,$session)=split(/:/,$userinput);                         my ($cmd,$fname,$session)=split(/:/,$userinput);

Removed from v.1.148  
changed lines
  Added in v.1.152


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