cEcmInfo *n;
while((n=ecms.First())) {
ecms.Del(n,false);
+ n->SetSource(sid,filterSource,filterTransponder);
overrides.UpdateEcm(n,dolog);
LBSTARTF(L_CORE_ECM);
if(dolog) LBPUT("%s: found %04x(%04x) (%s) id %04x with ecm %x/%x ",id,n->caId,n->emmCaId,n->name,n->provId,n->ecm_pid,n->ecm_table);
}
if(n) {
if(dolog) LBPUT("(new)");
- n->SetSource(sid,filterSource,filterTransponder);
ecmList.Add(n);
AddEcmPri(n);
}
bool cSystemCardClient::ProcessECM(const cEcmInfo *ecm, unsigned char *data)
{
- cCardClient *startCc=cc;
+ cCardClient *startCc=cc, *oldcc;
do {
if(cc) {
cTimeMs start;
}
}
if(!cc) PRINTF(L_CC_CORE,"cc-loop");
+ oldcc=cc;
cc=staticCcl.FindBySysId(ecm->caId,cc);
if(cc && cc!=startCc) PRINTF(L_CC_CORE,"now trying client %s (%s:%d)",cc->Name(),cc->hostname,cc->port);
- } while(cc!=startCc);
+ } while(cc!=startCc && cc!=oldcc);
return false;
}