diff --git a/core/net/rpl/rpl-icmp6.c b/core/net/rpl/rpl-icmp6.c index 80896ddc3..8fdefdedc 100644 --- a/core/net/rpl/rpl-icmp6.c +++ b/core/net/rpl/rpl-icmp6.c @@ -778,6 +778,7 @@ dao_input(void) rep->state.lifetime = RPL_LIFETIME(instance, lifetime); rep->state.learned_from = learned_from; + rep->state.nopath_received = 0; #if RPL_CONF_MULTICAST fwd_dao: diff --git a/core/net/rpl/rpl-timers.c b/core/net/rpl/rpl-timers.c index 4d4e8ca43..ea7bfe7f2 100644 --- a/core/net/rpl/rpl-timers.c +++ b/core/net/rpl/rpl-timers.c @@ -145,7 +145,7 @@ handle_dio_timer(void *ptr) if(instance->dio_send) { /* send DIO if counter is less than desired redundancy */ - if(instance->dio_counter < instance->dio_redundancy) { + if(instance->dio_redundancy != 0 && instance->dio_counter < instance->dio_redundancy) { #if RPL_CONF_STATS instance->dio_totsend++; #endif /* RPL_CONF_STATS */