From 63f0774f7562c3b51d14dcca78ea0dc0fa354c46 Mon Sep 17 00:00:00 2001 From: David Dykstra Date: Wed, 25 Nov 1998 15:37:50 +0000 Subject: [PATCH] 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. --- options.c | 7 ------- rsyncd.conf.yo | 14 +++++++------- token.c | 9 +++++++-- 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; -- 2.34.1