Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added hashtable.o.
[rsync/rsync.git]
/
main.c
diff --git
a/main.c
b/main.c
index
494adfb
..
0e765fb
100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-7,8
+7,9
@@
* Copyright (C) 2003-2007 Wayne Davison
*
* This program is free software; you can redistribute it and/or modify
* Copyright (C) 2003-2007 Wayne Davison
*
* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3 as
- * published by the Free Software Foundation.
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-36,7
+37,6
@@
extern int am_daemon;
extern int inc_recurse;
extern int blocking_io;
extern int remove_source_files;
extern int inc_recurse;
extern int blocking_io;
extern int remove_source_files;
-extern int daemon_over_rsh;
extern int need_messages_from_generator;
extern int kluge_around_eof;
extern int do_stats;
extern int need_messages_from_generator;
extern int kluge_around_eof;
extern int do_stats;
@@
-74,6
+74,7
@@
extern struct filter_list_struct server_filter_list;
int local_server = 0;
int new_root_dir = 0;
int local_server = 0;
int new_root_dir = 0;
+int daemon_over_rsh = 0;
mode_t orig_umask = 0;
int batch_gen_fd = -1;
mode_t orig_umask = 0;
int batch_gen_fd = -1;
@@
-668,7
+669,7
@@
static void do_server_sender(int f_in, int f_out, int argc, char *argv[])
}
flist = send_file_list(f_out,argc,argv);
}
flist = send_file_list(f_out,argc,argv);
- if (!flist || flist->
count
== 0)
+ if (!flist || flist->
used
== 0)
exit_cleanup(0);
io_start_buffering_in(f_in);
exit_cleanup(0);
io_start_buffering_in(f_in);
@@
-1012,7
+1013,7
@@
int client_run(int f_in, int f_out, pid_t pid, int argc, char *argv[])
if (inc_recurse && file_total == 1)
recv_additional_file_list(f_in);
if (inc_recurse && file_total == 1)
recv_additional_file_list(f_in);
- if (flist && flist->
count
> 0) {
+ if (flist && flist->
used
> 0) {
local_name = get_local_name(flist, argv[0]);
fix_basis_dirs();
local_name = get_local_name(flist, argv[0]);
fix_basis_dirs();
@@
-1091,16
+1092,9
@@
static int start_client(int argc, char *argv[])
"--files-from hostname is not the same as the transfer hostname\n");
exit_cleanup(RERR_SYNTAX);
}
"--files-from hostname is not the same as the transfer hostname\n");
exit_cleanup(RERR_SYNTAX);
}
- if (rsync_port) {
- if (!shell_cmd) {
- return start_socket_client(shell_machine,
- shell_path,
- argc, argv);
- }
- daemon_over_rsh = 1;
- }
-
am_sender = 0;
am_sender = 0;
+ if (rsync_port)
+ daemon_over_rsh = shell_cmd ? 1 : -1;
} else { /* source is local, check dest arg */
am_sender = 1;
} else { /* source is local, check dest arg */
am_sender = 1;
@@
-1127,14
+1121,8
@@
static int start_client(int argc, char *argv[])
}
shell_machine = NULL;
shell_path = p;
}
shell_machine = NULL;
shell_path = p;
- } else if (rsync_port) {
- if (!shell_cmd) {
- return start_socket_client(shell_machine,
- shell_path,
- argc, argv);
- }
- daemon_over_rsh = 1;
- }
+ } else if (rsync_port)
+ daemon_over_rsh = shell_cmd ? 1 : -1;
}
} else { /* read_batch */
local_server = 1;
}
} else { /* read_batch */
local_server = 1;
@@
-1145,6
+1133,15
@@
static int start_client(int argc, char *argv[])
}
}
}
}
+ /* for remote source, only single dest arg can remain ... */
+ if (!am_sender && argc > 1) {
+ usage(FERROR);
+ exit_cleanup(RERR_SYNTAX);
+ }
+
+ if (daemon_over_rsh < 0)
+ return start_socket_client(shell_machine, shell_path, argc, argv);
+
if (password_file && !daemon_over_rsh) {
rprintf(FERROR, "The --password-file option may only be "
"used when accessing an rsync daemon.\n");
if (password_file && !daemon_over_rsh) {
rprintf(FERROR, "The --password-file option may only be "
"used when accessing an rsync daemon.\n");
@@
-1168,12
+1165,6
@@
static int start_client(int argc, char *argv[])
shell_path ? shell_path : "");
}
shell_path ? shell_path : "");
}
- /* for remote source, only single dest arg can remain ... */
- if (!am_sender && argc > 1) {
- usage(FERROR);
- exit_cleanup(RERR_SYNTAX);
- }
-
/* ... or no dest at all */
if (!am_sender && argc == 0)
list_only |= 1;
/* ... or no dest at all */
if (!am_sender && argc == 0)
list_only |= 1;