From: Chuck Lever Date: Fri, 19 Apr 2013 17:13:57 +0000 (-0400) Subject: sm-notify: "-v hostname" doesn't work when IPV6_SUPPORT is enabled X-Git-Tag: debian/1%1.2.8-1~11^2^2~4 X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=commitdiff_plain;h=37add3662de0339a75d3bed86a4235fc7efaf18d sm-notify: "-v hostname" doesn't work when IPV6_SUPPORT is enabled Marc Eshel reports that using the -v command line option on the sm-notify command stopped working after nfs-utils 1.2.2, when IPv6 support was added. If nfs-utils is built without IPv6 support, it still works. Marc specified a hostname with a single A record. smn_bind_address() must construct a bind address with the same family as the RPC socket's protocol family. Add an AI_V4MAPPED hint so an appropriate IPv6 bind address is constructed even if -v specifies an IPv4 presentation address, or a hostname with only IPv4 mappings. We still use an IPv4 bind address if IPv6 support is compiled out or the host does not support IPv6. Signed-off-by: Chuck Lever Signed-off-by: Steve Dickson Cc: Marc Eshel --- diff --git a/utils/statd/sm-notify.c b/utils/statd/sm-notify.c index a3290aa..9dbe5d9 100644 --- a/utils/statd/sm-notify.c +++ b/utils/statd/sm-notify.c @@ -349,7 +349,7 @@ smn_bind_address(const char *srcaddr, const char *srcport) { struct addrinfo *ai = NULL; struct addrinfo hint = { - .ai_flags = AI_NUMERICSERV, + .ai_flags = AI_NUMERICSERV | AI_V4MAPPED, .ai_family = nsm_family, .ai_protocol = (int)IPPROTO_UDP, };