Limited some CAM related log messages to the actual master CAM, if any

This commit is contained in:
Klaus Schmidinger 2018-02-03 12:59:56 +01:00
parent c71c3115cc
commit c441a634a5
3 changed files with 10 additions and 7 deletions

View File

@ -9162,7 +9162,7 @@ Video Disk Recorder Revision History
a subdirectory. a subdirectory.
- SVDRP peering can now be limited to the default SVDRP host (see MANUAL for details). - SVDRP peering can now be limited to the default SVDRP host (see MANUAL for details).
2018-02-01: Version 2.3.9 2018-02-03: Version 2.3.9
- Updated the Italian OSD texts (thanks to Diego Pierotto). - Updated the Italian OSD texts (thanks to Diego Pierotto).
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg). - Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
@ -9253,3 +9253,4 @@ Video Disk Recorder Revision History
- Fixed handling editing marks in the replay progress display, in case the marks are - Fixed handling editing marks in the replay progress display, in case the marks are
deleted via the Info/Edit menu of the currently played recording (the progress deleted via the Info/Edit menu of the currently played recording (the progress
display still displayed them). display still displayed them).
- Limited some CAM related log messages to the actual master CAM, if any.

10
ci.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: ci.c 4.19 2018/01/28 11:14:40 kls Exp $ * $Id: ci.c 4.20 2018/02/03 12:55:03 kls Exp $
*/ */
#include "ci.h" #include "ci.h"
@ -306,7 +306,7 @@ void cCaActivationReceiver::Receive(const uchar *Data, int Length)
if (TsIsScrambled(Data)) if (TsIsScrambled(Data))
lastScrambledTime = Now; lastScrambledTime = Now;
else if (Now - lastScrambledTime > UNSCRAMBLE_TIME) { else if (Now - lastScrambledTime > UNSCRAMBLE_TIME) {
dsyslog("CAM %d: activated!", camSlot->SlotNumber()); dsyslog("CAM %d: activated!", camSlot->MasterSlotNumber());
Skins.QueueMessage(mtInfo, tr("CAM activated!")); Skins.QueueMessage(mtInfo, tr("CAM activated!"));
cDevice *d = Device(); cDevice *d = Device();
Detach(); Detach();
@ -1138,10 +1138,12 @@ void cCiConditionalAccessSupport::Process(int Length, const uint8_t *Data)
case AOT_CA_PMT_REPLY: { case AOT_CA_PMT_REPLY: {
dbgprotocol("Slot %d: <== Ca Pmt Reply (%d)", CamSlot()->SlotNumber(), SessionId()); dbgprotocol("Slot %d: <== Ca Pmt Reply (%d)", CamSlot()->SlotNumber(), SessionId());
if (!repliesToQuery) { if (!repliesToQuery) {
dsyslog("CAM %d: replies to QUERY - multi channel decryption (MCD) possible", CamSlot()->SlotNumber()); if (CamSlot()->IsMasterSlot())
dsyslog("CAM %d: replies to QUERY - multi channel decryption (MCD) possible", CamSlot()->SlotNumber());
repliesToQuery = true; repliesToQuery = true;
if (CamSlot()->MtdAvailable()) { if (CamSlot()->MtdAvailable()) {
dsyslog("CAM %d: supports multi transponder decryption (MTD)", CamSlot()->SlotNumber()); if (CamSlot()->IsMasterSlot())
dsyslog("CAM %d: supports multi transponder decryption (MTD)", CamSlot()->SlotNumber());
CamSlot()->MtdActivate(true); CamSlot()->MtdActivate(true);
} }
} }

4
ci.h
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: ci.h 4.10 2017/06/10 11:53:39 kls Exp $ * $Id: ci.h 4.11 2018/02/03 12:19:44 kls Exp $
*/ */
#ifndef __CI_H #ifndef __CI_H
@ -304,7 +304,7 @@ public:
virtual ~cCamSlot(); virtual ~cCamSlot();
bool IsMasterSlot(void) { return !masterSlot; } bool IsMasterSlot(void) { return !masterSlot; }
///< Returns true if this CAM slot itself is a master slot (which means that ///< Returns true if this CAM slot itself is a master slot (which means that
///< it doesn't have pointer to another CAM slot that's its master). ///< it doesn't have a pointer to another CAM slot that's its master).
cCamSlot *MasterSlot(void) { return masterSlot ? masterSlot : this; } cCamSlot *MasterSlot(void) { return masterSlot ? masterSlot : this; }
///< Returns this CAM slot's master slot, or a pointer to itself if it is a ///< Returns this CAM slot's master slot, or a pointer to itself if it is a
///< master slot. ///< master slot.