]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
service: enlist - use also is_enabled callback to check the network/mux enable state
authorJaroslav Kysela <perex@perex.cz>
Mon, 14 Jan 2019 14:21:24 +0000 (15:21 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 14 Jan 2019 14:21:24 +0000 (15:21 +0100)
src/input/mpegts/mpegts_service.c
src/service.c

index 56844e53a74a24008040ad01585d037b76c4c0bd..b8933a4e559c358b6559f5ef461bc57a56245b43 100644 (file)
@@ -280,6 +280,14 @@ mpegts_service_is_enabled(service_t *t, int flags)
   return mm->mm_is_enabled(mm) ? s->s_enabled : 0;
 }
 
+static int
+mpegts_service_is_enabled_raw(service_t *t, int flags)
+{
+  mpegts_service_t *s = (mpegts_service_t*)t;
+  mpegts_mux_t *mm    = s->s_dvb_mux;
+  return mm->mm_is_enabled(mm) ? s->s_enabled : 0;
+}
+
 /*
  * Save
  */
@@ -1175,7 +1183,7 @@ mpegts_service_create_raw ( mpegts_mux_t *mm )
   s->s_dvb_mux        = mm;
 
   s->s_delete         = mpegts_service_delete;
-  s->s_is_enabled     = mpegts_service_is_enabled;
+  s->s_is_enabled     = mpegts_service_is_enabled_raw;
   s->s_config_save    = mpegts_service_config_save;
   s->s_enlist         = mpegts_service_enlist_raw;
   s->s_start_feed     = mpegts_service_start;
index a53c85f5c73d39af1c2bdf9676bc1fb8efe43b09..cdcf5b5ea9977b515746faa3a604ed386e3721a2 100644 (file)
@@ -449,6 +449,10 @@ service_find_instance
         break;
       }
   } else {
+    if (!s->s_is_enabled(s, flags)) {
+      *error = SM_CODE_SVC_NOT_ENABLED;
+      return NULL;
+    }
     r = s->s_enlist(s, ti, sil, flags, weight);
   }