X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/9c28e5262862876095648711ca2660c68b40a9b9..d5c973ccb7da1bc87c5caa5d5ac594bc217016f7:/rsync.h diff --git a/rsync.h b/rsync.h index 21bd1b27..83919915 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 @@ -83,6 +85,16 @@ #define MPLEX_BASE 7 +#define NO_EXCLUDES 0 +#define SERVER_EXCLUDES 1 +#define ALL_EXCLUDES 2 + +#define MISSING_OK 0 +#define MISSING_FATAL 1 + +#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. */ @@ -339,11 +351,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 @@ -402,7 +420,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 */ }; @@ -412,13 +431,16 @@ struct map_struct { OFF_T file_size, p_offset, p_fd_offset; }; +#define MATCHFLG_WILD 0x0001 /* pattern has '*', '[', and/or '?' */ +#define MATCHFLG_WILD2 0x0002 /* pattern has '**' */ +#define MATCHFLG_WILD2_PREFIX 0x0004 /* pattern starts with '**' */ +#define MATCHFLG_ABS_PATH 0x0008 /* path-match on absolute path */ struct exclude_struct { char *pattern; - int regular_exp; - int fnmatch_flags; + int match_flags; int include; int directory; - int local; + int slash_cnt; }; struct stats { @@ -459,11 +481,13 @@ int asprintf(char **ptr, const char *format, ...); int vasprintf(char **ptr, const char *format, va_list ap); #endif -#if !defined(HAVE_VSNPRINTF) && !defined(HAVE_C99_VSNPRINTF) -int vsnprintf (char *str, size_t count, const char *fmt, va_list args); +#if !defined(HAVE_VSNPRINTF) || !defined(HAVE_C99_VSNPRINTF) +#define vsnprintf rsync_vsnprintf +int vsnprintf(char *str, size_t count, const char *fmt, va_list args); #endif -#if !defined(HAVE_SNPRINTF) && !defined(HAVE_C99_VSNPRINTF) +#if !defined(HAVE_SNPRINTF) || !defined(HAVE_C99_VSNPRINTF) +#define snprintf rsync_snprintf int snprintf(char *str,size_t count,const char *fmt,...); #endif @@ -619,6 +643,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);