mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-31 14:25:49 +00:00
inet: raw -- Skip IP_FREEBIND for ipv6 SOCK_RAW sockets
IP_FREEBIND is not supported for SOCK_RAW ipv6 sockets. See kernel rawv6_setsockopt() for the details. For the rest of sockets, where they begin to support it: the actual magic happens in do_ipv6_setsockopt(), and IPV6_ADDRFORM optname changes sk->sk_prot to refer to tcp_prot, udp_prot and udplite_prot, which contains link to ip_setsockopt(). Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Andrei Vagin <avagin@gmail.com>
This commit is contained in:
committed by
Andrei Vagin
parent
31c1955d13
commit
76b2d8e93b
@@ -840,7 +840,7 @@ int inet_bind(int sk, struct inet_sk_info *ii)
|
||||
* sockets could not be bound to them in this moment
|
||||
* without setting IP_FREEBIND.
|
||||
*/
|
||||
if (ii->ie->family == AF_INET6) {
|
||||
if (ii->ie->family == AF_INET6 && ii->ie->type != SOCK_RAW) {
|
||||
int yes = 1;
|
||||
|
||||
if (restore_opt(sk, SOL_IP, IP_FREEBIND, &yes))
|
||||
|
Reference in New Issue
Block a user