Applying the preallocate patch.
[rsync/rsync.git] / compat.c
index cb7a0e1..45073d3 100644 (file)
--- a/compat.c
+++ b/compat.c
@@ -24,6 +24,7 @@
 int remote_protocol = 0;
 int file_extra_cnt = 0; /* count of file-list extras that everyone gets */
 int inc_recurse = 0;
+int compat_flags = 0;
 int use_safe_inc_flist = 0;
 
 extern int am_server;
@@ -33,6 +34,7 @@ extern int inplace;
 extern int recurse;
 extern int use_qsort;
 extern int allow_inc_recurse;
+extern int preallocate_files;
 extern int append_mode;
 extern int fuzzy_basis;
 extern int read_batch;
@@ -188,6 +190,14 @@ void setup_protocol(int f_out,int f_in)
        if (read_batch)
                check_batch_flags();
 
+#ifndef SUPPORT_PREALLOCATION
+       if (preallocate_files && !am_sender) {
+               rprintf(FERROR, "preallocation is not supported on this %s\n",
+                       am_server ? "Server" : "Client");
+               exit_cleanup(RERR_SYNTAX);
+       }
+#endif
+
        if (protocol_version < 30) {
                if (append_mode == 1)
                        append_mode = 2;
@@ -247,7 +257,6 @@ void setup_protocol(int f_out,int f_in)
                        exit_cleanup(RERR_PROTOCOL);
                }
        } else if (protocol_version >= 30) {
-               int compat_flags;
                if (am_server) {
                        compat_flags = allow_inc_recurse ? CF_INC_RECURSE : 0;
 #ifdef CAN_SET_SYMLINK_TIMES