From fdbd4cbc1f1fbd28883db7d8a41fc258216ee70c Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Sun, 24 May 2020 15:04:45 -0400 Subject: services: nfs: Expose configuration options for TCP and UDP. * gnu/services/nfs.scm ()[nfsd-tcp?, nfsd-udp?]: New fields. (nfs-shepherd-services)[rpc.nfsd]: Populate the --{no-,}tcp and --{no-,}udp command line options based on the values of the nfsd-tcp? and nfsd-upd? fields. * doc/guix.texi (Network File System): Add doc. --- doc/guix.texi | 6 ++++++ gnu/services/nfs.scm | 14 +++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index aa2b316c90..cbfa1790fc 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -22834,6 +22834,12 @@ The network port that the @command{nfsd} daemon should use. @item @code{nfsd-threads} (default: @code{8}) The number of threads used by the @command{nfsd} daemon. +@item @code{nfsd-tcp?} (default: @code{#t}) +Whether the @command{nfsd} daemon should listen on a TCP socket. + +@item @code{nfsd-udp?} (default: @code{#f}) +Whether the @command{nfsd} daemon should listen on a UDP socket. + @item @code{pipefs-directory} (default: @code{"/var/lib/nfs/rpc_pipefs"}) The directory where the pipefs file system is mounted. diff --git a/gnu/services/nfs.scm b/gnu/services/nfs.scm index 4e358197e2..859097e788 100644 --- a/gnu/services/nfs.scm +++ b/gnu/services/nfs.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 John Darrington ;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus +;;; Copyright © 2020 Maxim Cournoyer ;;; ;;; This file is part of GNU Guix. ;;; @@ -261,6 +262,10 @@ (default 2049)) (nfsd-threads nfs-configuration-nfsd-threads (default 8)) + (nfsd-tcp? nfs-configuration-nfsd-tcp? + (default #t)) + (nfsd-udp? nfs-configuration-nfsd-udp? + (default #f)) (pipefs-directory nfs-configuration-pipefs-directory (default default-pipefs-directory)) ;; List of modules to debug; any of nfsd, nfs, rpc, idmap, statd, or mountd. @@ -272,6 +277,7 @@ (match-record config (nfs-utils nfs-versions exports rpcmountd-port rpcstatd-port nfsd-port nfsd-threads + nfsd-tcp? nfsd-udp? pipefs-directory debug) (list (shepherd-service (documentation "Mount the nfsd pseudo file system.") @@ -332,7 +338,13 @@ #$@(map (lambda (version) (string-append "--nfs-version=" version)) nfs-versions) - #$(number->string nfsd-threads)))))) + #$(number->string nfsd-threads) + #$(if nfsd-tcp? + "--tcp" + "--no-tcp") + #$(if nfsd-udp? + "--udp" + "--no-udp")))))) (stop #~(lambda _ (zero? -- cgit v1.2.3