Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
57b66a2
)
Disable popt aliases when we're a server so that any user-redefined
author
Wayne Davison
<wayned@samba.org>
Sat, 21 Jan 2006 20:15:49 +0000
(20:15 +0000)
committer
Wayne Davison
<wayned@samba.org>
Sat, 21 Jan 2006 20:15:49 +0000
(20:15 +0000)
options can't cause a compatibility problem.
options.c
patch
|
blob
|
blame
|
history
diff --git
a/options.c
b/options.c
index
3decf4a
..
503dd53
100644
(file)
--- a/
options.c
+++ b/
options.c
@@
-373,7
+373,7
@@
enum {OPT_VERSION = 1000, OPT_DAEMON, OPT_SENDER, OPT_EXCLUDE, OPT_EXCLUDE_FROM,
OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_HELP,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, OPT_CHMOD,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
OPT_FILTER, OPT_COMPARE_DEST, OPT_COPY_DEST, OPT_LINK_DEST, OPT_HELP,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_MODIFY_WINDOW, OPT_MIN_SIZE, OPT_CHMOD,
OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_ONLY_WRITE_BATCH, OPT_MAX_SIZE,
- OPT_REFUSED_BASE = 9000};
+ OPT_
SERVER, OPT_
REFUSED_BASE = 9000};
static struct poptOption long_options[] = {
/* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
static struct poptOption long_options[] = {
/* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
@@
-499,7
+499,7
@@
static struct poptOption long_options[] = {
{"no-blocking-io", 0, POPT_ARG_VAL, &blocking_io, 0, 0, 0 },
{"protocol", 0, POPT_ARG_INT, &protocol_version, 0, 0, 0 },
{"checksum-seed", 0, POPT_ARG_INT, &checksum_seed, 0, 0, 0 },
{"no-blocking-io", 0, POPT_ARG_VAL, &blocking_io, 0, 0, 0 },
{"protocol", 0, POPT_ARG_INT, &protocol_version, 0, 0, 0 },
{"checksum-seed", 0, POPT_ARG_INT, &checksum_seed, 0, 0, 0 },
- {"server", 0, POPT_ARG_NONE,
&am_server, 0
, 0, 0 },
+ {"server", 0, POPT_ARG_NONE,
0, OPT_SERVER
, 0, 0 },
{"sender", 0, POPT_ARG_NONE, 0, OPT_SENDER, 0, 0 },
/* All the following options switch us into daemon-mode option-parsing. */
{"config", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 },
{"sender", 0, POPT_ARG_NONE, 0, OPT_SENDER, 0, 0 },
/* All the following options switch us into daemon-mode option-parsing. */
{"config", 0, POPT_ARG_STRING, 0, OPT_DAEMON, 0, 0 },
@@
-771,6
+771,25
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
print_rsync_version(FINFO);
exit_cleanup(0);
print_rsync_version(FINFO);
exit_cleanup(0);
+ case OPT_SERVER:
+ if (!am_server) {
+ /* Disable popt aliases on the server side and
+ * then start parsing the options again. */
+ poptFreeContext(pc);
+ pc = poptGetContext(RSYNC_NAME, *argc, *argv,
+ long_options, 0);
+ am_server = 1;
+ }
+ break;
+
+ case OPT_SENDER:
+ if (!am_server) {
+ usage(FERROR);
+ exit_cleanup(RERR_SYNTAX);
+ }
+ am_sender = 1;
+ break;
+
case OPT_DAEMON:
if (am_daemon) {
strcpy(err_buf, "Attempt to hack rsync thwarted!\n");
case OPT_DAEMON:
if (am_daemon) {
strcpy(err_buf, "Attempt to hack rsync thwarted!\n");
@@
-892,14
+911,6
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
one_file_system++;
break;
one_file_system++;
break;
- case OPT_SENDER:
- if (!am_server) {
- usage(FERROR);
- exit_cleanup(RERR_SYNTAX);
- }
- am_sender = 1;
- break;
-
case 'F':
switch (++F_option_cnt) {
case 1:
case 'F':
switch (++F_option_cnt) {
case 1: