MSG_STATS=10, /* message has stats data for generator */
MSG_IO_ERROR=22,/* the sending side had an I/O error */
MSG_IO_TIMEOUT=33,/* tell client about a daemon's timeout value */
- MSG_NOOP=42, /* a do-nothing message */
- MSG_ERROR_EXIT=86, /* used by siblings and by protocol-31 */
+ MSG_NOOP=42, /* a do-nothing message (legacy protocol-30 only) */
+ MSG_ERROR_EXIT=86, /* synchronize an error exit (siblings and protocol >= 31) */
MSG_SUCCESS=100,/* successfully updated indicated flist index */
MSG_DELETED=101,/* successfully deleted a file on receiving side */
MSG_NO_SEND=102,/* sender failed to open a file we wanted */
#define MKP_DROP_NAME (1<<0) /* drop trailing filename or trailing slash */
#define MKP_SKIP_SLASH (1<<1) /* skip one or more leading slashes */
+/* Defines for maybe_send_keepalive() */
+#define MSK_ALLOW_FLUSH (1<<0)
+#define MSK_ACTIVE_RECEIVER (1<<1)
+
#include "errcode.h"
#include "config.h"
#define F_LENGTH(f) ((int64)(f)->len32)
#else
#define F_LENGTH(f) ((int64)(f)->len32 + ((f)->flags & FLAG_LENGTH64 \
- ? (int64)OPT_EXTRA(f, 0)->unum << 32 : 0))
+ ? (int64)OPT_EXTRA(f, NSEC_BUMP(f))->unum << 32 : 0))
#endif
-#define F_MOD_NSEC(f) ((f)->flags & FLAG_MOD_NSEC ? OPT_EXTRA(f, LEN64_BUMP(f))->unum : 0)
+#define F_MOD_NSEC(f) ((f)->flags & FLAG_MOD_NSEC ? OPT_EXTRA(f, 0)->unum : 0)
/* If there is a symlink string, it is always right after the basename */
#define F_SYMLINK(f) ((f)->basename + strlen((f)->basename) + 1)