diff options
author | Duncan Roe <duncan_roe@optusnet.com.au> | 2018-04-26 09:23:49 +1000 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2018-04-26 01:34:45 +0200 |
commit | 8810a28d381580b8f9cce393481e83faf4f43f6e (patch) | |
tree | e043713a91af0de6c0a4d7edd7c979283fb7547a /src | |
parent | 45172efadbedee2b2dedc1e771046cca7edb0111 (diff) |
src: fix --debug mnl not producing output
cache_update() needs to accept the full debug mask instead of a boolean of
NFT_DEBUG_NETLINK, because called functions may wish to check other bits
(NFT_DEBUG_MNL in particular).
Signed-off-by: Duncan Roe <duncan_roe@optusnet.com.au>
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'src')
-rw-r--r-- | src/evaluate.c | 30 | ||||
-rw-r--r-- | src/netlink.c | 2 | ||||
-rw-r--r-- | src/rule.c | 4 |
3 files changed, 18 insertions, 18 deletions
diff --git a/src/evaluate.c b/src/evaluate.c index 265a73fe..e6978ea4 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -184,7 +184,7 @@ static int expr_evaluate_symbol(struct eval_ctx *ctx, struct expr **expr) break; case SYMBOL_SET: ret = cache_update(ctx->nf_sock, ctx->cache, ctx->cmd->op, - ctx->msgs, ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->msgs, ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -2995,14 +2995,14 @@ static int cmd_evaluate_add(struct eval_ctx *ctx, struct cmd *cmd) switch (cmd->obj) { case CMD_OBJ_SETELEM: ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, - ctx->msgs, ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->msgs, ctx->debug_mask, ctx->octx); if (ret < 0) return ret; return setelem_evaluate(ctx, &cmd->expr); case CMD_OBJ_SET: ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, - ctx->msgs, ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->msgs, ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3013,7 +3013,7 @@ static int cmd_evaluate_add(struct eval_ctx *ctx, struct cmd *cmd) return rule_evaluate(ctx, cmd->rule); case CMD_OBJ_CHAIN: ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, - ctx->msgs, ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->msgs, ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3022,7 +3022,7 @@ static int cmd_evaluate_add(struct eval_ctx *ctx, struct cmd *cmd) return table_evaluate(ctx, cmd->table); case CMD_OBJ_FLOWTABLE: ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, - ctx->msgs, ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->msgs, ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3045,7 +3045,7 @@ static int cmd_evaluate_delete(struct eval_ctx *ctx, struct cmd *cmd) switch (cmd->obj) { case CMD_OBJ_SETELEM: ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, - ctx->msgs, ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->msgs, ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3072,7 +3072,7 @@ static int cmd_evaluate_get(struct eval_ctx *ctx, struct cmd *cmd) int ret; ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, ctx->msgs, - ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3118,7 +3118,7 @@ static int cmd_evaluate_list(struct eval_ctx *ctx, struct cmd *cmd) int ret; ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, ctx->msgs, - ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3206,7 +3206,7 @@ static int cmd_evaluate_reset(struct eval_ctx *ctx, struct cmd *cmd) int ret; ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, ctx->msgs, - ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3245,7 +3245,7 @@ static int cmd_evaluate_flush(struct eval_ctx *ctx, struct cmd *cmd) break; case CMD_OBJ_SET: ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, ctx->msgs, - ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3260,7 +3260,7 @@ static int cmd_evaluate_flush(struct eval_ctx *ctx, struct cmd *cmd) return 0; case CMD_OBJ_MAP: ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, ctx->msgs, - ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3275,7 +3275,7 @@ static int cmd_evaluate_flush(struct eval_ctx *ctx, struct cmd *cmd) return 0; case CMD_OBJ_METER: ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, ctx->msgs, - ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3302,7 +3302,7 @@ static int cmd_evaluate_rename(struct eval_ctx *ctx, struct cmd *cmd) switch (cmd->obj) { case CMD_OBJ_CHAIN: ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, - ctx->msgs, ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->msgs, ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3400,7 +3400,7 @@ static int cmd_evaluate_monitor(struct eval_ctx *ctx, struct cmd *cmd) int ret; ret = cache_update(ctx->nf_sock, ctx->cache, cmd->op, ctx->msgs, - ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->debug_mask, ctx->octx); if (ret < 0) return ret; @@ -3425,7 +3425,7 @@ static int cmd_evaluate_export(struct eval_ctx *ctx, struct cmd *cmd) return cmd_error(ctx, "this output type is not supported"); return cache_update(ctx->nf_sock, ctx->cache, cmd->op, ctx->msgs, - ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->debug_mask, ctx->octx); } static int cmd_evaluate_import(struct eval_ctx *ctx, struct cmd *cmd) diff --git a/src/netlink.c b/src/netlink.c index 75c371dc..5fb42074 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -478,7 +478,7 @@ int netlink_replace_rule_batch(struct netlink_ctx *ctx, const struct cmd *cmd) if (ctx->octx->echo) { err = cache_update(ctx->nf_sock, ctx->cache, CMD_INVALID, ctx->msgs, - ctx->debug_mask & NFT_DEBUG_NETLINK, ctx->octx); + ctx->debug_mask, ctx->octx); if (err < 0) return err; @@ -143,7 +143,7 @@ static int cache_init(struct netlink_ctx *ctx, enum cmd_ops cmd) } int cache_update(struct mnl_socket *nf_sock, struct nft_cache *cache, - enum cmd_ops cmd, struct list_head *msgs, bool debug, + enum cmd_ops cmd, struct list_head *msgs, unsigned int debug_mask, struct output_ctx *octx) { uint16_t genid; @@ -153,7 +153,7 @@ int cache_update(struct mnl_socket *nf_sock, struct nft_cache *cache, .nf_sock = nf_sock, .cache = cache, .msgs = msgs, - .debug_mask = debug ? NFT_DEBUG_NETLINK : 0, + .debug_mask = debug_mask, .octx = octx, }; |