added --backup-dir option from Bob Edwards
[rsync/rsync.git] / util.c
diff --git a/util.c b/util.c
index 2d1989d..078d59f 100644 (file)
--- a/util.c
+++ b/util.c
 
 extern int verbose;
 
-/****************************************************************************
-Set a fd into nonblocking mode. Uses POSIX O_NONBLOCK if available,
-else
-if SYSV use O_NDELAY
-if BSD use FNDELAY
-****************************************************************************/
-int set_nonblocking(int fd)
-{
-       int val;
-#ifdef O_NONBLOCK
-#define FLAG_TO_SET O_NONBLOCK
-#else
-#ifdef SYSV
-#define FLAG_TO_SET O_NDELAY
-#else /* BSD */
-#define FLAG_TO_SET FNDELAY
-#endif
-#endif
-       
-       if((val = fcntl(fd, F_GETFL, 0)) == -1)
-               return -1;
-       val |= FLAG_TO_SET;
-       return fcntl( fd, F_SETFL, val);
-#undef FLAG_TO_SET
-}
-
-
 /* this is taken from CVS */
 int piped_child(char **command,int *f_in,int *f_out)
 {
@@ -101,9 +74,6 @@ int piped_child(char **command,int *f_in,int *f_out)
   *f_in = from_child_pipe[0];
   *f_out = to_child_pipe[1];
 
-  set_nonblocking(*f_in);
-  set_nonblocking(*f_out);
-  
   return pid;
 }
 
@@ -282,7 +252,7 @@ int copy_file(char *source, char *dest, mode_t mode)
        char buf[1024 * 8];
        int len;   /* Number of bytes read into `buf'. */
 
-       ifd = open(source, O_RDONLY);
+       ifd = do_open(source, O_RDONLY, 0);
        if (ifd == -1) {
                rprintf(FERROR,"open %s: %s\n",
                        source,strerror(errno));
@@ -397,17 +367,6 @@ int robust_rename(char *from, char *to)
                return -1;
        return do_rename(from, to);
 #endif
-    }
-
-
-/* sleep for a while via select */
-void u_sleep(int usec)
-{
-       struct timeval tv;
-
-       tv.tv_sec = 0;
-       tv.tv_usec = usec;
-       select(0, NULL, NULL, NULL, &tv);
 }
 
 
@@ -900,3 +859,15 @@ char *timestring(time_t t)
        return(TimeBuf);
 }
 
+
+/****************************************************************************
+ like waitpid but does the WEXITSTATUS
+****************************************************************************/
+#ifndef WEXITSTATUS
+#define        WEXITSTATUS(stat)       ((int)(((stat)>>8)&0xFF))
+#endif
+void wait_process(pid_t pid, int *status)
+{
+       waitpid(pid, status, 0);
+       *status = WEXITSTATUS(*status);
+}