From: leslie Date: Sat, 21 Jul 2012 11:34:29 +0000 (+0200) Subject: fix CAM handling for VDR 1.7.9+ X-Git-Tag: upstream/620~3 X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=e6d8c79a6ac35fd3c60c40092d897dcb5be49fd3;p=sasc-ng.git fix CAM handling for VDR 1.7.9+ --- diff --git a/cam.c b/cam.c index 7b290cc..a4c8234 100644 --- a/cam.c +++ b/cam.c @@ -1946,16 +1946,16 @@ void cScCamSlot::Process(const unsigned char *data, int len) PRINTF(L_CORE_CI,"%s.%d answer to query",devId,slot); } } - if(prg->sid!=0) { - if(ci_cmd==0x04 || (ci_cmd==-1 && ca_lm==0x03)) { - PRINTF(L_CORE_CI,"%s.%d stop decrypt",devId,slot); - cam->Stop(); - } - if(ci_cmd==0x01 || (ci_cmd==-1 && (ca_lm==0x04 || ca_lm==0x05))) { - PRINTF(L_CORE_CI,"%s.%d set CAM decrypt (prg %d)",devId,slot,prg->sid); - cam->AddPrg(prg); - } + else PRINTF(L_CORE_CI,"%s.%d answer to query surpressed",devId,slot); + if(ci_cmd==0x04 || (ci_cmd==-1 && prg->sid==0 && ca_lm==0x03)) { + PRINTF(L_CORE_CI,"%s.%d stop decrypt",devId,slot); + cam->Stop(); + } + else if(ci_cmd==0x01 || (ci_cmd==-1 && prg->sid!=0 && (ca_lm==0x03 || ca_lm==0x04 || ca_lm==0x05))) { + PRINTF(L_CORE_CI,"%s.%d set CAM decrypt (prg %d)",devId,slot,prg->sid); + cam->AddPrg(prg); } + else PRINTF(L_CORE_CI,"%s.%d no action taken",devId,slot); delete prg; } break;