summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2008-07-15 13:34:49 -0400
committerSteve Dickson <steved@redhat.com>2008-07-15 13:34:49 -0400
commit1adb0e018f57079c6e95a9bdbf904361354b0527 (patch)
treeca5068758dca715cf6e6470ba5ae6a0e108cc592
parentda8a62dc65d2d105a3304dd41b6bdae5a5ddc742 (diff)
downloadnfs-utils-1adb0e018f57079c6e95a9bdbf904361354b0527.tar.gz
nfs-utils-1adb0e018f57079c6e95a9bdbf904361354b0527.tar.xz
nfs-utils-1adb0e018f57079c6e95a9bdbf904361354b0527.zip
Change the append_addr_option() function to support sending either IPv4
or IPv6 addresses to the kernel via the "addr=" option. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r--utils/mount/stropts.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index a1ffca2..f856998 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -237,19 +237,12 @@ out_err:
* Returns 1 if 'addr=' option appended successfully;
* otherwise zero.
*/
-static int append_addr_option(struct sockaddr_in *saddr,
- struct mount_options *options)
+static int nfs_append_addr_option(const struct sockaddr *sap,
+ socklen_t salen,
+ struct mount_options *options)
{
- char new_option[24];
-
po_remove_all(options, "addr");
-
- snprintf(new_option, sizeof(new_option) - 1,
- "addr=%s", inet_ntoa(saddr->sin_addr));
-
- if (po_append(options, new_option) == PO_SUCCEEDED)
- return 1;
- return 0;
+ return nfs_append_generic_address_option(sap, salen, "addr", options);
}
/*
@@ -358,10 +351,8 @@ static int nfs_validate_options(struct nfsmount_info *mi)
if (!nfs_append_sloppy_option(mi->options))
return 0;
- if (!append_addr_option(&saddr, mi->options))
- return 0;
-
- return 1;
+ return nfs_append_addr_option((struct sockaddr *)&saddr,
+ sizeof(saddr), mi->options);
}
/*