* [PATCH 3/3] add -r flag to make mountd do reverse resolve of ipaddress on the fly
@ 2006-12-18 20:44 Jeff Layton
0 siblings, 0 replies; only message in thread
From: Jeff Layton @ 2006-12-18 20:44 UTC (permalink / raw)
To: nfs; +Cc: Neil Brown
For those that want "traditional" showmount -a behavior from their mountd
(hostname:/path instead of ipaddr:/path). This patch adds a '-r' flag that
does a reverse-resolve for each IP address listed in the rmtab when
a dump operation is called.
Probably not a good idea for those concerned about performance, but since it's
not the default option, I don't see it being an issue.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
--- nfs-utils-1.0.10/utils/mountd/mountd.c.revres
+++ nfs-utils-1.0.10/utils/mountd/mountd.c
@@ -37,6 +37,7 @@ static void usage(const char *, int exi
static exports get_exportlist(void);
static struct nfs_fh_len *get_rootfh(struct svc_req *, dirpath *, mountstat3 *, int v3);
+int reverse_resolve = 0;
int new_cache = 0;
/* PRC: a high-availability callout program can be specified with -H
@@ -557,7 +558,7 @@ main(int argc, char **argv)
/* Parse the command line options and arguments. */
opterr = 0;
- while ((c = getopt_long(argc, argv, "o:n:Fd:f:p:P:hH:N:V:vs:t:", longopts, NULL)) != EOF)
+ while ((c = getopt_long(argc, argv, "o:n:Fd:f:p:P:hH:N:V:vrs:t:", longopts, NULL)) != EOF)
switch (c) {
case 'o':
descriptors = atoi(optarg);
@@ -597,6 +598,9 @@ main(int argc, char **argv)
case 'n':
_rpcfdtype = SOCK_DGRAM;
break;
+ case 'r':
+ reverse_resolve = 1;
+ break;
case 's':
if ((state_dir = xstrdup(optarg)) == NULL) {
fprintf(stderr, "%s: xstrdup(%s) failed!\n",
--- nfs-utils-1.0.10/utils/mountd/rmtab.c.revres
+++ nfs-utils-1.0.10/utils/mountd/rmtab.c
@@ -25,6 +25,8 @@
#include <limits.h> /* PATH_MAX */
+extern int reverse_resolve;
+
/* If new path is a link do not destroy it but place the
* file where the link points.
*/
@@ -185,6 +187,8 @@ mountlist_list(void)
struct rmtabent *rep;
struct stat stb;
int lockid;
+ struct in_addr addr;
+ struct hostent *he;
if ((lockid = xflock(_PATH_RMTAB, "r")) < 0)
return NULL;
@@ -204,7 +208,14 @@ mountlist_list(void)
setrmtabent("r");
while ((rep = getrmtabent(1, NULL)) != NULL) {
m = (mountlist) xmalloc(sizeof(*m));
- m->ml_hostname = xstrdup(rep->r_client);
+
+ if (reverse_resolve &&
+ inet_aton((const char *) rep->r_client, &addr) &&
+ (he = gethostbyaddr(&addr, sizeof(addr), AF_INET)))
+ m->ml_hostname = xstrdup(he->h_name);
+ else
+ m->ml_hostname = xstrdup(rep->r_client);
+
m->ml_directory = xstrdup(rep->r_path);
m->ml_next = mlist;
mlist = m;
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
NFS maillist - NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-12-18 20:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-18 20:44 [PATCH 3/3] add -r flag to make mountd do reverse resolve of ipaddress on the fly Jeff Layton
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.