Added defines (FLAG_HLINK_EOL, HL_CHECK_MASTER, and HL_SKIP) and changed
[rsync/rsync.git] / rsync.h
diff --git a/rsync.h b/rsync.h
index bc00958..e3aa2e0 100644 (file)
--- a/rsync.h
+++ b/rsync.h
@@ -39,6 +39,7 @@
    incompatible with older versions :-( */
 #define CHAR_OFFSET 0
 
+/* These flags are used during the flist transfer. */
 
 #define FLAG_DELETE (1<<0)
 #define SAME_MODE (1<<1)
 #define HAS_INODE_DATA (1<<9)
 #define SAME_DEV (1<<10)
 
-/* What flags are relevant after the transfer of the flist is complete? */
+/* What flags above are relevant after the transfer of the flist? */
 #define LIVE_FLAGS FLAG_DELETE
 
+/* These flist flags can be set after the flist is transferred. */
+
+/*#define FLAG_DELETE (1<<0) -- from the above list */
+#define FLAG_HLINK_EOL (1<<1)
+
 /* update this if you make incompatible changes */
 #define PROTOCOL_VERSION 28
 
 #define ADD_INCLUDE 1
 #define ADD_EXCLUDE 0
 
-/* Log values.  I *think* what these mean is: FLOG goes to the server
- * logfile; FERROR and FINFO try to end up on the client, with
- * different levels of filtering. */
-enum logcode {FNONE=0, FERROR=1, FINFO=2, FLOG=3 };
+#define FULL_FLUSH     1
+#define NORMAL_FLUSH   0
+
+/* Log-message categories.  FLOG is only used on the daemon side to
+ * output messages to the log file. */
+enum logcode { FERROR=1, FINFO=2, FLOG=3 };
+
+/* Messages types that are sent over the message channel.  The logcode
+ * values must all be present here with identical numbers. */
+enum msgcode {
+       MSG_DATA=0,     /* raw data on the multiplexed stream */
+       MSG_ERROR=FERROR, MSG_INFO=FINFO, MSG_LOG=FLOG, /* remote logging */
+       MSG_REDO=4,     /* reprocess indicated flist index */
+       MSG_DONE=5,     /* current phase is done */
+};
 
 #include "errcode.h"
 
@@ -371,8 +388,11 @@ enum logcode {FNONE=0, FERROR=1, FINFO=2, FLOG=3 };
 
 #define GID_NONE (gid_t) -1
 
+#define HL_CHECK_MASTER        0
+#define HL_SKIP                1
+
 struct hlink {
-       struct file_struct *head;
+       int hlindex;
        struct file_struct *next;
 };
 
@@ -384,7 +404,7 @@ struct idev {
 #define F_DEV  link_u.idev->dev
 #define F_INODE        link_u.idev->inode
 
-#define F_HEAD link_u.links->head
+#define F_HLINDEX link_u.links->hlindex
 #define F_NEXT link_u.links->next
 
 struct file_struct {