Added PERMS_REPORT and PERMS_SKIP_TIME.
[rsync/rsync.git] / generator.c
index 0a9d3f5..59e5bd9 100644 (file)
@@ -43,7 +43,14 @@ extern int protocol_version;
 extern int always_checksum;
 extern char *compare_dest;
 extern int link_dest;
-extern struct file_struct **hlink_list;
+extern int whole_file;
+extern int local_server;
+extern int read_batch;
+extern int write_batch;
+extern int list_only;
+extern int only_existing;
+extern int orig_umask;
+extern int safe_symlinks;
 
 
 /* choose whether to skip a particular file */
@@ -54,7 +61,7 @@ static int skip_file(char *fname, struct file_struct *file, STRUCT_STAT *st)
        }
        if (link_dest) {
                if (preserve_perms
-                   && (st->st_mode & ~_S_IFMT) != (file->mode & ~_S_IFMT))
+                   && (st->st_mode & CHMOD_BITS) != (file->mode & CHMOD_BITS))
                        return 0;
 
                if (am_root && preserve_uid && st->st_uid != file->uid)
@@ -102,7 +109,7 @@ void write_sum_head(int f, struct sum_struct *sum)
 {
        static struct sum_struct null_sum;
 
-       if (sum == (struct sum_struct *)NULL)
+       if (sum == NULL)
                sum = &null_sum;
 
        write_int(f, sum->count);
@@ -205,13 +212,9 @@ static void sum_sizes_sqroot(struct sum_struct *sum, uint64 len)
  * Whew. */
 static BOOL disable_deltas_p(void)
 {
-       extern int whole_file;
-       extern int local_server;
-       extern int write_batch;
-
        if (whole_file > 0)
                return True;
-       if (whole_file == 0 || write_batch)
+       if (whole_file == 0 || write_batch || read_batch)
                return False;
        return local_server;
 }
@@ -271,10 +274,6 @@ void recv_generator(char *fname, struct file_struct *file, int i, int f_out)
        int statret;
        char *fnamecmp;
        char fnamecmpbuf[MAXPATHLEN];
-       extern char *compare_dest;
-       extern int list_only;
-       extern int only_existing;
-       extern int orig_umask;
 
        if (list_only)
                return;
@@ -296,7 +295,8 @@ void recv_generator(char *fname, struct file_struct *file, int i, int f_out)
                /* if the file exists already and we aren't perserving
                 * permissions then act as though the remote end sent
                 * us the file permissions we already have */
-               file->mode = (file->mode & _S_IFMT) | (st.st_mode & ~_S_IFMT);
+               file->mode = (file->mode & ~CHMOD_BITS)
+                          | (st.st_mode & CHMOD_BITS);
        }
 
        if (S_ISDIR(file->mode)) {
@@ -335,7 +335,6 @@ void recv_generator(char *fname, struct file_struct *file, int i, int f_out)
 #if SUPPORT_LINKS
                char lnk[MAXPATHLEN];
                int l;
-               extern int safe_symlinks;
 
                if (safe_symlinks && unsafe_symlink(file->u.link, fname)) {
                        if (verbose) {
@@ -378,7 +377,7 @@ void recv_generator(char *fname, struct file_struct *file, int i, int f_out)
        if (am_root && preserve_devices && IS_DEVICE(file->mode)) {
                if (statret != 0 ||
                    st.st_mode != file->mode ||
-                   (DEV64_T)st.st_rdev != file->u.rdev) {
+                   st.st_rdev != file->u.rdev) {
                        delete_file(fname);
                        if (verbose > 2)
                                rprintf(FINFO,"mknod(%s,0%o,0x%x)\n",
@@ -408,7 +407,7 @@ void recv_generator(char *fname, struct file_struct *file, int i, int f_out)
 
        fnamecmp = fname;
 
-       if ((statret == -1) && (compare_dest != NULL)) {
+       if (statret == -1 && compare_dest != NULL) {
                /* try the file at compare_dest instead */
                int saveerrno = errno;
                pathjoin(fnamecmpbuf, sizeof fnamecmpbuf, compare_dest, fname);
@@ -530,9 +529,10 @@ void generate_files(int f, struct file_list *flist, char *local_name)
        int phase=0;
        char fbuf[MAXPATHLEN];
 
-       if (verbose > 2)
-               rprintf(FINFO,"generator starting pid=%d count=%d\n",
-                       (int)getpid(),flist->count);
+       if (verbose > 2) {
+               rprintf(FINFO, "generator starting pid=%ld count=%d\n",
+                       (long)getpid(), flist->count);
+       }
 
        if (verbose >= 2) {
                rprintf(FINFO,