#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
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;