mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
lockd: Use sockaddr_storage + length for h_addr field
To store larger addresses in the nlm_host structure, make h_addr a sockaddr_storage, and add an address length field. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
parent
5344b12d4f
commit
b4ed58fd34
3 changed files with 22 additions and 7 deletions
|
@ -38,7 +38,8 @@
|
|||
*/
|
||||
struct nlm_host {
|
||||
struct hlist_node h_hash; /* doubly linked list */
|
||||
struct sockaddr_in h_addr; /* peer address */
|
||||
struct sockaddr_storage h_addr; /* peer address */
|
||||
size_t h_addrlen;
|
||||
struct sockaddr_in h_saddr; /* our address (optional) */
|
||||
struct rpc_clnt * h_rpcclnt; /* RPC client to talk to peer */
|
||||
char * h_name; /* remote hostname */
|
||||
|
@ -76,6 +77,19 @@ struct nsm_handle {
|
|||
char sm_addrbuf[48]; /* address eyecatcher */
|
||||
};
|
||||
|
||||
/*
|
||||
* Rigorous type checking on sockaddr type conversions
|
||||
*/
|
||||
static inline struct sockaddr_in *nlm_addr_in(const struct nlm_host *host)
|
||||
{
|
||||
return (struct sockaddr_in *)&host->h_addr;
|
||||
}
|
||||
|
||||
static inline struct sockaddr *nlm_addr(const struct nlm_host *host)
|
||||
{
|
||||
return (struct sockaddr *)&host->h_addr;
|
||||
}
|
||||
|
||||
/*
|
||||
* Map an fl_owner_t into a unique 32-bit "pid"
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue