From 6749281a87864273294b9b93c33b12cca7c12795 Mon Sep 17 00:00:00 2001 From: Nicolas Tsiftes Date: Thu, 23 Jun 2011 14:45:11 +0200 Subject: [PATCH] Rediscover lost routes when forwarding packets. Also refresh route entries when sending packets through them. Patch from Jaroslav Meduna. --- core/net/rime/mesh.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/net/rime/mesh.c b/core/net/rime/mesh.c index 5547f1f60..779628c97 100644 --- a/core/net/rime/mesh.c +++ b/core/net/rime/mesh.c @@ -89,10 +89,15 @@ data_packet_forward(struct multihop_conn *multihop, const rimeaddr_t *prevhop, uint8_t hops) { struct route_entry *rt; + struct mesh_conn *c = (struct mesh_conn *) + ((char *)multihop - offsetof(struct mesh_conn, multihop)); rt = route_lookup(dest); if(rt == NULL) { + route_discovery_discover(&c->route_discovery_conn, dest, PACKET_TIMEOUT); return NULL; + } else { + route_refresh(rt); } return &rt->nexthop;