#define FLAG_MISSING (1<<6) /* generator */
/* update this if you make incompatible changes */
-#define PROTOCOL_VERSION 29
+#define PROTOCOL_VERSION 30
/* 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
/* These are outside the range of the transmitted flags. */
#define ITEM_MISSING_DATA (1<<16) /* used by log_formatted() */
#define ITEM_DELETED (1<<17) /* used by log_formatted() */
+#define ITEM_MATCHED (1<<18) /* used by itemize() */
#define SIGNIFICANT_ITEM_FLAGS (~(\
ITEM_BASIS_TYPE_FOLLOWS | ITEM_XNAME_FOLLOWS | ITEM_LOCAL_CHANGE))
struct file_struct {
union {
dev_t rdev; /* The device number, if this is a device */
- char *sum; /* Only a normal file can have a checksum */
- char *link; /* Points to symlink string, if a symlink */
+ const char *sum;/* Only a normal file can have a checksum */
+ const char *link;/* Points to symlink string, if a symlink */
} u;
OFF_T length;
- char *basename; /* The current item's name (AKA filename) */
- char *dirname; /* The directory info inside the transfer */
+ const char *basename; /* The current item's name (AKA filename) */
+ const char *dirname; /* The directory info inside the transfer */
union {
- char *root; /* Sender-side dir info outside transfer */
+ const char *root;/* Sender-side dir info outside transfer */
int depth; /* Receiver-side directory depth info */
} dir;
union {
#define MATCHFLG_SENDER_SIDE (1<<16)/* rule applies to the sending side */
#define MATCHFLG_RECEIVER_SIDE (1<<17)/* rule applies to the receiving side */
#define MATCHFLG_CLEAR_LIST (1<<18)/* this item is the "!" token */
+#define MATCHFLG_PERISHABLE (1<<19)/* perishable if parent dir goes away */
#define MATCHFLGS_FROM_CONTAINER (MATCHFLG_ABS_PATH | MATCHFLG_INCLUDE \
| MATCHFLG_DIRECTORY | MATCHFLG_SENDER_SIDE \
- | MATCHFLG_NEGATE | MATCHFLG_RECEIVER_SIDE)
+ | MATCHFLG_NEGATE | MATCHFLG_RECEIVER_SIDE \
+ | MATCHFLG_PERISHABLE)
struct filter_struct {
struct filter_struct *next;
int64 matched_data;
int64 flist_buildtime;
int64 flist_xfertime;
- int flist_size;
+ int64 flist_size;
int num_files;
int num_transferred_files;
int current_file_index;
#ifndef __GNUC__
#define __attribute__(x)
+# if __GNUC__ <= 2
+# define NORETURN
+# endif
#endif
#define UNUSED(x) x __attribute__((__unused__))
+#ifndef NORETURN
#define NORETURN __attribute__((__noreturn__))
+#endif
#include "proto.h"