X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/215465713b5b9df1da371c5a871af6a67ecdc0c6..d26c7dfdb0a28a8ffc1bf5bffeb5555883c2f1e2:/rsync.h diff --git a/rsync.h b/rsync.h index a8463583..88f55f93 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 14 /* 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 @@ -121,7 +122,7 @@ #define CHUNK_SIZE (32*1024) #define MAX_MAP_SIZE (256*1024) #define IO_BUFFER_SIZE (4092) -#define MAX_BLOCK_SIZE ((int32)1 << 29) +#define MAX_BLOCK_SIZE ((int32)1 << 17) #define IOERR_GENERAL (1<<0) /* For backward compatibility, this must == 1 */ #define IOERR_VANISHED (1<<1) @@ -182,6 +183,10 @@ #define SIGNIFICANT_ITEM_FLAGS (~(\ ITEM_BASIS_TYPE_FOLLOWS | ITEM_XNAME_FOLLOWS | ITEM_LOCAL_CHANGE)) +#define CFN_KEEP_LEADING_DOT_DIR (1<<0) +#define CFN_KEEP_TRAILING_SLASH (1<<1) +#define CFN_DROP_TRAILING_DOT_DIR (1<<2) +#define CFN_COLLAPSE_DOT_DOT_DIRS (1<<3) /* Log-message categories. Only FERROR and FINFO get sent over the socket, * but FLOG and FSOCKERR can be sent over the receiver -> generator pipe. @@ -326,7 +331,9 @@ enum msgcode { #include #include #include +#ifdef HAVE_NETDB_H #include +#endif #include #include @@ -390,6 +397,22 @@ enum msgcode { #include "lib/pool_alloc.h" +#ifndef HAVE_ID_T +typedef int id_t; +#endif +#ifndef HAVE_PID_T +typedef int pid_t; +#endif +#ifndef HAVE_MODE_T +typedef int mode_t; +#endif +#ifndef HAVE_OFF_T +typedef long off_t; +#endif +#ifndef HAVE_SIZE_T +typedef unsigned int size_t; +#endif + #define BOOL int #ifndef uchar @@ -624,7 +647,7 @@ extern int xattrs_ndx; #define F_GROUP(f) REQ_EXTRA(f, gid_ndx)->unum #define F_ACL(f) REQ_EXTRA(f, acls_ndx)->num #define F_XATTR(f) REQ_EXTRA(f, xattrs_ndx)->num -#define F_NDX(f) REQ_EXTRA(f, ic_ndx)->num +#define F_NDX(f) REQ_EXTRA(f, unsort_ndx)->num /* These items are per-entry optional: */ #define F_HL_GNUM(f) OPT_EXTRA(f, LEN64_BUMP(f))->num /* non-dirs */ @@ -820,7 +843,7 @@ typedef struct { #define RL_CONVERT (1<<2) typedef struct { - char is_dot_dir; + char name_type; char fname[1]; /* has variable size */ } relnamecache;