Got rid of changes that aren't going to make it into 2.6.9.
[rsync/rsync.git] / rsyncd.conf.yo
index ea7a45f..f6075d0 100644 (file)
@@ -162,6 +162,18 @@ Any clients connecting when the maximum has been reached will receive a
 message telling them to try later.  The default is 0 which means no limit.
 See also the "lock file" option.
 
 message telling them to try later.  The default is 0 which means no limit.
 See also the "lock file" option.
 
+dit(bf(munge symlinks)) The "munge symlinks" option tells rsync to not
+allow absolute symlinks (any leading slashes are stripped) and to trim
+parent-dir references ("../") if they attempt to move beyond the root of
+the transfer.  Use this option if you need to ensure that other processes
+(besides a daemon rsync) don't ever see a module-created symlink that can
+point outside the module, or perhaps if you value safety over preserving
+symlink data.
+
+Prior to rsync 2.6.9, symlink munging was always enabled when "use chroot"
+was off, and always disabled when it was on.  Starting with 2.6.9, this
+symlink-munging is totally controlled by the setting of this option.
+
 dit(bf(log file)) When the "log file" option is set to a non-empty
 string, the rsync daemon will log messages to the indicated file rather
 than using syslog. This is particularly useful on systems (such as AIX)
 dit(bf(log file)) When the "log file" option is set to a non-empty
 string, the rsync daemon will log messages to the indicated file rather
 than using syslog. This is particularly useful on systems (such as AIX)
@@ -493,15 +505,18 @@ quote(itemize(
   it() bf(RSYNC_HOST_ADDR): The accessing host's IP address.
   it() bf(RSYNC_HOST_NAME): The accessing host's name.
   it() bf(RSYNC_USER_NAME): The accessing user's name (empty if no user).
   it() bf(RSYNC_HOST_ADDR): The accessing host's IP address.
   it() bf(RSYNC_HOST_NAME): The accessing host's name.
   it() bf(RSYNC_USER_NAME): The accessing user's name (empty if no user).
+  it() bf(RSYNC_PID): A unique number for this transfer.
   it() bf(RSYNC_REQUEST): (pre-xfer only) The module/path info specified
   by the user (note that the user can specify multiple source files,
   so the request can be something like "mod/path1 mod/path2", etc.).
   it() bf(RSYNC_ARG#): (pre-xfer only) The pre-request arguments are set
   in these numbered values. RSYNC_ARG0 is always "rsyncd", and the last
   value contains a single period.
   it() bf(RSYNC_REQUEST): (pre-xfer only) The module/path info specified
   by the user (note that the user can specify multiple source files,
   so the request can be something like "mod/path1 mod/path2", etc.).
   it() bf(RSYNC_ARG#): (pre-xfer only) The pre-request arguments are set
   in these numbered values. RSYNC_ARG0 is always "rsyncd", and the last
   value contains a single period.
-  it() bf(RSYNC_EXIT_STATUS): (post-xfer only) rsync's exit value.  This will be 0 for a
-  successful run, a positive value for an error that rsync returned
-  (e.g. 23=partial xfer), or a -1 if rsync failed to exit properly.
+  it() bf(RSYNC_EXIT_STATUS): (post-xfer only) the server side's exit value.
+  This will be 0 for a successful run, a positive value for an error that the
+  server generated, or a -1 if rsync failed to exit properly.  Note that an
+  error that occurs on the client side does not currently get sent to the
+  server side, so this is not the final exit status for the whole transfer.
   it() bf(RSYNC_RAW_STATUS): (post-xfer only) the raw exit value from code(waitpid()).
 ))
 
   it() bf(RSYNC_RAW_STATUS): (post-xfer only) the raw exit value from code(waitpid()).
 ))