diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2010-01-14 12:23:15 -0500 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2010-01-15 14:55:51 -0500 |
commit | f0d3a4bedccca7cce48296757bc1c8bd59b80828 (patch) | |
tree | b3c2012dcc177962eed5974e6ddc6f7d46e84a0a /support/nfs/getport.c | |
parent | 18c3a41364836e61ceeb8e615e2b059904c5b65f (diff) | |
download | nfs-utils-f0d3a4bedccca7cce48296757bc1c8bd59b80828.tar.gz nfs-utils-f0d3a4bedccca7cce48296757bc1c8bd59b80828.tar.xz nfs-utils-f0d3a4bedccca7cce48296757bc1c8bd59b80828.zip |
nfs-utils: Collect socket address helpers into one location
Introduce generic helpers for managing socket addresses. These are
general enough that they are useful for pretty much any component of
nfs-utils.
We also include the definition of nfs_sockaddr here, so it can be
shared. See:
https://bugzilla.redhat.com/show_bug.cgi?id=448743
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'support/nfs/getport.c')
-rw-r--r-- | support/nfs/getport.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/support/nfs/getport.c b/support/nfs/getport.c index 7e0f798..c930539 100644 --- a/support/nfs/getport.c +++ b/support/nfs/getport.c @@ -45,6 +45,7 @@ #include <rpc/rpcb_prot.h> #endif +#include "sockaddr.h" #include "nfsrpc.h" /* @@ -705,8 +706,8 @@ int nfs_rpc_ping(const struct sockaddr *sap, const socklen_t salen, const rpcprog_t program, const rpcvers_t version, const unsigned short protocol, const struct timeval *timeout) { - struct sockaddr_storage address; - struct sockaddr *saddr = (struct sockaddr *)&address; + union nfs_sockaddr address; + struct sockaddr *saddr = &address.sa; CLIENT *client; struct timeval tout = { -1, 0 }; int result = 0; @@ -774,8 +775,8 @@ unsigned short nfs_getport(const struct sockaddr *sap, const rpcvers_t version, const unsigned short protocol) { - struct sockaddr_storage address; - struct sockaddr *saddr = (struct sockaddr *)&address; + union nfs_sockaddr address; + struct sockaddr *saddr = &address.sa; struct timeval timeout = { -1, 0 }; unsigned short port = 0; CLIENT *client; @@ -833,8 +834,8 @@ int nfs_getport_ping(struct sockaddr *sap, const socklen_t salen, } if (port != 0) { - struct sockaddr_storage address; - struct sockaddr *saddr = (struct sockaddr *)&address; + union nfs_sockaddr address; + struct sockaddr *saddr = &address.sa; memcpy(saddr, sap, (size_t)salen); nfs_set_port(saddr, port); @@ -885,8 +886,8 @@ unsigned short nfs_getlocalport(const rpcprot_t program, const rpcvers_t version, const unsigned short protocol) { - struct sockaddr_storage address; - struct sockaddr *lb_addr = (struct sockaddr *)&address; + union nfs_sockaddr address; + struct sockaddr *lb_addr = &address.sa; socklen_t lb_len = sizeof(*lb_addr); unsigned short port = 0; @@ -969,8 +970,8 @@ unsigned short nfs_rpcb_getaddr(const struct sockaddr *sap, const unsigned short protocol, const struct timeval *timeout) { - struct sockaddr_storage address; - struct sockaddr *saddr = (struct sockaddr *)&address; + union nfs_sockaddr address; + struct sockaddr *saddr = &address.sa; CLIENT *client; struct rpcb parms; struct timeval tout = { -1, 0 }; |