From fc739df565e7e97963f775de35c37b6238356be9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Graber?= Date: Mon, 25 Nov 2013 14:33:15 -0500 Subject: [PATCH] Some tweaks to direct route to gateway MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The previous patch added code to add a static route prior to adding the gateway to the interface. This commit simply changes the logic so that this is only done on failure to add the gateway. Signed-off-by: Stéphane Graber Acked-by: Serge Hallyn --- src/lxc/conf.c | 56 ++++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/src/lxc/conf.c b/src/lxc/conf.c index 7e85ae17c..a841d797d 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -2504,22 +2504,25 @@ static int setup_netdev(struct lxc_netdev *netdev) return -1; } - err = lxc_ipv4_dest_add(netdev->ifindex, netdev->ipv4_gateway); - if (err) { - ERROR("failed to add ipv4 dest for '%s': %s", - ifname, strerror(-err)); - } - err = lxc_ipv4_gateway_add(netdev->ifindex, netdev->ipv4_gateway); if (err) { - ERROR("failed to setup ipv4 gateway for '%s': %s", - ifname, strerror(-err)); - if (netdev->ipv4_gateway_auto) { - char buf[INET_ADDRSTRLEN]; - inet_ntop(AF_INET, netdev->ipv4_gateway, buf, sizeof(buf)); - ERROR("tried to set autodetected ipv4 gateway '%s'", buf); + err = lxc_ipv4_dest_add(netdev->ifindex, netdev->ipv4_gateway); + if (err) { + ERROR("failed to add ipv4 dest for '%s': %s", + ifname, strerror(-err)); + } + + err = lxc_ipv4_gateway_add(netdev->ifindex, netdev->ipv4_gateway); + if (err) { + ERROR("failed to setup ipv4 gateway for '%s': %s", + ifname, strerror(-err)); + if (netdev->ipv4_gateway_auto) { + char buf[INET_ADDRSTRLEN]; + inet_ntop(AF_INET, netdev->ipv4_gateway, buf, sizeof(buf)); + ERROR("tried to set autodetected ipv4 gateway '%s'", buf); + } + return -1; } - return -1; } } @@ -2535,22 +2538,25 @@ static int setup_netdev(struct lxc_netdev *netdev) return -1; } - err = lxc_ipv6_dest_add(netdev->ifindex, netdev->ipv6_gateway); - if (err) { - ERROR("failed to add ipv6 dest for '%s': %s", - ifname, strerror(-err)); - } - err = lxc_ipv6_gateway_add(netdev->ifindex, netdev->ipv6_gateway); if (err) { - ERROR("failed to setup ipv6 gateway for '%s': %s", + err = lxc_ipv6_dest_add(netdev->ifindex, netdev->ipv6_gateway); + if (err) { + ERROR("failed to add ipv6 dest for '%s': %s", ifname, strerror(-err)); - if (netdev->ipv6_gateway_auto) { - char buf[INET6_ADDRSTRLEN]; - inet_ntop(AF_INET6, netdev->ipv6_gateway, buf, sizeof(buf)); - ERROR("tried to set autodetected ipv6 gateway '%s'", buf); } - return -1; + + err = lxc_ipv6_gateway_add(netdev->ifindex, netdev->ipv6_gateway); + if (err) { + ERROR("failed to setup ipv6 gateway for '%s': %s", + ifname, strerror(-err)); + if (netdev->ipv6_gateway_auto) { + char buf[INET6_ADDRSTRLEN]; + inet_ntop(AF_INET6, netdev->ipv6_gateway, buf, sizeof(buf)); + ERROR("tried to set autodetected ipv6 gateway '%s'", buf); + } + return -1; + } } } -- 2.47.2