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:
parent
8fb93ac95d
commit
11f0e011c8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=346190
@ -1,6 +1,15 @@
|
|||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
|
.include <src.opts.mk>
|
||||||
|
|
||||||
PROG= nfsdumpstate
|
PROG= nfsdumpstate
|
||||||
MAN= nfsdumpstate.8
|
MAN= nfsdumpstate.8
|
||||||
|
|
||||||
|
.if ${MK_INET_SUPPORT} != "no"
|
||||||
|
CFLAGS+= -DINET
|
||||||
|
.endif
|
||||||
|
.if ${MK_INET6_SUPPORT} != "no"
|
||||||
|
CFLAGS+= -DINET6
|
||||||
|
.endif
|
||||||
|
|
||||||
.include <bsd.prog.mk>
|
.include <bsd.prog.mk>
|
||||||
|
@ -121,13 +121,14 @@ dump_openstate(void)
|
|||||||
{
|
{
|
||||||
struct nfsd_dumplist dumplist;
|
struct nfsd_dumplist dumplist;
|
||||||
int cnt, i;
|
int cnt, i;
|
||||||
|
char nbuf[INET6_ADDRSTRLEN];
|
||||||
|
|
||||||
dumplist.ndl_size = DUMPSIZE;
|
dumplist.ndl_size = DUMPSIZE;
|
||||||
dumplist.ndl_list = (void *)dp;
|
dumplist.ndl_list = (void *)dp;
|
||||||
if (nfssvc(NFSSVC_DUMPCLIENTS, &dumplist) < 0)
|
if (nfssvc(NFSSVC_DUMPCLIENTS, &dumplist) < 0)
|
||||||
errx(1, "Can't perform dump clients syscall");
|
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",
|
"Flags", "OpenOwner", "Open", "LockOwner",
|
||||||
"Lock", "Deleg", "OldDeleg", "Clientaddr", "ClientID");
|
"Lock", "Deleg", "OldDeleg", "Clientaddr", "ClientID");
|
||||||
/*
|
/*
|
||||||
@ -143,9 +144,23 @@ dump_openstate(void)
|
|||||||
dp[cnt].ndcl_nlocks,
|
dp[cnt].ndcl_nlocks,
|
||||||
dp[cnt].ndcl_ndelegs,
|
dp[cnt].ndcl_ndelegs,
|
||||||
dp[cnt].ndcl_nolddelegs);
|
dp[cnt].ndcl_nolddelegs);
|
||||||
if (dp[cnt].ndcl_addrfam == AF_INET)
|
switch (dp[cnt].ndcl_addrfam) {
|
||||||
printf("%-15s ",
|
#ifdef INET
|
||||||
|
case AF_INET:
|
||||||
|
printf("%-45s ",
|
||||||
inet_ntoa(dp[cnt].ndcl_cbaddr.sin_addr));
|
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++)
|
for (i = 0; i < dp[cnt].ndcl_clid.nclid_idlen; i++)
|
||||||
printf("%02x", dp[cnt].ndcl_clid.nclid_id[i]);
|
printf("%02x", dp[cnt].ndcl_clid.nclid_id[i]);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user