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.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
9
token.c
9
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;
|
||||
|
||||
Reference in New Issue
Block a user