From: Jaroslav Kysela Date: Fri, 25 Aug 2017 14:50:06 +0000 (+0200) Subject: satip client: issue discovery packets 1,10,30,3600+ seconds after boot, fixes #4553 X-Git-Tag: v4.2.4~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=699c827bf749873716b0d94f68e173a0ff545cd3;p=thirdparty%2Ftvheadend.git satip client: issue discovery packets 1,10,30,3600+ seconds after boot, fixes #4553 --- diff --git a/src/input/mpegts/satip/satip.c b/src/input/mpegts/satip/satip.c index 92d6562be..62234dabe 100644 --- a/src/input/mpegts/satip/satip.c +++ b/src/input/mpegts/satip/satip.c @@ -1251,18 +1251,24 @@ ST: urn:ses-com:device:SatIPServer:1\r\n" 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)) { @@ -1280,7 +1286,9 @@ satip_discovery_timer_cb(void *aux) 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