[SCM] The rsync repository. - branch master updated

Rsync CVS commit messages rsync-cvs at lists.samba.org
Fri Mar 11 17:11:36 MST 2011


The branch, master has been updated
       via  f7c3a25 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).
      from  6da6b02 Suggest a better solution for a make without wildcard support.

;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit f7c3a2505297c9fe16dc18ab6066d71028b9ccd4
Author: Wayne Davison <wayned at samba.org>
Date:   Fri Mar 11 16:09:49 2011 -0800

    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).

-----------------------------------------------------------------------

Summary of changes:
 params.c       |    3 ++-
 rsyncd.conf.yo |   19 ++++++++++++++-----
 2 files changed, 16 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/params.c b/params.c
index a14242e..0fbd986 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 f7f483b..2771041 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)
 


-- 
The rsync repository.


More information about the rsync-cvs mailing list