]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Some tweaks to direct route to gateway
authorStéphane Graber <stgraber@ubuntu.com>
Mon, 25 Nov 2013 19:33:15 +0000 (14:33 -0500)
committerStéphane Graber <stgraber@ubuntu.com>
Tue, 26 Nov 2013 15:22:55 +0000 (10:22 -0500)
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 <stgraber@ubuntu.com>
Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>
src/lxc/conf.c

index 7e85ae17c39ccd620e4740f9f2c8a56d7666405d..a841d797d87ce1bf02017ed56fc45c45ae7fb0cd 100644 (file)
@@ -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;
+                       }
                }
        }