Repository : ssh://git@open-mesh.org/batman-adv
On branch : master
commit 47dc789e7f949b74eef810ca3b48dd2fac0402bf Author: Simon Wunderlich sw@simonwunderlich.de Date: Wed Aug 13 14:26:56 2014 +0200
batman-adv: fix and simplify condition when bonding should be used
The current condition actually does NOT consider bonding when the interface the packet came in from is the soft interface, which is the opposite of what it should do (and the comment describes). Fix that and slightly simplify the condition.
Reported-by: Ray Gibson booray@gmail.com Signed-off-by: Simon Wunderlich sw@simonwunderlich.de Signed-off-by: Marek Lindner mareklindner@neomailbox.ch
47dc789e7f949b74eef810ca3b48dd2fac0402bf routing.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/routing.c b/routing.c index 3a6764d..139d2f6 100644 --- a/routing.c +++ b/routing.c @@ -442,11 +442,13 @@ batadv_find_router(struct batadv_priv *bat_priv,
router = batadv_orig_router_get(orig_node, recv_if);
+ if (!router) + return router; + /* only consider bonding for recv_if == BATADV_IF_DEFAULT (first hop) * and if activated. */ - if (recv_if == BATADV_IF_DEFAULT || !atomic_read(&bat_priv->bonding) || - !router) + if (!(recv_if == BATADV_IF_DEFAULT && atomic_read(&bat_priv->bonding))) return router;
/* bonding: loop through the list of possible routers found