diff --git a/src/core/ipv4/igmp.c b/src/core/ipv4/igmp.c index 9cb4c0c6..107c0e9a 100644 --- a/src/core/ipv4/igmp.c +++ b/src/core/ipv4/igmp.c @@ -696,12 +696,18 @@ static void igmp_start_timer(struct igmp_group *group, u8_t max_time) { /* ensure the input value is > 0 */ +#ifdef LWIP_RAND if (max_time == 0) { max_time = 1; } -#ifdef LWIP_RAND /* ensure the random value is > 0 */ group->timer = (LWIP_RAND() % max_time); +#else /* LWIP_RAND */ + /* ATTENTION: use this only if absolutely necessary! */ + group->timer = max_time / 2; + if (group->timer == 0) { + group->timer = 1; + } #endif /* LWIP_RAND */ }