]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
satip client: issue discovery packets 1,10,30,3600+ seconds after boot, fixes #4553
authorJaroslav Kysela <perex@perex.cz>
Fri, 25 Aug 2017 14:50:06 +0000 (16:50 +0200)
committerJaroslav Kysela <perex@perex.cz>
Thu, 31 Aug 2017 13:56:13 +0000 (15:56 +0200)
src/input/mpegts/satip/satip.c

index 92d6562be08346ed338e631fbb264f444e63edd9..62234dabe2dc82c2568f99e1089ecb062d4dcede 100644 (file)
@@ -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