fix endless loop when more than one CI can handle a service
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Fri, 1 Jun 2007 14:16:24 +0000 (14:16 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Fri, 1 Jun 2007 14:16:24 +0000 (14:16 +0000)
lib/dvb_ci/dvbci.cpp

index 800a40d2b98fa8ac93c5edf262ffc30ea7512689..e9055348464d8d1182c7233416b05894d05d5902 100644 (file)
@@ -368,6 +368,7 @@ void eDVBCIInterfaces::recheckPMTHandlers()
                                        {
                                                if (tmp == ci_it)
                                                        break;
+                                               tmp=tmp->linked_next;
                                        }
 
                                        if (tmp) // ignore already assigned cislots...
@@ -1040,9 +1041,9 @@ int eDVBCISlot::sendCAPMT(eDVBServicePMTHandler *pmthandler, const std::vector<u
                {
                        unsigned char raw_data[2048];
 
-//                     eDebug("send %s capmt for service %04x",
+//                     eDebug("send %s capmt for service %04x to slot %d",
 //                             it != running_services.end() ? "UPDATE" : running_services.empty() ? "ONLY" : "ADD",
-//                             program_number);
+//                             program_number, slotid);
 
                        CaProgramMapSection capmt(*i++,
                                it != running_services.end() ? 0x05 /*update*/ : running_services.empty() ? 0x03 /*only*/ : 0x04 /*add*/, 0x01, caids );