diff options
author | Hendrik Schwartke <hendrik@os-t.de> | 2014-06-09 23:39:32 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2014-06-10 11:33:47 +0200 |
commit | c661d1f8726c9aa6968ec3a66351b18437918f21 (patch) | |
tree | a5517b03e3476a63de1bab28a410fda635a7da40 | |
parent | c000b14c35bf7722225a334ea3461976e78561dd (diff) |
src: change type of chain.priority from unsigned int to int
This removes a bug that displays strange hook priorities
like "type route hook output priority 4294967146".
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | include/rule.h | 2 | ||||
-rw-r--r-- | src/netlink.c | 6 | ||||
-rw-r--r-- | src/rule.c | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/include/rule.h b/include/rule.h index ebdafe8a..db914068 100644 --- a/include/rule.h +++ b/include/rule.h @@ -115,7 +115,7 @@ struct chain { uint32_t flags; const char *hookstr; unsigned int hooknum; - unsigned int priority; + int priority; const char *type; struct scope scope; struct list_head rules; diff --git a/src/netlink.c b/src/netlink.c index edefc76f..2e7c5727 100644 --- a/src/netlink.c +++ b/src/netlink.c @@ -485,7 +485,7 @@ static int netlink_add_chain_compat(struct netlink_ctx *ctx, if (chain != NULL && chain->flags & CHAIN_F_BASECHAIN) { nft_chain_attr_set_u32(nlc, NFT_CHAIN_ATTR_HOOKNUM, chain->hooknum); - nft_chain_attr_set_u32(nlc, NFT_CHAIN_ATTR_PRIO, + nft_chain_attr_set_s32(nlc, NFT_CHAIN_ATTR_PRIO, chain->priority); nft_chain_attr_set_str(nlc, NFT_CHAIN_ATTR_TYPE, chain->type); @@ -512,7 +512,7 @@ static int netlink_add_chain_batch(struct netlink_ctx *ctx, if (chain != NULL && chain->flags & CHAIN_F_BASECHAIN) { nft_chain_attr_set_u32(nlc, NFT_CHAIN_ATTR_HOOKNUM, chain->hooknum); - nft_chain_attr_set_u32(nlc, NFT_CHAIN_ATTR_PRIO, + nft_chain_attr_set_s32(nlc, NFT_CHAIN_ATTR_PRIO, chain->priority); nft_chain_attr_set_str(nlc, NFT_CHAIN_ATTR_TYPE, chain->type); @@ -667,7 +667,7 @@ static struct chain *netlink_delinearize_chain(struct netlink_ctx *ctx, chain->hooknum = nft_chain_attr_get_u32(nlc, NFT_CHAIN_ATTR_HOOKNUM); chain->priority = - nft_chain_attr_get_u32(nlc, NFT_CHAIN_ATTR_PRIO); + nft_chain_attr_get_s32(nlc, NFT_CHAIN_ATTR_PRIO); chain->type = xstrdup(nft_chain_attr_get_str(nlc, NFT_CHAIN_ATTR_TYPE)); chain->flags |= CHAIN_F_BASECHAIN; @@ -418,7 +418,7 @@ static void chain_print(const struct chain *chain) printf("\tchain %s {\n", chain->handle.chain); if (chain->flags & CHAIN_F_BASECHAIN) { - printf("\t\t type %s hook %s priority %u;\n", chain->type, + printf("\t\t type %s hook %s priority %d;\n", chain->type, hooknum2str(chain->handle.family, chain->hooknum), chain->priority); } @@ -439,7 +439,7 @@ void chain_print_plain(const struct chain *chain) chain->handle.table, chain->handle.chain); if (chain->flags & CHAIN_F_BASECHAIN) { - printf(" { type %s hook %s priority %u; }", chain->type, + printf(" { type %s hook %s priority %d; }", chain->type, hooknum2str(chain->handle.family, chain->hooknum), chain->priority); } |