int blocking_io = -1;
int checksum_seed = 0;
int inplace = 0;
-unsigned int block_size = 0;
+long block_size = 0; /* "long" because popt can't set an int32. */
/** Network address family. **/
char *backup_dir = NULL;
char backup_dir_buf[MAXPATHLEN];
int rsync_port = 0;
+int compare_dest = 0;
int copy_dest = 0;
int link_dest = 0;
+int basis_dir_cnt = 0;
int verbose = 0;
int quiet = 0;
static int daemon_opt; /* sets am_daemon after option error-reporting */
static int modify_window_set;
-static int compare_dest = 0;
-static int basis_dir_cnt = 0;
-static char *dest_option;
+static char *dest_option = NULL;
static char *max_size_arg;
/** Local address to bind. As a character string because it's
{"relative", 'R', POPT_ARG_VAL, &relative_paths, 1, 0, 0 },
{"no-relative", 0, POPT_ARG_VAL, &relative_paths, 0, 0, 0 },
{"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 },
- {"block-size", 'B', POPT_ARG_INT, &block_size, 0, 0, 0 },
+ {"block-size", 'B', POPT_ARG_LONG, &block_size, 0, 0, 0 },
{"max-delete", 0, POPT_ARG_INT, &max_delete, 0, 0, 0 },
{"max-size", 0, POPT_ARG_STRING, &max_size_arg, OPT_MAX_SIZE, 0, 0 },
{"timeout", 0, POPT_ARG_INT, &io_timeout, OPT_TIMEOUT, 0, 0 },
compare_dest = 1;
dest_option = "--compare-dest";
set_dest_dir:
- if (basis_dir_cnt >= MAX_BASIS_DIRS-1) {
+ if (basis_dir_cnt >= MAX_BASIS_DIRS) {
snprintf(err_buf, sizeof err_buf,
"ERROR: at most %d %s args may be specified\n",
MAX_BASIS_DIRS, dest_option);
return 0;
}
keep_partial = 0;
+ if (dest_option) {
+ snprintf(err_buf, sizeof err_buf,
+ "--inplace does not yet work with %s\n",
+ dest_option);
+ return 0;
+ }
#else
snprintf(err_buf, sizeof err_buf,
"--inplace is not supported on this %s\n",
am_server ? "server" : "client");
return 0;
#endif
- if (compare_dest || copy_dest || link_dest) {
- snprintf(err_buf, sizeof err_buf,
- "--inplace does not yet work with %s\n",
- dest_option);
- return 0;
- }
} else {
if (keep_partial && !partial_dir)
partial_dir = getenv("RSYNC_PARTIAL_DIR");
args[ac++] = argstr;
if (block_size) {
- if (asprintf(&arg, "-B%u", block_size) < 0)
+ if (asprintf(&arg, "-B%lu", block_size) < 0)
goto oom;
args[ac++] = arg;
}