From 04f92904ea6c41517ff7154910c16ef4c3bc646b Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 15 Dec 2011 01:11:24 +0000 Subject: [PATCH] userv-ipif: Always request routes from userv, regardless of link quality Previously the userv-ipif netlink would not request (from userv) a route for a site for which the link quality was DOWN. The link quality is a dynamic quantity but userv-ipif lacks any machinery for dynamically adding routes, so this is wrong. Instead, in userv-ipif, unconditionally add routes for all sites, regardless of link up status. In practice this code is run during startup and the only reason a link might be down at that point, ie LINK_QUALITY_DOWN, is that it does not have an address configured. Mobile sites are often in this situation. Signed-off-by: Ian Jackson --- slip.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/slip.c b/slip.c index a296e42..7c138d1 100644 --- a/slip.c +++ b/slip.c @@ -257,13 +257,11 @@ static void userv_invoke_userv(struct userv *st) allnets=ipset_new(); for (r=st->slip.nl.clients; r; r=r->next) { - if (r->up) { - struct ipset *nan; - r->kup=True; - nan=ipset_union(allnets,r->networks); - ipset_free(allnets); - allnets=nan; - } + struct ipset *nan; + r->kup=True; + nan=ipset_union(allnets,r->networks); + ipset_free(allnets); + allnets=nan; } snets=ipset_to_subnet_list(allnets); ipset_free(allnets); -- 2.30.2