X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/blobdiff_plain/963ca80882dea2131e78563fa59e3e0e7c70c195..41b674b3ed541263d70a10d7796aca5d6cd73e03:/munge-links.diff diff --git a/munge-links.diff b/munge-links.diff index a914531..e163888 100644 --- a/munge-links.diff +++ b/munge-links.diff @@ -35,7 +35,7 @@ diff --git a/clientserver.c b/clientserver.c pid_t pre_exec_pid = 0; char *request = NULL; -@@ -687,9 +688,11 @@ static int rsync_module(int f_in, int f_out, int i, char *addr, char *host) +@@ -688,9 +689,11 @@ static int rsync_module(int f_in, int f_out, int i, char *addr, char *host) munge_symlinks = !use_chroot || module_dirlen; if (munge_symlinks) { STRUCT_STAT st; @@ -50,7 +50,7 @@ diff --git a/clientserver.c b/clientserver.c io_printf(f_out, "@ERROR: daemon security issue -- contact admin\n", name); exit_cleanup(RERR_UNSUPPORTED); } -@@ -745,6 +748,8 @@ static int rsync_module(int f_in, int f_out, int i, char *addr, char *host) +@@ -746,6 +749,8 @@ static int rsync_module(int f_in, int f_out, int i, char *addr, char *host) read_args(f_in, name, line, sizeof line, rl_nulls, &argv, &argc, &request); orig_argv = argv; @@ -59,7 +59,7 @@ diff --git a/clientserver.c b/clientserver.c verbose = 0; /* future verbosity is controlled by client options */ ret = parse_arguments(&argc, (const char ***) &argv); if (protect_args && ret) { -@@ -756,6 +761,8 @@ static int rsync_module(int f_in, int f_out, int i, char *addr, char *host) +@@ -757,6 +762,8 @@ static int rsync_module(int f_in, int f_out, int i, char *addr, char *host) } else orig_early_argv = NULL; @@ -79,7 +79,7 @@ diff --git a/options.c b/options.c int size_only = 0; int daemon_bwlimit = 0; int bwlimit = 0; -@@ -338,6 +339,7 @@ void usage(enum logcode F) +@@ -339,6 +340,7 @@ void usage(enum logcode F) rprintf(F," -L, --copy-links transform symlink into referent file/dir\n"); rprintf(F," --copy-unsafe-links only \"unsafe\" symlinks are transformed\n"); rprintf(F," --safe-links ignore symlinks that point outside the source tree\n"); @@ -87,7 +87,7 @@ diff --git a/options.c b/options.c rprintf(F," -k, --copy-dirlinks transform symlink to a dir into referent dir\n"); rprintf(F," -K, --keep-dirlinks treat symlinked dir on receiver as dir\n"); rprintf(F," -H, --hard-links preserve hard links\n"); -@@ -520,6 +522,8 @@ static struct poptOption long_options[] = { +@@ -521,6 +523,8 @@ static struct poptOption long_options[] = { {"copy-links", 'L', POPT_ARG_NONE, ©_links, 0, 0, 0 }, {"copy-unsafe-links",0, POPT_ARG_NONE, ©_unsafe_links, 0, 0, 0 }, {"safe-links", 0, POPT_ARG_NONE, &safe_symlinks, 0, 0, 0 }, @@ -96,7 +96,7 @@ diff --git a/options.c b/options.c {"copy-dirlinks", 'k', POPT_ARG_NONE, ©_dirlinks, 0, 0, 0 }, {"keep-dirlinks", 'K', POPT_ARG_NONE, &keep_dirlinks, 0, 0, 0 }, {"hard-links", 'H', POPT_ARG_NONE, 0, 'H', 0, 0 }, -@@ -1471,6 +1475,17 @@ int parse_arguments(int *argc_p, const char ***argv_p) +@@ -1472,6 +1476,17 @@ int parse_arguments(int *argc_p, const char ***argv_p) need_messages_from_generator = 1; } @@ -148,7 +148,7 @@ diff --git a/rsync.h b/rsync.h diff --git a/rsync.yo b/rsync.yo --- a/rsync.yo +++ b/rsync.yo -@@ -334,6 +334,7 @@ to the detailed description below for a complete description. verb( +@@ -338,6 +338,7 @@ to the detailed description below for a complete description. verb( -L, --copy-links transform symlink into referent file/dir --copy-unsafe-links only "unsafe" symlinks are transformed --safe-links ignore symlinks that point outside the tree @@ -156,7 +156,7 @@ diff --git a/rsync.yo b/rsync.yo -k, --copy-dirlinks transform symlink to dir into referent dir -K, --keep-dirlinks treat symlinked dir on receiver as dir -H, --hard-links preserve hard links -@@ -791,6 +792,25 @@ which point outside the copied tree. All absolute symlinks are +@@ -795,6 +796,25 @@ which point outside the copied tree. All absolute symlinks are also ignored. Using this option in conjunction with bf(--relative) may give unexpected results.