lockd: Specify address family for source address

Make sure an address family is specified for source addresses passed to
nlm_lookup_host().  nlm_lookup_host() will need this when it becomes
capable of dealing with AF_INET6 addresses.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
Chuck Lever 2008-08-27 16:57:31 -04:00 committed by J. Bruce Fields
parent 1b333c54a1
commit 2860a0227b
1 changed files with 9 additions and 5 deletions

View File

@ -220,10 +220,12 @@ struct nlm_host *nlmclnt_lookup_host(const struct sockaddr_in *sin,
const char *hostname, const char *hostname,
unsigned int hostname_len) unsigned int hostname_len)
{ {
struct sockaddr_in ssin = {0}; const struct sockaddr_in source = {
.sin_family = AF_UNSPEC,
};
return nlm_lookup_host(0, sin, proto, version, return nlm_lookup_host(0, sin, proto, version,
hostname, hostname_len, &ssin); hostname, hostname_len, &source);
} }
/* /*
@ -233,12 +235,14 @@ struct nlm_host *
nlmsvc_lookup_host(struct svc_rqst *rqstp, nlmsvc_lookup_host(struct svc_rqst *rqstp,
const char *hostname, unsigned int hostname_len) const char *hostname, unsigned int hostname_len)
{ {
struct sockaddr_in ssin = {0}; const struct sockaddr_in source = {
.sin_family = AF_INET,
.sin_addr = rqstp->rq_daddr.addr,
};
ssin.sin_addr = rqstp->rq_daddr.addr;
return nlm_lookup_host(1, svc_addr_in(rqstp), return nlm_lookup_host(1, svc_addr_in(rqstp),
rqstp->rq_prot, rqstp->rq_vers, rqstp->rq_prot, rqstp->rq_vers,
hostname, hostname_len, &ssin); hostname, hostname_len, &source);
} }
/* /*