]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
subscriptions: add SM_CODE_NO_ADAPTERS, fixes #3358
authorJaroslav Kysela <perex@perex.cz>
Mon, 30 Nov 2015 12:32:07 +0000 (13:32 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 30 Nov 2015 12:32:07 +0000 (13:32 +0100)
src/epggrab/otamux.c
src/htsp_server.c
src/input/mpegts/mpegts_network_scan.c
src/service.c
src/streaming.c
src/tvheadend.h

index ae813166e1ede0f0bb653b33339eb5f0680ddd98..916cc3f6ca71db5d1ce5fb3426bfb67ad762986b 100644 (file)
@@ -556,10 +556,14 @@ next_one:
                                 SUBSCRIPTION_EPG |
                                 SUBSCRIPTION_ONESHOT |
                                 SUBSCRIPTION_TABLES))) {
-    TAILQ_INSERT_TAIL(&epggrab_ota_pending, om, om_q_link);
-    om->om_q_type = EPGGRAB_OTA_MUX_PENDING;
-    if (r == SM_CODE_NO_FREE_ADAPTER)
+    if (r != SM_CODE_NO_ADAPTERS) {
+      TAILQ_INSERT_TAIL(&epggrab_ota_pending, om, om_q_link);
+      om->om_q_type = EPGGRAB_OTA_MUX_PENDING;
+      if (r == SM_CODE_NO_FREE_ADAPTER)
+        net->failed = 1;
+    } else {
       net->failed = 1;
+    }
     if (first == NULL)
       first = om;
   } else {
index 7fdf1e10c9b8f48ed5d993c9ca05b1ebc6e6894f..a54767263a3ac1d4f41d017a3b841f1716e628a2 100644 (file)
@@ -3872,6 +3872,7 @@ _htsp_get_subscription_status(int smcode)
   {
   case SM_CODE_NOT_FREE:
   case SM_CODE_NO_FREE_ADAPTER:
+  case SM_CODE_NO_ADAPTERS:
     return "noFreeAdapter";
   case SM_CODE_NO_DESCRAMBLER:
     return "scrambled";
index fdb9dd072384518fecd0730e0a8c42bf20b6bac5..5e05bac4f1f90e35728dbd745cbe3763813e4752 100644 (file)
@@ -66,7 +66,7 @@ mpegts_network_scan_timer_cb ( void *p )
     assert(mm->mm_scan_state == MM_SCAN_STATE_PEND);
 
     /* No free tuners - stop */
-    if (r == SM_CODE_NO_FREE_ADAPTER)
+    if (r == SM_CODE_NO_FREE_ADAPTER || r == SM_CODE_NO_ADAPTERS)
       break;
 
     /* No valid tuners (subtly different, might be able to tuner a later
index b2a230e76150f0a65f753ceec135e9b033804fc0..eead9cf5eade0d81287901efd1152155d9ef1de3 100644 (file)
@@ -706,6 +706,12 @@ service_find_instance
       service_instance_destroy(sil, si);
   }
   
+  if (TAILQ_EMPTY(sil)) {
+    if (*error < SM_CODE_NO_ADAPTERS)
+      *error = SM_CODE_NO_ADAPTERS;
+    return NULL;
+  }
+
   /* Debug */
   TAILQ_FOREACH(si, sil, si_link) {
     const char *name = ch ? channel_get_name(ch) : NULL;
index 6b86640adfb79cf44bc878b181310c1ea1ff2aa8..b6c5cadd970b64c2737f8f4659610237c0fd2622 100644 (file)
@@ -441,6 +441,8 @@ streaming_code2txt(int code)
     return N_("No source available");
   case SM_CODE_NO_SERVICE:
     return N_("No service assigned to channel");
+  case SM_CODE_NO_ADAPTERS:
+    return N_("No assigned adapters");
 
   case SM_CODE_ABORTED:
     return N_("Aborted by user");
index e9acd6544a9285c72df5fff5d64b3ef4072ccd53..14f4064407d32718a546c34e5ef38d5834c9fe91 100644 (file)
@@ -467,6 +467,7 @@ typedef enum {
 #define SM_CODE_NO_SOURCE                 206
 #define SM_CODE_NO_SERVICE                207
 #define SM_CODE_NO_VALID_ADAPTER          208
+#define SM_CODE_NO_ADAPTERS               209
 
 #define SM_CODE_ABORTED                   300