[BACK]Return to fileops.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / sudo

Diff for /src/usr.bin/sudo/Attic/fileops.c between version 1.3 and 1.4

version 1.3, 2003/04/19 21:57:17 version 1.4, 2004/09/28 15:10:51
Line 1 
Line 1 
 /*  /*
  * Copyright (c) 1999, 2001 Todd C. Miller <Todd.Miller@courtesan.com>   * Copyright (c) 1999, 2001 Todd C. Miller <Todd.Miller@courtesan.com>
  * All rights reserved.  
  *   *
  * Redistribution and use in source and binary forms, with or without   * Permission to use, copy, modify, and distribute this software for any
  * modification, are permitted provided that the following conditions   * purpose with or without fee is hereby granted, provided that the above
  * are met:   * copyright notice and this permission notice appear in all copies.
  *   *
  * 1. Redistributions of source code must retain the above copyright   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  *    notice, this list of conditions and the following disclaimer.   * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
    * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
    * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
    * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
    * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
    * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  *   *
  * 2. Redistributions in binary form must reproduce the above copyright  
  *    notice, this list of conditions and the following disclaimer in the  
  *    documentation and/or other materials provided with the distribution.  
  *  
  * 3. The name of the author may not be used to endorse or promote products  
  *    derived from this software without specific prior written permission.  
  *  
  * 4. Products derived from this software may not be called "Sudo" nor  
  *    may "Sudo" appear in their names without specific prior written  
  *    permission from the author.  
  *  
  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,  
  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY  
  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL  
  * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,  
  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,  
  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;  
  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,  
  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR  
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF  
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
  *  
  * Sponsored in part by the Defense Advanced Research Projects   * Sponsored in part by the Defense Advanced Research Projects
  * Agency (DARPA) and Air Force Research Laboratory, Air Force   * Agency (DARPA) and Air Force Research Laboratory, Air Force
  * Materiel Command, USAF, under agreement number F39502-99-1-0512.   * Materiel Command, USAF, under agreement number F39502-99-1-0512.
Line 40 
Line 22 
   
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/param.h>  #include <sys/param.h>
   #include <sys/time.h>
 #ifdef HAVE_FLOCK  #ifdef HAVE_FLOCK
 # include <sys/file.h>  # include <sys/file.h>
 #endif /* HAVE_FLOCK */  #endif /* HAVE_FLOCK */
Line 49 
Line 32 
 #endif /* HAVE_UNISTD_H */  #endif /* HAVE_UNISTD_H */
 #include <fcntl.h>  #include <fcntl.h>
 #include <time.h>  #include <time.h>
 #ifdef HAVE_UTIME  
 # ifdef HAVE_UTIME_H  
 #  include <utime.h>  
 # endif /* HAVE_UTIME_H */  
 #else  
 # include "emul/utime.h"  
 #endif /* HAVE_UTIME */  
   
 #include "sudo.h"  #include "sudo.h"
   
 #ifndef lint  #ifndef lint
 static const char rcsid[] = "$Sudo: fileops.c,v 1.4 2003/04/16 00:42:10 millert Exp $";  static const char rcsid[] = "$Sudo: fileops.c,v 1.9 2004/09/08 15:48:23 millert Exp $";
 #endif /* lint */  #endif /* lint */
   
 /*  /*
  * Update the access and modify times on a file.   * Update the access and modify times on an fd or file.
  */   */
 int  int
 touch(path, when)  touch(fd, path, tsp)
       int fd;
     char *path;      char *path;
     time_t when;      struct timespec *tsp;
 {  {
 #ifdef HAVE_UTIME_POSIX      struct timeval times[2];
     struct utimbuf ut, *utp;  
   
     ut.actime = ut.modtime = when;      if (tsp != NULL) {
     utp = &ut;          times[0].tv_sec = times[1].tv_sec = tsp->tv_sec;
 #else          times[0].tv_usec = times[1].tv_usec = tsp->tv_nsec / 1000;
     /* BSD <= 4.3 has no struct utimbuf */      }
     time_t utp[2];  
   
     utp[0] = utp[1] = when;  #if defined(HAVE_FUTIME) || defined(HAVE_FUTIMES)
 #endif /* HAVE_UTIME_POSIX */      if (fd != -1)
           return(futimes(fd, tsp ? times : NULL));
     return(utime(path, utp));      else
   #endif
       if (path != NULL)
           return(utimes(path, tsp ? times : NULL));
       else
           return(-1);
 }  }
   
 /*  /*

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4