Renamed sum_table -> hash_table.
[rsync/rsync.git] / rsync.h
diff --git a/rsync.h b/rsync.h
index 2a40532..86b143c 100644 (file)
--- a/rsync.h
+++ b/rsync.h
 #define XFLG_ANCHORED2ABS      (1<<2)
 #define XFLG_ABS_IF_SLASH      (1<<3)
 
-#define PERMS_REPORT           (1<<0)
-#define PERMS_SKIP_MTIME       (1<<1)
+#define ATTRS_REPORT           (1<<0)
+#define ATTRS_SKIP_MTIME       (1<<1)
 
 #define FULL_FLUSH     1
 #define NORMAL_FLUSH   0
 /* Log-message categories.  Only FERROR and FINFO get sent over the socket.
  * FLOG and FCLIENT are only used on the daemon side for custom logging,
  * while FNAME is only used on the client side. */
-enum logcode { FERROR=1, FINFO=2, FLOG=3, FCLIENT=4, FNAME=5 };
+enum logcode { FERROR=1, FINFO=2, FLOG=3, FCLIENT=4, FNAME=5, FSOCKERR=6 };
 
 /* 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, /* remote logging */
-       MSG_LOG=FLOG,   /* sibling logging */
+       MSG_LOG=FLOG, MSG_SOCKERR=FSOCKERR, /* sibling logging */
        MSG_REDO=9,     /* reprocess indicated flist index */
        MSG_SUCCESS=100,/* successfully updated indicated flist index */
        MSG_DELETED=101,/* successfully deleted a file on receiving side */
@@ -560,6 +560,7 @@ struct sum_buf {
        OFF_T offset;           /**< offset in file of this chunk */
        int32 len;              /**< length of chunk of file */
        uint32 sum1;            /**< simple checksum */
+       int32 chain;            /**< next hash-table collision */
        short flags;            /**< flag bits */
        char sum2[SUM_LENGTH];  /**< checksum  */
 };
@@ -640,6 +641,7 @@ struct stats {
        int current_file_index;
 };
 
+struct chmod_mode_struct;
 
 #include "byteorder.h"
 #include "lib/mdfour.h"
@@ -647,6 +649,15 @@ struct stats {
 #include "lib/permstring.h"
 #include "lib/addrinfo.h"
 
+#if !defined __GNUC__ || defined __APPLE__
+/* Apparently the OS X port of gcc gags on __attribute__.
+ *
+ * <http://www.opensource.apple.com/bugs/X/gcc/2512150.html> */
+#define __attribute__(x)
+#endif
+
+#define UNUSED(x) x __attribute__((__unused__))
+
 #include "proto.h"
 
 /* We have replacement versions of these if they're missing. */
@@ -690,7 +701,12 @@ extern int errno;
 #define SUPPORT_HARD_LINKS 1
 #endif
 
-#define SIGNAL_CAST (RETSIGTYPE (*)())
+#ifdef HAVE_SIGACTION
+#define SIGACTION(n,h) sigact.sa_handler=(h), sigaction((n),&sigact,NULL)
+#define signal(n,h) we_need_to_call_SIGACTION_not_signal(n,h)
+#else
+#define SIGACTION(n,h) signal(n,h)
+#endif
 
 #ifndef EWOULDBLOCK
 #define EWOULDBLOCK EAGAIN
@@ -787,7 +803,8 @@ extern int errno;
 #define INADDR_NONE 0xffffffff
 #endif
 
-#define IS_DEVICE(mode) (S_ISCHR(mode) || S_ISBLK(mode) || S_ISSOCK(mode) || S_ISFIFO(mode))
+#define IS_SPECIAL(mode) (S_ISSOCK(mode) || S_ISFIFO(mode))
+#define IS_DEVICE(mode) (S_ISCHR(mode) || S_ISBLK(mode))
 
 /* Initial mask on permissions given to temporary files.  Mask off setuid
      bits and group access because of potential race-condition security
@@ -797,14 +814,6 @@ extern int errno;
 /* handler for null strings in printf format */
 #define NS(s) ((s)?(s):"<NULL>")
 
-#if !defined __GNUC__ || defined __APPLE__
-/* Apparently the OS X port of gcc gags on __attribute__.
- *
- * <http://www.opensource.apple.com/bugs/X/gcc/2512150.html> */
-#define __attribute__(x)
-
-#endif
-
 /* Convenient wrappers for malloc and realloc.  Use them. */
 #define new(type) ((type *)malloc(sizeof(type)))
 #define new_array(type, num) ((type *)_new_array(sizeof(type), (num)))
@@ -869,7 +878,3 @@ int inet_pton(int af, const char *src, void *dst);
 #ifdef MAINTAINER_MODE
 const char *get_panic_action(void);
 #endif
-
-#define UNUSED(x) x __attribute__((__unused__))
-
-extern const char *io_write_phase, *io_read_phase;