added resend logic
[rsync/rsync.git] / rsync.h
diff --git a/rsync.h b/rsync.h
index 9c326e1..9bd631a 100644 (file)
--- a/rsync.h
+++ b/rsync.h
 #define RSYNC_NAME "rsync"
 #define BACKUP_SUFFIX "~"
 
+#define FILE_VALID 1
+#define SAME_MODE (1<<1)
+#define SAME_RDEV (1<<2)
+#define SAME_UID (1<<3)
+#define SAME_GID (1<<4)
+#define SAME_DIR (1<<5)
+#define SAME_NAME SAME_DIR
+#define LONG_NAME (1<<6)
+#define SAME_TIME (1<<7)
+
 /* update this if you make incompatible changes */
-#define PROTOCOL_VERSION 10
+#define PROTOCOL_VERSION 14
 #define MIN_PROTOCOL_VERSION 10
+#define MAX_PROTOCOL_VERSION 20
 
-/* block size to write files in */
-#define WRITE_BLOCK_SIZE (32*1024)
+#define SPARSE_WRITE_SIZE (4*1024)
+#define WRITE_SIZE (32*1024)
+#define CHUNK_SIZE (32*1024)
 #define MAX_MAP_SIZE (4*1024*1024)
 
 #define BLOCKING_TIMEOUT 10
 
+#define FERROR stderr
+#define FINFO (am_server?stderr:stdout)
+
 #include "config.h"
 
 #include <sys/types.h>
 #include <sys/param.h>
 #endif
 
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
 #endif
 
 #ifdef HAVE_COMPAT_H
 #endif
 #include <errno.h>
 
+#ifdef HAVE_MMAP
 #include <sys/mman.h>
+#endif
+
 #ifdef HAVE_UTIME_H
 #include <utime.h>
 #endif
@@ -159,7 +180,9 @@ struct file_struct {
   time_t modtime;
   off_t length;
   mode_t mode;
+  ino_t inode;
   dev_t dev;
+  dev_t rdev;
   uid_t uid;
   gid_t gid;
   char *name;
@@ -190,6 +213,10 @@ struct sum_struct {
   struct sum_buf *sums;                /* points to info for each chunk */
 };
 
+struct map_struct {
+  char *map,*p;
+  int fd,size,p_size,p_offset,p_len;
+};
 
 #include "byteorder.h"
 #include "version.h"
@@ -234,6 +261,11 @@ extern int errno;
 #endif
 
 #define SUPPORT_LINKS (HAVE_READLINK && defined(S_ISLNK))
+#define SUPPORT_HARD_LINKS HAVE_LINK
+
+#ifndef S_ISLNK
+#define S_ISLNK(x) 0
+#endif
 
 #if !SUPPORT_LINKS
 #define lstat stat
@@ -246,3 +278,4 @@ extern int errno;
 #endif
 
 #define IS_DEVICE(mode) (S_ISCHR(mode) || S_ISBLK(mode))
+