From: Stéphane Graber Date: Mon, 25 Nov 2013 19:33:15 +0000 (-0500) Subject: Some tweaks to direct route to gateway X-Git-Tag: lxc-1.0.0.beta1~89 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fc739df565e7e97963f775de35c37b6238356be9;p=thirdparty%2Flxc.git Some tweaks to direct route to gateway 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 --- 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; + } } }