]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/ipv4/fib_frontend.c
ipv4: Allow configuring subnets as local addresses
[net-next-2.6.git] / net / ipv4 / fib_frontend.c
index 7d02a9f999fabcebeb61800816d722e6f6c054ff..981f3c59b33412b8674b1974ca1b4877cde97511 100644 (file)
@@ -153,17 +153,16 @@ static void fib_flush(struct net *net)
 
 struct net_device * ip_dev_find(struct net *net, __be32 addr)
 {
-       struct flowi fl = { .nl_u = { .ip4_u = { .daddr = addr } } };
+       struct flowi fl = { .nl_u = { .ip4_u = { .daddr = addr } },
+                           .flags = FLOWI_FLAG_MATCH_ANY_IIF };
        struct fib_result res;
        struct net_device *dev = NULL;
-       struct fib_table *local_table;
 
 #ifdef CONFIG_IP_MULTIPLE_TABLES
        res.r = NULL;
 #endif
 
-       local_table = fib_get_table(net, RT_TABLE_LOCAL);
-       if (!local_table || fib_table_lookup(local_table, &fl, &res))
+       if (fib_lookup(net, &fl, &res))
                return NULL;
        if (res.type != RTN_LOCAL)
                goto out;