Put 3 flist_struct items into a union: rdev, sum, and link (all
[rsync/rsync.git] / rsync.h
diff --git a/rsync.h b/rsync.h
index 30ab190..e0fb182 100644 (file)
--- a/rsync.h
+++ b/rsync.h
@@ -43,7 +43,7 @@
 #define FLAG_DELETE (1<<0)
 #define SAME_MODE (1<<1)
 #define EXTENDED_FLAGS (1<<2)
-#define OLD_SAME_RDEV EXTENDED_FLAGS
+#define SAME_RDEV_pre28 EXTENDED_FLAGS /* Only use in protocols < 28 */
 #define SAME_UID (1<<3)
 #define SAME_GID (1<<4)
 #define SAME_DIR (1<<5)
@@ -54,6 +54,9 @@
 #define HAS_INODE_DATA (1<<9)
 #define SAME_DEV (1<<10)
 
+/* What flags are relevant after the transfer of the flist is complete? */
+#define LIVE_FLAGS (FLAG_DELETE|HAS_INODE_DATA)
+
 /* update this if you make incompatible changes */
 #define PROTOCOL_VERSION 28
 
@@ -372,20 +375,18 @@ struct file_struct {
        time_t modtime;
        OFF_T length;
        mode_t mode;
-
        INO64_T inode;
-       /** Device this file lives upon */
        DEV64_T dev;
-
-       /** If this is a device node, the device number. */
-       DEV64_T rdev;
+       union {
+               DEV64_T rdev;   /* The device number, if this is a device */
+               char *sum;      /* Only a normal file can have a checksum */
+               char *link;     /* Holds symlink string, if a symlink */
+       } u;
        uid_t uid;
        gid_t gid;
        char *basename;
        char *dirname;
        char *basedir;
-       char *link;
-       char *sum;
        unsigned short flags;
 };