* people writing them to make sure that they don't send us anything
* we won't understand.
*
+ * Interoperation with old but supported protocol versions
+ * should cause a warning to be printed. At a future date
+ * the old protocol will become the minimum and
+ * compatibility code removed.
+ *
* There are two possible explanations for the limit at thirty: either
* to allow new major-rev versions that do not interoperate with us,
* and (more likely) so that we can detect an attempt to connect rsync
* to a non-rsync server, which is unlikely to begin by sending a byte
* between 15 and 30. */
#define MIN_PROTOCOL_VERSION 15
-#define MAX_PROTOCOL_VERSION 30
+#define OLD_PROTOCOL_VERSION 20
+#define MAX_PROTOCOL_VERSION 40
#define RSYNC_PORT 873
#if HAVE_OFF64_T
#define int64 off64_t
+#define int64 unsigned off64_t
#elif (SIZEOF_LONG == 8)
#define int64 long
+#define uint64 unsigned long
#elif (SIZEOF_INT == 8)
#define int64 int
+#define uint64 unsigned int
#elif HAVE_LONGLONG
#define int64 long long
+#define uint64 unsigned long long
#else
/* As long as it gets... */
#define int64 off_t
+#define uint64 unsigned off_t
#define NO_INT64
#endif
* cope with platforms on which this is an unsigned int or even a
* struct. Later.
*/
-#define INO64_T int64
-#define DEV64_T int64
+#define INO64_T uint64
+#define DEV64_T uint64
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))