From 4f1a9d3c7510e7f1f382541d9bebaeab11908561 Mon Sep 17 00:00:00 2001 From: fros4943 Date: Wed, 21 Jan 2009 14:29:24 +0000 Subject: [PATCH] bugfix: stopping timeout timer when we receive route reply (still limited to only one active discovery) --- core/net/rime/route-discovery.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/core/net/rime/route-discovery.c b/core/net/rime/route-discovery.c index e345c554f..fe562421d 100644 --- a/core/net/rime/route-discovery.c +++ b/core/net/rime/route-discovery.c @@ -33,7 +33,7 @@ * * This file is part of the Contiki operating system. * - * $Id: route-discovery.c,v 1.12 2008/11/17 22:52:10 oliverschmidt Exp $ + * $Id: route-discovery.c,v 1.13 2009/01/21 14:29:24 fros4943 Exp $ */ /** @@ -155,6 +155,7 @@ rrep_packet_received(struct unicast_conn *uc, rimeaddr_t *from) if(rimeaddr_cmp(&msg->dest, &rimeaddr_node_addr)) { PRINTF("rrep for us!\n"); + ctimer_stop(&c->t); if(c->cb->new_route) { c->cb->new_route(c, &msg->originator); } @@ -164,11 +165,11 @@ rrep_packet_received(struct unicast_conn *uc, rimeaddr_t *from) rt = route_lookup(&msg->dest); if(rt != NULL) { - PRINTF("forwarding to %d\n", rt->nexthop.u16[0]); + PRINTF("forwarding to %d.%d\n", rt->nexthop.u8[0], rt->nexthop.u8[1]); msg->hops++; unicast_send(&c->rrepconn, &rt->nexthop); } else { - PRINTF("%d: no route to %d\n", rimeaddr_node_addr.u16[0], msg->dest.u16[0]); + PRINTF("%d.%d: no route to %d.%d\n", rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], msg->dest.u8[0], msg->dest.u8[1]); } } } @@ -181,11 +182,12 @@ rreq_packet_received(struct netflood_conn *nf, rimeaddr_t *from, struct route_discovery_conn *c = (struct route_discovery_conn *) ((char *)nf - offsetof(struct route_discovery_conn, rreqconn)); - PRINTF("%d.%d: rreq_packet_received from %d.%d hops %d rreq_id %d last %d/%d\n", + PRINTF("%d.%d: rreq_packet_received from %d.%d hops %d rreq_id %d last %d.%d/%d\n", rimeaddr_node_addr.u8[0], rimeaddr_node_addr.u8[1], from->u8[0], from->u8[1], hops, msg->rreq_id, - c->last_rreq_originator.u16[0], + c->last_rreq_originator.u8[0], + c->last_rreq_originator.u8[1], c->last_rreq_id); if(!(rimeaddr_cmp(&c->last_rreq_originator, originator) &&