esfilter: Fixed ANY match for CA filter

This commit is contained in:
Jaroslav Kysela 2014-06-16 16:21:29 +02:00
parent d039610c24
commit 5394ce2cc9

View file

@ -397,17 +397,18 @@ filter:
if (esf->esf_pid && esf->esf_pid != st->es_pid)
continue;
}
if (i == ESF_CLASS_CA &&
(esf->esf_caid != -1 || esf->esf_caprovider != -1)) {
LIST_FOREACH(ca, &st->es_caids, link) {
if (esf->esf_caid != -1 && ca->caid != esf->esf_caid)
if (i == ESF_CLASS_CA) {
if ((esf->esf_caid != (uint16_t)-1 || esf->esf_caprovider != -1)) {
LIST_FOREACH(ca, &st->es_caids, link) {
if (esf->esf_caid != -1 && ca->caid != esf->esf_caid)
continue;
if (esf->esf_caprovider != -1 && ca->providerid != esf->esf_caprovider)
continue;
break;
}
if (ca == NULL)
continue;
if (esf->esf_caprovider != -1 && ca->providerid != esf->esf_caprovider)
continue;
break;
}
if (ca == NULL)
continue;
}
if (esf->esf_log)
tvhlog(LOG_INFO, "service", "esfilter: %s %03d %05d %s %s %s %s",