filter_entry
TAILQ_ENTRY(filter_entry) entries;
TAILQ_HEAD(, filter_entry) chain[nitems(filter_execs)];
struct filter_entry *filter_entry;
filter_entry = xcalloc(1, sizeof *filter_entry);
filter_entry->id = generate_uid();
filter_entry->name = subfilter->name;
filter_entry, entries);
filter_entry = xcalloc(1, sizeof *filter_entry);
filter_entry->id = generate_uid();
filter_entry->name = filter_name;
filter_entry, entries);
struct filter_entry *filter_entry;
filter_entry = TAILQ_FIRST(&filter_chain->chain[fs->phase]);
TAILQ_FOREACH(filter_entry, &filter_chain->chain[fs->phase], entries)
if (filter_entry->id == *token)
if (filter_entry == NULL)
filter_entry = TAILQ_NEXT(filter_entry, entries);
if (filter_entry == NULL) {
*token = filter_entry->id;
filter = dict_get(&filters, filter_entry->name);
filter_protocol_query(filter, filter_entry->id, reqid,
struct filter_entry *filter_entry;
filter_entry = TAILQ_FIRST(&filter_chain->chain[fs->phase]);
TAILQ_FOREACH(filter_entry, &filter_chain->chain[fs->phase], entries)
if (filter_entry->id == token)
if (filter_entry == NULL)
filter_entry = TAILQ_NEXT(filter_entry, entries);
if (filter_entry == NULL) {
filter = dict_get(&filters, filter_entry->name);
filter_data_query(filter, filter_entry->id, reqid, line);