diff options
author | David Howells <dhowells@redhat.com> | 2016-08-30 09:49:29 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2016-08-30 16:07:53 +0100 |
commit | 8324f0bcfbfc645cf248e4b93ab58341b7d3b135 (patch) | |
tree | b1a436af48a2771a6f7e31d8006186fbfb5556da /net/rxrpc/peer_object.c | |
parent | e0661dfc5961cf14f255fa5466041a961ca2ebdf (diff) | |
download | lwn-8324f0bcfbfc645cf248e4b93ab58341b7d3b135.tar.gz lwn-8324f0bcfbfc645cf248e4b93ab58341b7d3b135.zip |
rxrpc: Provide a way for AFS to ask for the peer address of a call
Provide a function so that kernel users, such as AFS, can ask for the peer
address of a call:
void rxrpc_kernel_get_peer(struct rxrpc_call *call,
struct sockaddr_rxrpc *_srx);
In the future the kernel service won't get sk_buffs to look inside.
Further, this allows us to hide any canonicalisation inside AF_RXRPC for
when IPv6 support is added.
Also propagate this through to afs_find_server() and issue a warning if we
can't handle the address family yet.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'net/rxrpc/peer_object.c')
-rw-r--r-- | net/rxrpc/peer_object.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/net/rxrpc/peer_object.c b/net/rxrpc/peer_object.c index 538e9831c699..aebc73ac16dc 100644 --- a/net/rxrpc/peer_object.c +++ b/net/rxrpc/peer_object.c @@ -313,3 +313,18 @@ void __rxrpc_put_peer(struct rxrpc_peer *peer) kfree_rcu(peer, rcu); } + +/** + * rxrpc_kernel_get_peer - Get the peer address of a call + * @sock: The socket on which the call is in progress. + * @call: The call to query + * @_srx: Where to place the result + * + * Get the address of the remote peer in a call. + */ +void rxrpc_kernel_get_peer(struct socket *sock, struct rxrpc_call *call, + struct sockaddr_rxrpc *_srx) +{ + *_srx = call->peer->srx; +} +EXPORT_SYMBOL(rxrpc_kernel_get_peer); |