From ffd0f972f950be38ff7cee95752d29ffc97adfe1 Mon Sep 17 00:00:00 2001 From: max10 Date: Wed, 15 Jun 2016 19:55:18 +0200 Subject: [PATCH] add channelid-check (thx DboxOldie) --- common/ca.h | 1 + common/ca_ci.cpp | 11 +++++++++++ common/ca_ci.h | 1 + 3 files changed, 13 insertions(+) diff --git a/common/ca.h b/common/ca.h index 3cd207a..3c653a8 100644 --- a/common/ca.h +++ b/common/ca.h @@ -117,6 +117,7 @@ public: void InputAnswer(enum CA_SLOT_TYPE, uint32_t Slot, uint8_t * Data, int Len); void MenuClose(enum CA_SLOT_TYPE, uint32_t Slot); void SetTSClock(u32 /*Speed*/) { return; }; + bool checkChannelID(u64 /*chanID*/) { return false; }; virtual ~cCA(); }; diff --git a/common/ca_ci.cpp b/common/ca_ci.cpp index 85c1dda..5ca8c8e 100644 --- a/common/ca_ci.cpp +++ b/common/ca_ci.cpp @@ -1285,3 +1285,14 @@ bool cCA::CheckCerts(void) } return Cert_OK; } + +bool cCA::checkChannelID(u64 chanID) +{ + std::list::iterator it; + for (it = slot_data.begin(); it != slot_data.end(); ++it) + { + if ((*it)->tpid == chanID && !(*it)->SidBlackListed) + return true; + } + return false; +} diff --git a/common/ca_ci.h b/common/ca_ci.h index 2790ba6..6f21eed 100644 --- a/common/ca_ci.h +++ b/common/ca_ci.h @@ -294,6 +294,7 @@ public: bool checkQueueSize(tSlot* slot); void process_tpdu(tSlot* slot, unsigned char tpdu_tag, __u8* data, int asn_data_length, int con_id); + bool checkChannelID(u64 chanID); unsigned int GetLiveSlot(void); bool SendNullPMT(tSlot* slot); bool CheckCerts(void);