[PATCH 3/3] userv-ipif: Always request routes from userv, regardless of link quality

Ian Jackson ijackson at chiark.greenend.org.uk
Thu Dec 15 13:45:40 GMT 2011


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 <ijackson at chiark.greenend.org.uk>
---
 slip.c |   12 +++++-------
 1 files 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);
-- 
1.5.6.5




More information about the sgo-software-discuss mailing list