summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2018-04-24 01:21:32 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2018-04-24 01:30:09 +0200
commit760bd16776b111c006ba209545abfc5c849702b4 (patch)
tree0ed306e0dffb8bc062d6454b3cf87ee0bfa66a9e
parent35ba5cfa4c092db6c7889756083169f2b259238e (diff)
src: simplify netlink_get_setelems() and rename it to netlink_list_setelems()
This is called from cache population path, remove netlink_io_error() call since this is not needed. Rename it for consistency with similar netlink_list_*() NLM_F_DUMP functions. Get rid of location parameter. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--include/netlink.h4
-rw-r--r--src/netlink.c15
-rw-r--r--src/rule.c3
3 files changed, 9 insertions, 13 deletions
diff --git a/include/netlink.h b/include/netlink.h
index 92bae138..d153e2be 100644
--- a/include/netlink.h
+++ b/include/netlink.h
@@ -156,8 +156,8 @@ extern int netlink_add_setelems_batch(struct netlink_ctx *ctx, const struct hand
const struct expr *expr, uint32_t flags);
extern int netlink_delete_setelems_batch(struct netlink_ctx *ctx,
const struct cmd *cmd);
-extern int netlink_get_setelems(struct netlink_ctx *ctx, const struct handle *h,
- const struct location *loc, struct set *set);
+extern int netlink_list_setelems(struct netlink_ctx *ctx,
+ const struct handle *h, struct set *set);
extern int netlink_get_setelem(struct netlink_ctx *ctx, const struct handle *h,
const struct location *loc, struct table *table,
struct set *set, struct expr *init);
diff --git a/src/netlink.c b/src/netlink.c
index 9e11af5d..372caaa9 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -1294,8 +1294,8 @@ static int list_setelem_cb(struct nftnl_set_elem *nlse, void *arg)
return netlink_delinearize_setelem(nlse, ctx->set, ctx->cache);
}
-int netlink_get_setelems(struct netlink_ctx *ctx, const struct handle *h,
- const struct location *loc, struct set *set)
+int netlink_list_setelems(struct netlink_ctx *ctx, const struct handle *h,
+ struct set *set)
{
struct nftnl_set *nls;
int err;
@@ -1308,11 +1308,11 @@ int netlink_get_setelems(struct netlink_ctx *ctx, const struct handle *h,
if (errno == EINTR)
return -1;
- goto out;
+ return 0;
}
ctx->set = set;
- set->init = set_expr_alloc(loc, set);
+ set->init = set_expr_alloc(&internal_location, set);
nftnl_set_elem_foreach(nls, list_setelem_cb, ctx);
if (!(set->flags & NFT_SET_INTERVAL))
@@ -1323,11 +1323,8 @@ int netlink_get_setelems(struct netlink_ctx *ctx, const struct handle *h,
if (set->flags & NFT_SET_INTERVAL)
interval_map_decompose(set->init);
-out:
- if (err < 0)
- netlink_io_error(ctx, loc, "Could not receive set elements: %s",
- strerror(errno));
- return err;
+
+ return 0;
}
int netlink_get_setelem(struct netlink_ctx *ctx, const struct handle *h,
diff --git a/src/rule.c b/src/rule.c
index 2ad7f23e..1f69afd1 100644
--- a/src/rule.c
+++ b/src/rule.c
@@ -84,8 +84,7 @@ static int cache_init_objects(struct netlink_ctx *ctx, enum cmd_ops cmd)
return -1;
list_for_each_entry(set, &table->sets, list) {
- ret = netlink_get_setelems(ctx, &set->handle,
- &internal_location, set);
+ ret = netlink_list_setelems(ctx, &set->handle, set);
if (ret < 0)
return -1;
}