diff options
| author | Chuck Lever <chuck.lever@oracle.com> | 2008-08-27 16:57:38 -0400 |
|---|---|---|
| committer | J. Bruce Fields <bfields@citi.umich.edu> | 2008-09-29 18:13:38 -0400 |
| commit | 396cb3d003c2ce72b50c8c06fddfbb7516f30eb1 (patch) | |
| tree | c23d66bde884c07eb45234d2ed76681914be3584 | |
| parent | 2860a0227b700feb8d6e5c4f07a62a1b40d96022 (diff) | |
lockd: Add address family-agnostic helper for zeroing the port number
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
| -rw-r--r-- | fs/lockd/host.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/fs/lockd/host.c b/fs/lockd/host.c index 22423abea281..008e4026f540 100644 --- a/fs/lockd/host.c +++ b/fs/lockd/host.c | |||
| @@ -40,6 +40,18 @@ static struct nsm_handle * nsm_find(const struct sockaddr_in *sin, | |||
| 40 | const char *hostname, | 40 | const char *hostname, |
| 41 | unsigned int hostname_len); | 41 | unsigned int hostname_len); |
| 42 | 42 | ||
| 43 | static void nlm_clear_port(struct sockaddr *sap) | ||
| 44 | { | ||
| 45 | switch (sap->sa_family) { | ||
| 46 | case AF_INET: | ||
| 47 | ((struct sockaddr_in *)sap)->sin_port = 0; | ||
| 48 | break; | ||
| 49 | case AF_INET6: | ||
| 50 | ((struct sockaddr_in6 *)sap)->sin6_port = 0; | ||
| 51 | break; | ||
| 52 | } | ||
| 53 | } | ||
| 54 | |||
| 43 | static void nlm_display_address(const struct sockaddr *sap, | 55 | static void nlm_display_address(const struct sockaddr *sap, |
| 44 | char *buf, const size_t len) | 56 | char *buf, const size_t len) |
| 45 | { | 57 | { |
| @@ -154,7 +166,7 @@ static struct nlm_host *nlm_lookup_host(int server, | |||
| 154 | } | 166 | } |
| 155 | host->h_name = nsm->sm_name; | 167 | host->h_name = nsm->sm_name; |
| 156 | host->h_addr = *sin; | 168 | host->h_addr = *sin; |
| 157 | host->h_addr.sin_port = 0; /* ouch! */ | 169 | nlm_clear_port((struct sockaddr *)&host->h_addr); |
| 158 | host->h_saddr = *ssin; | 170 | host->h_saddr = *ssin; |
| 159 | host->h_version = version; | 171 | host->h_version = version; |
| 160 | host->h_proto = proto; | 172 | host->h_proto = proto; |
