diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index 661bd9bec..d8813db82 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -636,7 +636,7 @@ static void removeOldEvents(const long seconds) deleteEvent(*i); readLockEvents(); - printf("[sectionsd] Removed %d old events (%d left).\n", (int)(total_events - mySIeventsOrderUniqueKey.size()), (int)mySIeventsOrderUniqueKey.size()); + xprintf("[sectionsd] Removed %d old events (%d left), zap detected %d.\n", (int)(total_events - mySIeventsOrderUniqueKey.size()), (int)mySIeventsOrderUniqueKey.size(), messaging_zap_detected); unlockEvents(); return; } @@ -859,6 +859,9 @@ static void commandPauseScanning(int connfd, char *data, const unsigned dataLeng #endif #endif scanning = 0; + writeLockMessaging(); + messaging_zap_detected = false; + unlockMessaging(); } else if (!pause && !scanning) { @@ -882,6 +885,7 @@ static void commandPauseScanning(int connfd, char *data, const unsigned dataLeng writeLockMessaging(); messaging_have_CN = 0x00; messaging_got_CN = 0x00; + messaging_zap_detected = true; unlockMessaging(); scanning = 1; @@ -909,6 +913,9 @@ static void commandserviceChanged(int connfd, char *data, const unsigned dataLen if (cmd->dnum) { /* dont wakeup EIT, if we have max events allready */ if (max_events == 0 || (mySIeventsOrderUniqueKey.size() < max_events)) { + writeLockMessaging(); + messaging_zap_detected = true; + unlockMessaging(); threadEIT.setDemux(cmd->dnum); threadEIT.setCurrentService(uniqueServiceKey); }