From e820d00f4b19f09ea1baae6b75282cc3fd34a82a Mon Sep 17 00:00:00 2001 From: Chuck Lever Date: Wed, 27 Aug 2008 16:57:38 -0400 Subject: [PATCH] --- yaml --- r: 114320 b: refs/heads/master c: 396cb3d003c2ce72b50c8c06fddfbb7516f30eb1 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/lockd/host.c | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 2a3e79a57e91..713608182f08 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2860a0227b700feb8d6e5c4f07a62a1b40d96022 +refs/heads/master: 396cb3d003c2ce72b50c8c06fddfbb7516f30eb1 diff --git a/trunk/fs/lockd/host.c b/trunk/fs/lockd/host.c index 22423abea281..008e4026f540 100644 --- a/trunk/fs/lockd/host.c +++ b/trunk/fs/lockd/host.c @@ -40,6 +40,18 @@ static struct nsm_handle * nsm_find(const struct sockaddr_in *sin, const char *hostname, unsigned int hostname_len); +static void nlm_clear_port(struct sockaddr *sap) +{ + switch (sap->sa_family) { + case AF_INET: + ((struct sockaddr_in *)sap)->sin_port = 0; + break; + case AF_INET6: + ((struct sockaddr_in6 *)sap)->sin6_port = 0; + break; + } +} + static void nlm_display_address(const struct sockaddr *sap, char *buf, const size_t len) { @@ -154,7 +166,7 @@ static struct nlm_host *nlm_lookup_host(int server, } host->h_name = nsm->sm_name; host->h_addr = *sin; - host->h_addr.sin_port = 0; /* ouch! */ + nlm_clear_port((struct sockaddr *)&host->h_addr); host->h_saddr = *ssin; host->h_version = version; host->h_proto = proto;