summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2011-03-11 16:09:49 -0800
committerWayne Davison <wayned@samba.org>2011-03-11 16:13:33 -0800
commitf7c3a2505297c9fe16dc18ab6066d71028b9ccd4 (patch)
tree71d9d3347fc3c2dc892ec29f47fd44284d6b5001
parent6da6b02bb7ed1d8e7785118a8b203e50b983d1a8 (diff)
downloadrsync-f7c3a2505297c9fe16dc18ab6066d71028b9ccd4.tar.gz
Change rsyncd.conf &merge directive to match *.inc.
This allows the same rsyncd.d directory to be used for a set of merge files (*.inc) and a set of include files (*.conf).
-rw-r--r--params.c3
-rw-r--r--rsyncd.conf.yo19
2 files changed, 16 insertions, 6 deletions
diff --git a/params.c b/params.c
index a14242e8..0fbd9863 100644
--- a/params.c
+++ b/params.c
@@ -428,6 +428,7 @@ static int name_cmp(const void *n1, const void *n2)
static int include_config(char *include, int manage_globals)
{
STRUCT_STAT sb;
+ char *match = manage_globals ? "*.conf" : "*.inc";
int ret;
if (do_stat(include, &sb) < 0) {
@@ -457,7 +458,7 @@ static int include_config(char *include, int manage_globals)
while ((di = readdir(d)) != NULL) {
char *dname = d_name(di);
- if (!wildmatch("*.conf", dname))
+ if (!wildmatch(match, dname))
continue;
bpp = EXPAND_ITEM_LIST(&conf_list, char *, 32);
pathjoin(buf, sizeof buf, include, dname);
diff --git a/rsyncd.conf.yo b/rsyncd.conf.yo
index f7f483b5..2771041b 100644
--- a/rsyncd.conf.yo
+++ b/rsyncd.conf.yo
@@ -756,7 +756,8 @@ parameters in a module started in another file, can affect the defaults for
other files, etc.
When an bf(&include) or bf(&merge) directive refers to a directory, it will read
-in all the bf(*.conf) files contained inside that directory (without any
+in all the bf(*.conf) or bf(*.inc) files (respectively) that are contained inside
+that directory (without any
recursive scanning), with the files sorted into alpha order. So, if you have a
directory named "rsyncd.d" with the files "foo.conf", "bar.conf", and
"baz.conf" inside it, this directive:
@@ -773,17 +774,25 @@ except that it adjusts as files are added and removed from the directory.
The advantage of the bf(&include) directive is that you can define one or more
modules in a separate file without worrying about unintended side-effects
-between the self-contained module files. For instance, this is a useful
-/etc/rsyncd.conf file:
+between the self-contained module files.
+
+The advantage of the bf(&merge) directive is that you can load config snippets
+that can be included into multiple module definitions, and you can also set
+global values that will affect connections (such as bf(motd file)), or globals
+that will affect other include files.
+
+For example, this is a useful /etc/rsyncd.conf file:
verb( port = 873
log file = /var/log/rsync.log
pid file = /var/lock/rsync.lock
+ &merge /etc/rsyncd.d
&include /etc/rsyncd.d )
-The advantage of the bf(&merge) directive is that you can load config snippets
-that can be included into multiple module definitions.
+This file merges any /etc/rsyncd.d/*.inc files, and then includes any
+/etc/rsyncd.d/*.conf files, which each include file being isolated from
+the reset (so that each include's globals don't affect any others).
manpagesection(AUTHENTICATION STRENGTH)