diff options
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | utils/nfsdcltrack/nfsdcltrack.c | 12 | ||||
-rw-r--r-- | utils/nfsdcltrack/nfsdcltrack.man | 14 |
3 files changed, 33 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index d60f3a2..8a5aa2e 100644 --- a/configure.ac +++ b/configure.ac @@ -24,6 +24,12 @@ AC_ARG_WITH(statedir, statedir=$withval, statedir=/var/lib/nfs) AC_SUBST(statedir) +AC_ARG_WITH(nfsconfig, + [AC_HELP_STRING([--with-nfsconfig=/config/file], + [use general config file /config/file @<:@default=/etc/nfs.conf@:>@])], + nfsconfig=$withval, + nfsconfig=/etc/nfs.conf) + AC_SUBST(nfsconfig) AC_ARG_WITH(statdpath, [AC_HELP_STRING([--with-statdpath=/foo], [define the statd state dir as /foo instead of the NFS statedir @<:@default=/var/lib/nfs@:>@])], @@ -468,6 +474,7 @@ dnl Export some path names to config.h dnl ************************************************************* AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!]) AC_DEFINE_UNQUOTED(NSM_DEFAULT_STATEDIR, "$statdpath", [Define this to the pathname where statd keeps its state file]) +AC_DEFINE_UNQUOTED(NFS_CONFFILE, "$nfsconfig", [This defines the location of NFS daemon config file]) if test "x$cross_compiling" = "xno"; then CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-"$CFLAGS"} diff --git a/utils/nfsdcltrack/nfsdcltrack.c b/utils/nfsdcltrack/nfsdcltrack.c index fcdda7f..e6e514b 100644 --- a/utils/nfsdcltrack/nfsdcltrack.c +++ b/utils/nfsdcltrack/nfsdcltrack.c @@ -43,6 +43,7 @@ #include <sys/capability.h> #endif +#include "conffile.h" #include "xlog.h" #include "sqlite.h" @@ -55,6 +56,8 @@ /* defined by RFC 3530 */ #define NFS4_OPAQUE_LIMIT 1024 +char *conf_path = NFS_CONFFILE; + /* private data structures */ struct cltrack_cmd { char *name; @@ -553,6 +556,7 @@ int main(int argc, char **argv) { char arg; + char *val; int rc = 0; char *progname, *cmdarg = NULL; struct cltrack_cmd *cmd; @@ -562,6 +566,14 @@ main(int argc, char **argv) xlog_syslog(1); xlog_stderr(0); + conf_init(); + val = conf_get_str("nfsdcltrack", "storagedir"); + if (val) + storagedir = val; + rc = conf_get_num("nfsdcltrack", "debug", 0); + if (rc > 0) + xlog_config(D_ALL, 1); + /* process command-line options */ while ((arg = getopt_long(argc, argv, "hdfs:", longopts, NULL)) != EOF) { diff --git a/utils/nfsdcltrack/nfsdcltrack.man b/utils/nfsdcltrack/nfsdcltrack.man index 4b8f4d7..cc24b7a 100644 --- a/utils/nfsdcltrack/nfsdcltrack.man +++ b/utils/nfsdcltrack/nfsdcltrack.man @@ -67,6 +67,20 @@ Check to see if a nfs_client_id4 is allowed to reclaim. This command requires a .IP "\fBgracedone\fR" 4 .IX Item "gracedone" Remove any unreclaimed client records from the database. This command requires a epoch boot time as an argument. +.SH "EXTERNAL CONFIGURATION" +The directory for stable storage information can be set via the file +.B /etc/nfs.conf +by setting the +.B storagedir +value in the +.B nfsdcltrack +section. For example: +.in +5 +[nfsdcltrack] +.br + storagedir = /shared/nfs/nfsdcltrack +.in -5 +Debuging to syslog can also be enabled by setting "debug = 1" in this file. .SH "LEGACY TRANSITION MECHANISM" .IX Header "LEGACY TRANSITION MECHANISM" The Linux kernel NFSv4 server has historically tracked this information |