interface: don't store table id in route if the default table is used
authorSteven Barth <steven@midlink.org>
Fri, 20 Jun 2014 17:50:13 +0000 (19:50 +0200)
committerSteven Barth <steven@midlink.org>
Fri, 20 Jun 2014 17:50:13 +0000 (19:50 +0200)
Use system_is_default_rt_table() to test whether the resolved routing table
is the default one, in this case do not apply the table attribute to the
route object.

This is needed for backwards compatibility - only routes using a non-default
table shall report it in the ifstatus output.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
interface-ip.c

index 715e49837266b7f68b247e10e46d5fc43f9c0f5d..587826a996cd708d094b00fc658fcaf3a4919dbc 100644 (file)
@@ -365,6 +365,10 @@ interface_ip_add_route(struct interface *iface, struct blob_attr *attr, bool v6)
                        goto error;
                }
 
+               /* only set the table flag if not using the main (default) table */
+               if (system_is_default_rt_table(route->table))
+                       route->table = 0;
+
                if (route->table)
                        route->flags |= DEVROUTE_TABLE;
        }