summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac7
-rw-r--r--utils/nfsdcltrack/nfsdcltrack.c12
-rw-r--r--utils/nfsdcltrack/nfsdcltrack.man14
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