From 5394ce2cc98a9378a52eb0e8b56d4f82fab66a7b Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 16 Jun 2014 16:21:29 +0200 Subject: [PATCH] esfilter: Fixed ANY match for CA filter --- src/service.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/service.c b/src/service.c index 7c4a0dc7..fb9396e1 100644 --- a/src/service.c +++ b/src/service.c @@ -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",