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))) {
|
while ((p = strstr(ref,name))) {
|
||||||
if ((p==ref || p[-1]==' ') &&
|
if ((p==ref || p[-1]==' ') &&
|
||||||
(p[len] == ' ' || p[len] == 0)) {
|
(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),
|
slprintf(err_buf,sizeof(err_buf),
|
||||||
"The '%s' option is not supported by this server\n", name);
|
"The '%s' option is not supported by this server\n", name);
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
mailto(rsync-bugs@samba.org)
|
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)
|
manpagename(rsyncd.conf)(configuration file for rsync server)
|
||||||
manpagesynopsis()
|
manpagesynopsis()
|
||||||
|
|
||||||
@@ -302,12 +302,12 @@ a 10 minute timeout).
|
|||||||
|
|
||||||
dit(bf(refuse options)) The "refuse options" option allows you to
|
dit(bf(refuse options)) The "refuse options" option allows you to
|
||||||
specify a space separated list of rsync command line options that will
|
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
|
be refused by your rsync server. The full names of the options must be
|
||||||
prints an error message and exits, except for the "compress" option
|
used (i.e., you must use "checksum" not "c" to disable checksumming).
|
||||||
in which case the server silently sends all files uncompressed.
|
When an option is refused, the server prints an error message and exits.
|
||||||
|
To prevent all compression, you can use "dont compress = *" (see below)
|
||||||
The full names of the options must be used (ie. you must use
|
instead of "refuse options = compress" to avoid returning an error to a
|
||||||
"checksum" not "c" to disable checksumming).
|
client that requests compression.
|
||||||
|
|
||||||
dit(bf(dont compress)) The "dont compress" option allows you to select
|
dit(bf(dont compress)) The "dont compress" option allows you to select
|
||||||
filenames based on wildcard patterns that should not be compressed
|
filenames based on wildcard patterns that should not be compressed
|
||||||
|
|||||||
9
token.c
9
token.c
@@ -21,7 +21,6 @@
|
|||||||
#include "zlib/zlib.h"
|
#include "zlib/zlib.h"
|
||||||
|
|
||||||
extern int do_compression;
|
extern int do_compression;
|
||||||
int default_compression_level = Z_DEFAULT_COMPRESSION;
|
|
||||||
static int compression_level = Z_DEFAULT_COMPRESSION;
|
static int compression_level = Z_DEFAULT_COMPRESSION;
|
||||||
|
|
||||||
/* determine the compression level based on a wildcard filename list */
|
/* determine the compression level based on a wildcard filename list */
|
||||||
@@ -33,11 +32,17 @@ void set_compression(char *fname)
|
|||||||
|
|
||||||
if (!do_compression) return;
|
if (!do_compression) return;
|
||||||
|
|
||||||
compression_level = default_compression_level;
|
compression_level = Z_DEFAULT_COMPRESSION;
|
||||||
dont = lp_dont_compress(module_id);
|
dont = lp_dont_compress(module_id);
|
||||||
|
|
||||||
if (!dont || !*dont) return;
|
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);
|
dont = strdup(dont);
|
||||||
fname = strdup(fname);
|
fname = strdup(fname);
|
||||||
if (!dont || !fname) return;
|
if (!dont || !fname) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user