Use AC_HEADER_MAJOR for better makedev/major/minor determination.
[rsync/rsync.git] / options.c
index d5303c8..26dfd76 100644 (file)
--- a/options.c
+++ b/options.c
@@ -682,13 +682,18 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                        tmpdir = alloc_sanitize_path(tmpdir, curr_dir);
                if (compare_dest)
                        compare_dest = alloc_sanitize_path(compare_dest, curr_dir);
-               fprintf(stderr, "compare_dest=`%s'\n", compare_dest);
                if (backup_dir)
                        backup_dir = alloc_sanitize_path(backup_dir, curr_dir);
                if (files_from)
                        files_from = alloc_sanitize_path(files_from, curr_dir);
        }
 
+       if (daemon_opt) {
+               daemon_opt = 0;
+               am_daemon = 1;
+               return 1;
+       }
+
        if (!backup_suffix)
                backup_suffix = backup_dir ? "" : BACKUP_SUFFIX;
        backup_suffix_len = strlen(backup_suffix);
@@ -708,9 +713,9 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                        backup_dir_buf[backup_dir_len++] = '/';
                        backup_dir_buf[backup_dir_len] = '\0';
                }
-               if (verbose > 1)
+               if (verbose > 1 && !am_sender)
                        rprintf(FINFO, "backup_dir is %s\n", backup_dir_buf);
-       } else if (!backup_suffix_len) {
+       } else if (!backup_suffix_len && (!am_server || !am_sender)) {
                rprintf(FERROR,
                        "--suffix cannot be a null string without --backup-dir\n");
                exit_cleanup(RERR_SYNTAX);
@@ -721,7 +726,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
 
        if (files_from) {
                char *colon;
-               if (*argc != 2) {
+               if (*argc != 2 && !(am_server && am_sender && *argc == 1)) {
                        usage(FERROR);
                        exit_cleanup(RERR_SYNTAX);
                }
@@ -751,9 +756,6 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                }
        }
 
-       if (daemon_opt)
-               am_daemon = 1;
-
        return 1;
 }