Change rsyncd.conf &merge directive to match *.inc.
authorWayne Davison <wayned@samba.org>
Sat, 12 Mar 2011 00:09:49 +0000 (16:09 -0800)
committerWayne Davison <wayned@samba.org>
Sat, 12 Mar 2011 00:13:33 +0000 (16:13 -0800)
This allows the same rsyncd.d directory to be used for a set
of merge files (*.inc) and a set of include files (*.conf).

params.c
rsyncd.conf.yo

index a14242e8794946098095e125fef63e6eec6c8342..0fbd98634081ebbcd66ab758ed83d3dcc2a95544 100644 (file)
--- 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;
 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) {
     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);
 
        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);
                continue;
            bpp = EXPAND_ITEM_LIST(&conf_list, char *, 32);
            pathjoin(buf, sizeof buf, include, dname);
index f7f483b5361885469ffb867eabf5d4f232dff6d4..2771041b081d2b67c65df498d7496a8a0c23bad6 100644 (file)
@@ -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
 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:
 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
 
 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
 
 
 verb(    port = 873
     log file = /var/log/rsync.log
     pid file = /var/lock/rsync.lock
 
+    &merge /etc/rsyncd.d
     &include /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)
 
 
 manpagesection(AUTHENTICATION STRENGTH)