Commit 9d548b9c authored by Chuck Lever's avatar Chuck Lever Committed by J. Bruce Fields

SUNRPC: Use short-hand IPv6 ANYADDR for RPCB_SET

Clean up: When doing an RPCB_SET, make the kernel's rpcb client use the
shorthand "::" for the universal form of the IPv6 ANY address.

Without this patch, rpcbind will advertise:

  0000:0000:0000:0000:0000:0000:0000:0000.x.y

This is cosmetic only.  It cleans up the display of information from
/sbin/rpcinfo.
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
parent 2c7eb0b2
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <linux/in6.h> #include <linux/in6.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <net/ipv6.h>
#include <linux/sunrpc/clnt.h> #include <linux/sunrpc/clnt.h>
#include <linux/sunrpc/sched.h> #include <linux/sunrpc/sched.h>
...@@ -304,8 +305,11 @@ static int rpcb_register_netid6(struct sockaddr_in6 *address_to_register, ...@@ -304,8 +305,11 @@ static int rpcb_register_netid6(struct sockaddr_in6 *address_to_register,
char buf[64]; char buf[64];
/* Construct AF_INET6 universal address */ /* Construct AF_INET6 universal address */
snprintf(buf, sizeof(buf), if (ipv6_addr_any(&address_to_register->sin6_addr))
NIP6_FMT".%u.%u", snprintf(buf, sizeof(buf), "::.%u.%u",
port >> 8, port & 0xff);
else
snprintf(buf, sizeof(buf), NIP6_FMT".%u.%u",
NIP6(address_to_register->sin6_addr), NIP6(address_to_register->sin6_addr),
port >> 8, port & 0xff); port >> 8, port & 0xff);
map->r_addr = buf; map->r_addr = buf;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment