]> git.baikalelectronics.ru Git - kernel.git/commit
rxrpc: Fix IPv6 support
authorDavid Howells <dhowells@redhat.com>
Tue, 29 Aug 2017 09:18:37 +0000 (10:18 +0100)
committerDavid Howells <dhowells@redhat.com>
Tue, 29 Aug 2017 09:55:20 +0000 (10:55 +0100)
commit99c81b0df6efb0fcbbd63688959fabc922180ac8
tree21ed0fb6ec3d190608bf72cbf9e3776d7e296fbe
parent914416d0d7de8535657a497aabe35938c67395c3
rxrpc: Fix IPv6 support

Fix IPv6 support in AF_RXRPC in the following ways:

 (1) When extracting the address from a received IPv4 packet, if the local
     transport socket is open for IPv6 then fill out the sockaddr_rxrpc
     struct for an IPv4-mapped-to-IPv6 AF_INET6 transport address instead
     of an AF_INET one.

 (2) When sending CHALLENGE or RESPONSE packets, the transport length needs
     to be set from the sockaddr_rxrpc::transport_len field rather than
     sizeof() on the IPv4 transport address.

 (3) When processing an IPv4 ICMP packet received by an IPv6 socket, set up
     the address correctly before searching for the affected peer.

Signed-off-by: David Howells <dhowells@redhat.com>
net/rxrpc/ar-internal.h
net/rxrpc/call_accept.c
net/rxrpc/conn_object.c
net/rxrpc/local_event.c
net/rxrpc/output.c
net/rxrpc/peer_event.c
net/rxrpc/rxkad.c
net/rxrpc/utils.c