static void
satip_discovery_static_timer_cb(void *aux)
{
+ static int next_timeout = 10;
int i;
if (!tvheadend_is_running())
return;
for (i = 0; i < satip_static_clients->num; i++)
satip_discovery_static(satip_static_clients->str[i]);
- mtimer_arm_rel(&satip_discovery_static_timer, satip_discovery_static_timer_cb, NULL, sec2mono(3600));
+ mtimer_arm_rel(&satip_discovery_static_timer, satip_discovery_static_timer_cb,
+ NULL, sec2mono(next_timeout));
+ if (next_timeout < 3600)
+ next_timeout = next_timeout >= 30 ? 3600 : 30;
}
static void
satip_discovery_timer_cb(void *aux)
{
+ static int next_timeout = 10;
+
if (!tvheadend_is_running())
return;
if (!atomic_get(&upnp_running)) {
if (satip_discovery_service)
satip_discovery_send_msearch((void *)1);
mtimer_arm_rel(&satip_discovery_timer, satip_discovery_timer_cb,
- NULL, sec2mono(3600));
+ NULL, sec2mono(next_timeout));
+ if (next_timeout < 3600)
+ next_timeout = next_timeout >= 30 ? 3600 : 30;
}
void