From: David Dykstra Date: Tue, 24 Nov 1998 22:03:16 +0000 (+0000) Subject: When "refuse options = compress" is set in rsyncd.conf, silently send files X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/d47741cac62e80d5ffd6f01274e3b7b48b2849e1 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 = *". --- diff --git a/options.c b/options.c index ca1b0187..71a08f55 100644 --- a/options.c +++ b/options.c @@ -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; diff --git a/rsyncd.conf.yo b/rsyncd.conf.yo index 2571f296..3dab4b8a 100644 --- a/rsyncd.conf.yo +++ b/rsyncd.conf.yo @@ -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). diff --git a/token.c b/token.c index e1039e2e..3bd8d34c 100644 --- a/token.c +++ b/token.c @@ -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;