aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Dykstra <dwd@samba.org>1998-11-25 15:37:50 +0000
committerDavid Dykstra <dwd@samba.org>1998-11-25 15:37:50 +0000
commit63f0774f7562c3b51d14dcca78ea0dc0fa354c46 (patch)
tree68c3f17183cea3eb5b26073937b13eccdfb0b71c
parentd47741cac62e80d5ffd6f01274e3b7b48b2849e1 (diff)
downloadandroid_external_rsync-63f0774f7562c3b51d14dcca78ea0dc0fa354c46.tar.gz
android_external_rsync-63f0774f7562c3b51d14dcca78ea0dc0fa354c46.tar.bz2
android_external_rsync-63f0774f7562c3b51d14dcca78ea0dc0fa354c46.zip
Back out change that treated "refuse options = compress" the same as
"dont compress = *", by request of Tridge. Instead, mention the difference in the man page. Also, put in a shortcut in set_compression() to recognize "*" earlier instead of going through malloc/strtok/fnmatch/free cycle.
-rw-r--r--options.c7
-rw-r--r--rsyncd.conf.yo14
-rw-r--r--token.c9
3 files changed, 14 insertions, 16 deletions
diff --git a/options.c b/options.c
index 71a08f55..ca1b0187 100644
--- a/options.c
+++ b/options.c
@@ -238,13 +238,6 @@ static int check_refuse_options(char *ref, int opt)
while ((p = strstr(ref,name))) {
if ((p==ref || p[-1]==' ') &&
(p[len] == ' ' || p[len] == 0)) {
- if (opt == 'z') {
- /* don't actually refuse this one, just */
- /* minimize the compression level for now */
- extern int default_compression_level;
- default_compression_level = 0;
- return 0;
- }
slprintf(err_buf,sizeof(err_buf),
"The '%s' option is not supported by this server\n", name);
return 1;
diff --git a/rsyncd.conf.yo b/rsyncd.conf.yo
index 3dab4b8a..8e2ca397 100644
--- a/rsyncd.conf.yo
+++ b/rsyncd.conf.yo
@@ -1,5 +1,5 @@
mailto(rsync-bugs@samba.org)
-manpage(rsyncd.conf)(5)(24 Nov 1998)()()
+manpage(rsyncd.conf)(5)(25 Nov 1998)()()
manpagename(rsyncd.conf)(configuration file for rsync server)
manpagesynopsis()
@@ -302,12 +302,12 @@ a 10 minute timeout).
dit(bf(refuse options)) The "refuse options" option allows you to
specify a space separated list of rsync command line options that will
-be refused by your rsync server. When an option is refused the server
-prints an error message and exits, except for the "compress" option
-in which case the server silently sends all files uncompressed.
-
-The full names of the options must be used (ie. you must use
-"checksum" not "c" to disable checksumming).
+be refused by your rsync server. The full names of the options must be
+used (i.e., you must use "checksum" not "c" to disable checksumming).
+When an option is refused, the server prints an error message and exits.
+To prevent all compression, you can use "dont compress = *" (see below)
+instead of "refuse options = compress" to avoid returning an error to a
+client that requests compression.
dit(bf(dont compress)) The "dont compress" option allows you to select
filenames based on wildcard patterns that should not be compressed
diff --git a/token.c b/token.c
index 3bd8d34c..2967b44c 100644
--- a/token.c
+++ b/token.c
@@ -21,7 +21,6 @@
#include "zlib/zlib.h"
extern int do_compression;
-int default_compression_level = Z_DEFAULT_COMPRESSION;
static int compression_level = Z_DEFAULT_COMPRESSION;
/* determine the compression level based on a wildcard filename list */
@@ -33,11 +32,17 @@ void set_compression(char *fname)
if (!do_compression) return;
- compression_level = default_compression_level;
+ compression_level = Z_DEFAULT_COMPRESSION;
dont = lp_dont_compress(module_id);
if (!dont || !*dont) return;
+ if ((dont[0] == '*') && (!dont[1])) {
+ /* an optimization to skip the rest of this routine */
+ compression_level = 0;
+ return;
+ }
+
dont = strdup(dont);
fname = strdup(fname);
if (!dont || !fname) return;