Fix nfsdumpstate(8) so that it can print out INET6 callback addresses.

The patch adds support for printing of INET6 callback addresses.
It also adds the #ifdef INET, INET6 as requested by bz@.

PR:		223036
Reviewed by:	bz, rgrimes
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D19839
This commit is contained in:
Rick Macklem 2019-04-13 21:45:45 +00:00
parent 8fb93ac95d
commit 11f0e011c8
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=346190
2 changed files with 27 additions and 3 deletions

View File

@ -1,6 +1,15 @@
# $FreeBSD$
.include <src.opts.mk>
PROG= nfsdumpstate
MAN= nfsdumpstate.8
.if ${MK_INET_SUPPORT} != "no"
CFLAGS+= -DINET
.endif
.if ${MK_INET6_SUPPORT} != "no"
CFLAGS+= -DINET6
.endif
.include <bsd.prog.mk>

View File

@ -121,13 +121,14 @@ dump_openstate(void)
{
struct nfsd_dumplist dumplist;
int cnt, i;
char nbuf[INET6_ADDRSTRLEN];
dumplist.ndl_size = DUMPSIZE;
dumplist.ndl_list = (void *)dp;
if (nfssvc(NFSSVC_DUMPCLIENTS, &dumplist) < 0)
errx(1, "Can't perform dump clients syscall");
printf("%-13s %9.9s %9.9s %9.9s %9.9s %9.9s %9.9s %-15s %s\n",
printf("%-13s %9.9s %9.9s %9.9s %9.9s %9.9s %9.9s %-45s %s\n",
"Flags", "OpenOwner", "Open", "LockOwner",
"Lock", "Deleg", "OldDeleg", "Clientaddr", "ClientID");
/*
@ -143,9 +144,23 @@ dump_openstate(void)
dp[cnt].ndcl_nlocks,
dp[cnt].ndcl_ndelegs,
dp[cnt].ndcl_nolddelegs);
if (dp[cnt].ndcl_addrfam == AF_INET)
printf("%-15s ",
switch (dp[cnt].ndcl_addrfam) {
#ifdef INET
case AF_INET:
printf("%-45s ",
inet_ntoa(dp[cnt].ndcl_cbaddr.sin_addr));
break;
#endif
#ifdef INET6
case AF_INET6:
if (inet_ntop(AF_INET6, &dp[cnt].ndcl_cbaddr.sin6_addr,
nbuf, sizeof(nbuf)) != NULL)
printf("%-45s ", nbuf);
else
printf("%-45s ", " ");
break;
#endif
}
for (i = 0; i < dp[cnt].ndcl_clid.nclid_idlen; i++)
printf("%02x", dp[cnt].ndcl_clid.nclid_id[i]);
printf("\n");