Commit d47741ca authored by David Dykstra's avatar David Dykstra

When "refuse options = compress" is set in rsyncd.conf, silently send files

at compression level 0 instead of printing an error and exitting.  This is
the same effect as "dont compress = *".
parent 5d5811f7
......@@ -238,6 +238,13 @@ 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;
......
......@@ -303,7 +303,8 @@ 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.
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).
......
......@@ -21,6 +21,7 @@
#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 */
......@@ -32,7 +33,7 @@ void set_compression(char *fname)
if (!do_compression) return;
compression_level = Z_DEFAULT_COMPRESSION;
compression_level = default_compression_level;
dont = lp_dont_compress(module_id);
if (!dont || !*dont) return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment