X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/4b163f00c236384a3e0f566729c1a79269450fea..11b02d927f2d809aeade01768b16b690220c1049:/rsync.h diff --git a/rsync.h b/rsync.h index b4147989..989ebbd0 100644 --- a/rsync.h +++ b/rsync.h @@ -50,7 +50,7 @@ #define XMIT_LONG_NAME (1<<6) #define XMIT_SAME_TIME (1<<7) #define XMIT_SAME_RDEV_MAJOR (1<<8) /* protocols 28 - now (devices only) */ -#define XMIT_NON_XFER_DIR (1<<8) /* protocols 30 - now (dirs only) */ +#define XMIT_NO_CONTENT_DIR (1<<8) /* protocols 30 - now (dirs only) */ #define XMIT_HLINKED (1<<9) /* protocols 28 - now */ #define XMIT_SAME_DEV_pre30 (1<<10) /* protocols 28 - 29 */ #define XMIT_USER_NAME_FOLLOWS (1<<10) /* protocols 30 - now */ @@ -63,14 +63,15 @@ #define FLAG_TOP_DIR (1<<0) /* sender/receiver/generator */ #define FLAG_FILE_SENT (1<<1) /* sender/receiver/generator */ #define FLAG_DIR_CREATED (1<<1) /* generator */ -#define FLAG_XFER_DIR (1<<2) /* sender/receiver/generator */ +#define FLAG_CONTENT_DIR (1<<2) /* sender/receiver/generator */ #define FLAG_MOUNT_DIR (1<<3) /* sender/generator */ #define FLAG_DUPLICATE (1<<4) /* sender */ #define FLAG_MISSING_DIR (1<<4) /* generator */ -#define FLAG_HLINKED (1<<5) /* receiver/generator */ -#define FLAG_HLINK_FIRST (1<<6) /* receiver/generator */ +#define FLAG_HLINKED (1<<5) /* receiver/generator (checked on all types) */ +#define FLAG_HLINK_FIRST (1<<6) /* receiver/generator (w/FLAG_HLINKED) */ +#define FLAG_IMPLIED_DIR (1<<6) /* sender/receiver/generator (dirs only) */ #define FLAG_HLINK_LAST (1<<7) /* receiver/generator */ -#define FLAG_HLINK_DONE (1<<8) /* receiver/generator */ +#define FLAG_HLINK_DONE (1<<8) /* receiver/generator (checked on all types) */ #define FLAG_LENGTH64 (1<<9) /* sender/receiver/generator */ #define FLAG_SKIP_GROUP (1<<10) /* receiver/generator */ @@ -89,7 +90,7 @@ /* This is used when working on a new protocol version in CVS, and should * be a new non-zero value for each CVS change that affects the protocol. * It must ALWAYS be 0 when the protocol goes final! */ -#define SUBPROTOCOL_VERSION 9 +#define SUBPROTOCOL_VERSION 12 /* 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 @@ -242,6 +243,9 @@ enum msgcode { #ifdef HAVE_INTTYPES_H # include #endif +#ifdef HAVE_STDINT_H +# include +#endif #ifdef HAVE_UNISTD_H # include #endif @@ -374,6 +378,9 @@ enum msgcode { #ifdef ICONV_CONST #undef ICONV_CONST #endif +#ifdef ICONV_OPTION +#undef ICONV_OPTION +#endif #ifdef iconv_t #undef iconv_t #endif @@ -625,7 +632,7 @@ extern int xattrs_ndx; #define F_HL_PREV(f) OPT_EXTRA(f, LEN64_BUMP(f)+inc_recurse)->num /* non-dirs */ #define F_DIR_NODE_P(f) (&OPT_EXTRA(f, LEN64_BUMP(f) \ + DIRNODE_EXTRA_CNT - 1)->num) /* sender dirs */ -#define F_DIR_RELS_P(f) (&OPT_EXTRA(f, LEN64_BUMP(f) + DIRNODE_EXTRA_CNT \ +#define F_DIR_RELNAMES_P(f) (&OPT_EXTRA(f, LEN64_BUMP(f) + DIRNODE_EXTRA_CNT \ + PTR_EXTRA_CNT - 1)->num) /* sender dirs */ #define F_DIR_DEFACL(f) OPT_EXTRA(f, LEN64_BUMP(f))->unum /* receiver dirs */ #define F_DIR_DEV_P(f) (&OPT_EXTRA(f, LEN64_BUMP(f) + ACL_BUMP(f) \ @@ -813,6 +820,11 @@ typedef struct { #define RL_DUMP_COMMENTS (1<<1) #define RL_CONVERT (1<<2) +typedef struct { + char is_dot_dir; + char fname[1]; /* has variable size */ +} relnamecache; + #include "byteorder.h" #include "lib/mdigest.h" #include "lib/wildmatch.h" @@ -841,7 +853,7 @@ typedef struct { #ifdef SUPPORT_XATTRS item_list *xattr; #endif -} statx; +} stat_x; #define ACL_READY(sx) ((sx).acc_acl != NULL) #define XATTR_READY(sx) ((sx).xattr != NULL)