X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/51106bafc6916a3054bc2b8c21f414acb8f46f35..87cc45e136333407acc6463f6415df4979289f30:/rsync.h diff --git a/rsync.h b/rsync.h index a7f1f792..e3cbe570 100644 --- a/rsync.h +++ b/rsync.h @@ -50,7 +50,7 @@ #define SAME_TIME (1<<7) /* update this if you make incompatible changes */ -#define PROTOCOL_VERSION 26 +#define PROTOCOL_VERSION 27 /* We refuse to interoperate with versions that are not in this range. * Note that we assume we'll work with later versions: the onus is on @@ -62,12 +62,14 @@ * the old protocol will become the minimum and * compatibility code removed. * - * There are two possible explanations for the limit at thirty: either - * to allow new major-rev versions that do not interoperate with us, - * and (more likely) so that we can detect an attempt to connect rsync - * to a non-rsync server, which is unlikely to begin by sending a byte - * between 15 and 30. */ -#define MIN_PROTOCOL_VERSION 15 + * There are two possible explanations for the limit at + * MAX_PROTOCOL_VERSION: either to allow new major-rev versions that + * do not interoperate with us, and (more likely) so that we can + * detect an attempt to connect rsync to a non-rsync server, which is + * unlikely to begin by sending a byte between MIN_PROTOCL_VERSION and + * MAX_PROTOCOL_VERSION. */ + +#define MIN_PROTOCOL_VERSION 17 #define OLD_PROTOCOL_VERSION 20 #define MAX_PROTOCOL_VERSION 40 @@ -265,23 +267,29 @@ enum logcode {FNONE=0, FERROR=1, FINFO=2, FLOG=3 }; #define STRUCT_STAT struct stat #endif -#if (SIZEOF_LONG == 8) +#if HAVE_OFF64_T +#define int64 off64_t +#elif (SIZEOF_LONG == 8) #define int64 long -#define uint64 unigned long #elif (SIZEOF_INT == 8) #define int64 int -#define uint64 unsigned int #elif HAVE_LONGLONG #define int64 long long -#define uint64 unsigned long long #else /* As long as it gets... */ #define int64 off_t -#define uint64 unsigned off_t #define NO_INT64 #endif -#if HAVE_OFF64_T -#define int64 off64_t + +#if (SIZEOF_LONG == 8) +#define uint64 unsigned long +#elif (SIZEOF_INT == 8) +#define uint64 unsigned int +#elif HAVE_LONGLONG +#define uint64 unsigned long long +#else +/* As long as it gets... */ +#define uint64 unsigned off_t #endif /* Starting from protocol version 26, we always use 64-bit @@ -333,11 +341,17 @@ enum logcode {FNONE=0, FERROR=1, FINFO=2, FLOG=3 }; /* the length of the md4 checksum */ #define MD4_SUM_LENGTH 16 #define SUM_LENGTH 16 +#define SHORT_SUM_LENGTH 2 +#define BLOCKSUM_BIAS 10 #ifndef MAXPATHLEN #define MAXPATHLEN 1024 #endif +#ifndef NAME_MAX +#define NAME_MAX 255 +#endif + #ifndef INADDR_NONE #define INADDR_NONE 0xffffffff #endif @@ -396,7 +410,8 @@ struct sum_struct { OFF_T flength; /**< total file length */ size_t count; /**< how many chunks */ size_t remainder; /**< flength % block_length */ - size_t n; /**< block_length */ + size_t blength; /**< block_length */ + size_t s2length; /**< sum2_length */ struct sum_buf *sums; /**< points to info for each chunk */ }; @@ -613,6 +628,10 @@ void rsyserr(enum logcode, int, const char *, ...) #define inet_ntoa rep_inet_ntoa #endif +/* Make sure that the O_BINARY flag is defined. */ +#ifndef O_BINARY +#define O_BINARY 0 +#endif #ifndef HAVE_STRLCPY size_t strlcpy(char *d, const char *s, size_t bufsize);