Diff for /loncom/apachereload between versions 1.6 and 1.7

version 1.6, 2006/01/28 00:52:27 version 1.7, 2011/05/14 16:12:53
Line 68  if ($wwwid!=$>) { Line 68  if ($wwwid!=$>) {
 # ----------------------------------- Start running script with www permissions  # ----------------------------------- Start running script with www permissions
 &disable_root_capability;  &disable_root_capability;
   
 # --------------------------- Handle case of another apachereload process (locking)  
 unless (&try_to_lock('/tmp/lock_apachereload')) {  
     print "Error. Too many other simultaneous password change requests being ".  
  "made.\n" unless $noprint;  
     exit 4;  
 }  
   
   
 &enable_root_capability;  &enable_root_capability;
 ($>,$<)=(0,0);  ($>,$<)=(0,0);
   
Line 85  unless (&try_to_lock('/tmp/lock_apachere Line 77  unless (&try_to_lock('/tmp/lock_apachere
   
 system($command);  system($command);
   
 #  Remove the lock file.  
   
   
   
 &disable_root_capability;  &disable_root_capability;
 unlink('/tmp/lock_apachereload');  
 exit 0;  exit 0;
   
 # ---------------------------------------------- have setuid script run as root  # ---------------------------------------------- have setuid script run as root
Line 116  sub disable_root_capability { Line 103  sub disable_root_capability {
     }      }
 }  }
   
 # ----------------------- make sure that another apachereload process isn't running  
 sub try_to_lock {  
     my ($lockfile)=@_;  
     my $currentpid;  
     my $lastpid;  
     # Do not manipulate lock file as root  
     if ($>==0) {  
  return 0;  
     }  
     # Try to generate lock file.  
     # Wait 3 seconds.  If same process id is in  
     # lock file, then assume lock file is stale, and  
     # go ahead.  If process id's fluctuate, try  
     # for a maximum of 10 times.  
     for (0..10) {  
  if (-e $lockfile) {  
     open(LOCK,"<$lockfile");  
     $currentpid=<LOCK>;  
     close LOCK;  
     if ($currentpid==$lastpid) {  
  last;  
     }  
     sleep 3;  
     $lastpid=$currentpid;  
  }  
  else {  
     last;  
  }  
  if ($_==10) {  
     return 0;  
  }  
     }  
     open(LOCK,">$lockfile");  
     print LOCK $$;  
     close LOCK;  
     return 1;  
 }  
   
 =head1 NAME  =head1 NAME
   
 apachereload -setuid script to reload the apache web server.  apachereload -setuid script to reload the apache web server.

Removed from v.1.6  
changed lines
  Added in v.1.7


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