extern int preserve_specials;
extern int preserve_hard_links;
extern int preserve_executability;
-@@ -1687,7 +1688,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1688,7 +1689,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
goto cleanup;
}
{"specials", 0, POPT_ARG_VAL, &preserve_specials, 1, 0, 0 },
{"no-specials", 0, POPT_ARG_VAL, &preserve_specials, 0, 0, 0 },
{"links", 'l', POPT_ARG_VAL, &preserve_links, 1, 0, 0 },
-@@ -2048,6 +2051,9 @@ void server_options(char **args, int *argc_p)
+@@ -2061,6 +2064,9 @@ void server_options(char **args, int *argc_p)
else if (remove_source_files)
args[ac++] = "--remove-sent-files";
+ if (copy_devices)
+ args[ac++] = "--copy-devices";
+
- *argc_p = ac;
- return;
-
+ if (ac > MAX_SERVER_ARGS) { /* Not possible... */
+ rprintf(FERROR, "argc overflow in server_options().\n");
+ exit_cleanup(RERR_MALLOC);
diff --git a/rsync.c b/rsync.c
--- a/rsync.c
+++ b/rsync.c
diff --git a/sender.c b/sender.c
--- a/sender.c
+++ b/sender.c
-@@ -315,6 +315,20 @@ void send_files(int f_in, int f_out)
+@@ -309,6 +309,20 @@ void send_files(int f_in, int f_out)
exit_cleanup(RERR_PROTOCOL);
}