From: Jaroslav Kysela Date: Fri, 31 Oct 2014 14:38:36 +0000 (+0100) Subject: cwc: reset preferred CA PID when NOKs are received and PID is not locked X-Git-Tag: v4.1~873 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fc96ba2f75f919d2bae441855af329c73363f470;p=thirdparty%2Ftvheadend.git cwc: reset preferred CA PID when NOKs are received and PID is not locked --- diff --git a/src/descrambler/cwc.c b/src/descrambler/cwc.c index cf26c11a3..bac4aa448 100755 --- a/src/descrambler/cwc.c +++ b/src/descrambler/cwc.c @@ -768,6 +768,9 @@ forbid: t->s_dvb_svcname, seq, delay, ct->td_nicename); ct->td_keystate = DS_FORBIDDEN; ct->ecm_state = ECM_RESET; + /* this pid is not valid, force full scan */ + if (t->s_dvb_prefcapid == ct->cs_channel && t->s_dvb_prefcapid_lock == 0) + t->s_dvb_prefcapid = 0; } return; @@ -875,9 +878,8 @@ cwc_running_reply(cwc_t *cwc, uint8_t msgtype, uint8_t *msg, int len) } } tvhlog(LOG_WARNING, "cwc", "Got unexpected ECM reply (seqno: %d)", seq); - LIST_FOREACH(ct, &cwc->cwc_services, cs_link) { + LIST_FOREACH(ct, &cwc->cwc_services, cs_link) ct->ecm_state = ECM_RESET; - } break; case 0xD3: