From: Ian Jackson Date: Thu, 15 Dec 2011 01:11:24 +0000 (+0000) Subject: userv-ipif: Always request routes from userv, regardless of link quality X-Git-Tag: debian/0.3.0_beta1~32 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=commitdiff_plain;h=04f92904ea6c41517ff7154910c16ef4c3bc646b;ds=inline 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 --- 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);