~ruther/guix-local

1ea032fb5fc8dd6f7a10e5bc705e526d25fbe1b4 — Jacob Adams 5 years ago 69b249e
services: rsync: support binding rsync to a specific IP address

* gnu/services/rsync.scm (<rsync-configuration>)[address]: New field.
(rsync-config-file): Honor it.
* doc/guix.texi (Networking Services): Document new address rsync
configuration option.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2 files changed, 8 insertions(+), 1 deletions(-)

M doc/guix.texi
M gnu/services/rsync.scm
M doc/guix.texi => doc/guix.texi +4 -0
@@ 17158,6 17158,10 @@ Data type representing the configuration for @code{rsync-service}.
@item @code{package} (default: @var{rsync})
@code{rsync} package to use.

@item @code{address} (default: @code{#f})
IP address on which @command{rsync} listens for incoming connections.
If unspecified, it defaults to listening on all available addresses.

@item @code{port-number} (default: @code{873})
TCP port on which @command{rsync} listens for incoming connections.  If port
is less than @code{1024} @command{rsync} needs to be started as the

M gnu/services/rsync.scm => gnu/services/rsync.scm +4 -1
@@ 45,6 45,8 @@
  rsync-configuration?
  (package       rsync-configuration-package              ; package
                 (default rsync))
  (address       rsync-configuration-address              ; string | #f
                 (default #f))
  (port-number   rsync-configuration-port-number          ; integer
                 (default 873))
  (pid-file      rsync-configuration-pid-file             ; string


@@ 110,7 112,7 @@
(define rsync-config-file
  ;; Return the rsync configuration file corresponding to CONFIG.
  (match-lambda
    (($ <rsync-configuration> package port-number pid-file lock-file log-file
    (($ <rsync-configuration> package address port-number pid-file lock-file log-file
                              use-chroot? share-path share-comment read-only?
                              timeout user group uid gid)
     (if (not (string=? user "root"))


@@ 132,6 134,7 @@
      "pid file = " pid-file "\n"
      "lock file = " lock-file "\n"
      "log file = " log-file "\n"
      (if address (string-append "address = " address "\n") "")
      "port = " (number->string port-number) "\n"
      "use chroot = " (if use-chroot? "true" "false") "\n"
      (if uid (string-append "uid = " uid "\n") "")