SUNRPC: Display compressed (shorthand) IPv6 presentation addresses
Recent changes to snprintf() introduced the %pI6c formatter, which can display an IPv6 address with standard shorthanding. Using a shorthanded address can save us a few bytes of memory for each stored presentation address, or a few bytes on the wire when sending these in a universal address. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
a01878aac5
commit
dd1fd90fe6
|
@ -55,16 +55,8 @@ static size_t rpc_ntop6_noscopeid(const struct sockaddr *sap,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* RFC 4291, Section 2.2.1
|
* RFC 4291, Section 2.2.1
|
||||||
*
|
|
||||||
* To keep the result as short as possible, especially
|
|
||||||
* since we don't shorthand, we don't want leading zeros
|
|
||||||
* in each halfword, so avoid %pI6.
|
|
||||||
*/
|
*/
|
||||||
return snprintf(buf, buflen, "%x:%x:%x:%x:%x:%x:%x:%x",
|
return snprintf(buf, buflen, "%pI6c", addr);
|
||||||
ntohs(addr->s6_addr16[0]), ntohs(addr->s6_addr16[1]),
|
|
||||||
ntohs(addr->s6_addr16[2]), ntohs(addr->s6_addr16[3]),
|
|
||||||
ntohs(addr->s6_addr16[4]), ntohs(addr->s6_addr16[5]),
|
|
||||||
ntohs(addr->s6_addr16[6]), ntohs(addr->s6_addr16[7]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t rpc_ntop6(const struct sockaddr *sap,
|
static size_t rpc_ntop6(const struct sockaddr *sap,
|
||||||
|
|
Loading…
Reference in New Issue