- Changed the calling args to delete_file() to take an st_mode instead
[rsync/rsync.git] / compat.c
index e90fa83..f30a9f5 100644 (file)
--- a/compat.c
+++ b/compat.c
 int remote_protocol = 0;
 
 extern int verbose;
+extern int itemize_changes;
 extern int am_server;
 extern int am_sender;
+extern int fuzzy_basis;
 extern int read_batch;
 extern int checksum_seed;
 extern int protocol_version;
@@ -55,7 +57,7 @@ void setup_protocol(int f_out,int f_in)
        }
        if (remote_protocol < MIN_PROTOCOL_VERSION
         || remote_protocol > MAX_PROTOCOL_VERSION) {
-               rprintf(FERROR,"protocol version mismatch - is your shell clean?\n");
+               rprintf(FERROR,"protocol version mismatch -- is your shell clean?\n");
                rprintf(FERROR,"(see the rsync man page for an explanation)\n");
                exit_cleanup(RERR_PROTOCOL);
        }
@@ -74,6 +76,16 @@ void setup_protocol(int f_out,int f_in)
                exit_cleanup(RERR_PROTOCOL);
        }
 
+       if (fuzzy_basis && protocol_version < 29) {
+               rprintf(FERROR,
+                       "--fuzzy requres protocol 29 or higher (negotiated %d).\n",
+                       protocol_version);
+               exit_cleanup(RERR_PROTOCOL);
+       }
+
+       if (itemize_changes && protocol_version < 29)
+               itemize_changes = 0;
+
        if (am_server) {
                if (!checksum_seed)
                        checksum_seed = time(NULL);