X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/fdd71e177db1a15f46d3d3c92c154a1ddc07f9fd..6bbbc08b83d2d2598a894439a1392c84a67168e2:/rsync.h diff --git a/rsync.h b/rsync.h index 9790c7ce..836c67d6 100644 --- a/rsync.h +++ b/rsync.h @@ -39,7 +39,7 @@ #define SAME_TIME (1<<7) /* update this if you make incompatible changes */ -#define PROTOCOL_VERSION 14 +#define PROTOCOL_VERSION 15 #define MIN_PROTOCOL_VERSION 10 #define MAX_PROTOCOL_VERSION 20 @@ -146,8 +146,10 @@ #ifdef HAVE_SYS_MODE_H /* apparently AIX needs this for S_ISLNK */ +#ifndef S_ISLNK #include #endif +#endif #ifdef HAVE_FNMATCH #include @@ -161,6 +163,13 @@ #include "lib/getopt.h" #endif +/* these are needed for the uid/gid mapping code */ +#include +#include + +#ifndef S_IFLNK +#define S_IFLNK 0120000 +#endif #ifndef S_ISLNK #define S_ISLNK(mode) (((mode) & S_IFLNK) == S_IFLNK) @@ -243,6 +252,16 @@ struct map_struct { int fd,size,p_size,p_offset,p_len; }; +/* we need this function because of the silly way in which duplicate + entries are handled in the file lists - we can't change this + without breaking existing versions */ +static int flist_up(struct file_list *flist, int i) +{ + while (!flist->files[i].name) i++; + return i; +} + + #include "byteorder.h" #include "version.h" #include "proto.h" @@ -285,17 +304,9 @@ extern int errno; #define bzero(buf,n) memset(buf,0,n) #endif -#define SUPPORT_LINKS (HAVE_READLINK && defined(S_ISLNK)) +#define SUPPORT_LINKS HAVE_READLINK #define SUPPORT_HARD_LINKS HAVE_LINK -#ifndef S_ISLNK -#define S_ISLNK(x) 0 -#endif - -#if !SUPPORT_LINKS -#define lstat stat -#endif - #ifndef HAVE_LCHOWN #define lchown chown #endif