Commit fbfe3cc6 authored by Chuck Lever's avatar Chuck Lever Committed by Trond Myklebust

SUNRPC: Add hex-formatted address support to rpc_peeraddr2str()

Add support for the NFS client's need to export volume information
with IP addresses formatted in hex instead of decimal.

This isn't used yet, but subsequent patches (not in this series) will
change the NFS client to use this functionality.
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 0c43b3d8
...@@ -53,6 +53,8 @@ enum rpc_display_format_t { ...@@ -53,6 +53,8 @@ enum rpc_display_format_t {
RPC_DISPLAY_PORT, RPC_DISPLAY_PORT,
RPC_DISPLAY_PROTO, RPC_DISPLAY_PROTO,
RPC_DISPLAY_ALL, RPC_DISPLAY_ALL,
RPC_DISPLAY_HEX_ADDR,
RPC_DISPLAY_HEX_PORT,
RPC_DISPLAY_MAX, RPC_DISPLAY_MAX,
}; };
......
...@@ -296,6 +296,20 @@ static void xs_format_peer_addresses(struct rpc_xprt *xprt) ...@@ -296,6 +296,20 @@ static void xs_format_peer_addresses(struct rpc_xprt *xprt)
xprt->prot == IPPROTO_UDP ? "udp" : "tcp"); xprt->prot == IPPROTO_UDP ? "udp" : "tcp");
} }
xprt->address_strings[RPC_DISPLAY_ALL] = buf; xprt->address_strings[RPC_DISPLAY_ALL] = buf;
buf = kzalloc(10, GFP_KERNEL);
if (buf) {
snprintf(buf, 10, "%02x%02x%02x%02x",
NIPQUAD(addr->sin_addr.s_addr));
}
xprt->address_strings[RPC_DISPLAY_HEX_ADDR] = buf;
buf = kzalloc(8, GFP_KERNEL);
if (buf) {
snprintf(buf, 8, "%4hx",
ntohs(addr->sin_port));
}
xprt->address_strings[RPC_DISPLAY_HEX_PORT] = buf;
} }
static void xs_free_peer_addresses(struct rpc_xprt *xprt) static void xs_free_peer_addresses(struct rpc_xprt *xprt)
......
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