From 94ccd4e72d3dfff000d8212ae63f45cd950bb53b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Falgueras=20Garc=C3=ADa?= Date: Wed, 10 Aug 2016 11:48:54 +0200 Subject: rule: Implement internal iterator for expressions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce nftnl_expr_iter_init() to allow stack allocated iterators for internal use. Signed-off-by: Carlos Falgueras GarcĂ­a --- src/rule.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/rule.c b/src/rule.c index 21039bb..dada00e 100644 --- a/src/rule.c +++ b/src/rule.c @@ -1030,6 +1030,17 @@ struct nftnl_expr_iter { struct nftnl_expr *cur; }; +static void nftnl_expr_iter_init(const struct nftnl_rule *r, + struct nftnl_expr_iter *iter) +{ + iter->r = r; + if (list_empty(&r->expr_list)) + iter->cur = NULL; + else + iter->cur = list_entry(r->expr_list.next, struct nftnl_expr, + head); +} + struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r) { struct nftnl_expr_iter *iter; @@ -1038,12 +1049,7 @@ struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r) if (iter == NULL) return NULL; - iter->r = r; - if (list_empty(&r->expr_list)) - iter->cur = NULL; - else - iter->cur = list_entry(r->expr_list.next, struct nftnl_expr, - head); + nftnl_expr_iter_init(r, iter); return iter; } -- cgit v1.2.3