Fixed a problem with some relocated code in last patch.
authorWayne Davison <wayned@samba.org>
Thu, 28 Jul 2005 00:59:15 +0000 (00:59 +0000)
committerWayne Davison <wayned@samba.org>
Thu, 28 Jul 2005 00:59:15 +0000 (00:59 +0000)
rsyncd-perm.diff

index de1d357..ba16931 100644 (file)
@@ -45,7 +45,7 @@
  /* local prototypes */
  static int    strwicmp(char *psz1, char *psz2);
 --- orig/rsync.c       2005-07-27 23:31:12
-+++ rsync.c    2005-07-27 23:49:21
++++ rsync.c    2005-07-28 00:54:53
 @@ -32,6 +32,8 @@ extern int am_server;
  extern int am_sender;
  extern int am_generator;
  extern int preserve_uid;
  extern int preserve_gid;
  extern int inplace;
-@@ -56,6 +58,17 @@ int set_perms(char *fname,struct file_st
+@@ -56,6 +58,7 @@ int set_perms(char *fname,struct file_st
        int updated = 0;
        STRUCT_STAT st2;
        int change_uid, change_gid;
 +      mode_t mode = file->mode; /* file->mode shouldn't be modified */
-+
+       if (!st) {
+               if (dry_run)
+@@ -125,9 +128,19 @@ int set_perms(char *fname,struct file_st
+               updated = 1;
+       }
 +      if (am_daemon) {
 +              if (S_ISDIR(st->st_mode)) {
 +                      mode = (mode & lp_directory_mask(module_id))
 +                           | lp_force_create_mode(module_id);
 +              }
 +      }
-       if (!st) {
-               if (dry_run)
-@@ -126,8 +139,8 @@ int set_perms(char *fname,struct file_st
-       }
++
  #ifdef HAVE_CHMOD
 -      if ((st->st_mode & CHMOD_BITS) != (file->mode & CHMOD_BITS)) {
 -              int ret = do_chmod(fname, file->mode);