]> 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:33 +0000 (15:21 +0100)
src/input/mpegts/mpegts_service.c
src/service.c

index d6f26e066fcf35998041ed543f1dd80904da5cd2..414d8ca19becd5cc51a30b93bc323af96b63a1ca 100644 (file)
@@ -277,6 +277,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
  */
@@ -1073,7 +1081,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 c42be1b3f67cfcd7d61f3422b354772f16a83a7a..94a7bd50270d818675761089f94bb1d6a206b561 100644 (file)
@@ -806,6 +806,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);
   }