- p = find_colon(argv[0]);
- if (p) { /* source is remote */
- if (remote_filesfrom_file
- && remote_filesfrom_file != files_from + 1
- && strncmp(files_from, argv[0], p-argv[0]+1) != 0) {
+ argc--;
+ shell_path = check_for_hostspec(argv[0], &shell_machine, &rsync_port);
+ if (shell_path) { /* source is remote */
+ char *dummy1;
+ int dummy2;
+ if (argc && check_for_hostspec(argv[argc], &dummy1, &dummy2)) {
+ rprintf(FERROR,
+ "The source and destination cannot both be remote.\n");
+ exit_cleanup(RERR_SYNTAX);
+ }
+ argv++;
+ if (filesfrom_host && *filesfrom_host
+ && strcmp(filesfrom_host, shell_machine) != 0) {