aboutsummaryrefslogtreecommitdiffstats
path: root/executor/common_linux.h
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-06-26 13:47:21 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-06-26 13:47:21 +0200
commit3f9c2931992b8362c6a33be18d6cd6f831cc8623 (patch)
treeab17fd9795c769eba9c272836ede969fb3b93327 /executor/common_linux.h
parent5e7849c5d16ce9e941cb8ecadcabed7fc43566ce (diff)
executor: don't crash during tun setup if ipv6 is not enabled
Some options that tun initialization sets up are optional. Don't fail if they are missing in kernel.
Diffstat (limited to 'executor/common_linux.h')
-rw-r--r--executor/common_linux.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/executor/common_linux.h b/executor/common_linux.h
index 66247a952..661f58c94 100644
--- a/executor/common_linux.h
+++ b/executor/common_linux.h
@@ -371,18 +371,21 @@ static void initialize_tun(void)
debug("tun_frags_enabled=%d\n", tun_frags_enabled);
// Disable IPv6 DAD, otherwise the address remains unusable until DAD completes.
- execute_command(1, "sysctl -w net.ipv6.conf.%s.accept_dad=0", TUN_IFACE);
+ // Don't panic because this is an optional config.
+ execute_command(0, "sysctl -w net.ipv6.conf.%s.accept_dad=0", TUN_IFACE);
// Disable IPv6 router solicitation to prevent IPv6 spam.
- execute_command(1, "sysctl -w net.ipv6.conf.%s.router_solicitations=0", TUN_IFACE);
+ // Don't panic because this is an optional config.
+ execute_command(0, "sysctl -w net.ipv6.conf.%s.router_solicitations=0", TUN_IFACE);
// There seems to be no way to disable IPv6 MTD to prevent more IPv6 spam.
execute_command(1, "ip link set dev %s address %s", TUN_IFACE, LOCAL_MAC);
execute_command(1, "ip addr add %s/24 dev %s", LOCAL_IPV4, TUN_IFACE);
- execute_command(1, "ip -6 addr add %s/120 dev %s", LOCAL_IPV6, TUN_IFACE);
execute_command(1, "ip neigh add %s lladdr %s dev %s nud permanent",
REMOTE_IPV4, REMOTE_MAC, TUN_IFACE);
- execute_command(1, "ip -6 neigh add %s lladdr %s dev %s nud permanent",
+ // Don't panic because ipv6 may be not enabled in kernel.
+ execute_command(0, "ip -6 addr add %s/120 dev %s", LOCAL_IPV6, TUN_IFACE);
+ execute_command(0, "ip -6 neigh add %s lladdr %s dev %s nud permanent",
REMOTE_IPV6, REMOTE_MAC, TUN_IFACE);
execute_command(1, "ip link set dev %s up", TUN_IFACE);
}