]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
src: change type of chain.priority from unsigned int to int
authorHendrik Schwartke <hendrik@os-t.de>
Mon, 9 Jun 2014 21:39:32 +0000 (23:39 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 10 Jun 2014 09:33:47 +0000 (11:33 +0200)
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>
include/rule.h
src/netlink.c
src/rule.c

index ebdafe8a8c86fe5981b0727b68b4cf5678b48088..db9140687bde7f7ca10091f783ccb5f3c7d888cb 100644 (file)
@@ -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;
index edefc76f2c8ccb80d88db9179747c1fe901be5f9..2e7c572741e8a82675ade9922d18d02c99bf8c0a 100644 (file)
@@ -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;
index 43a3e117a54cac631e29714950740cb6f3b0927d..a7bc6f4498c405108497d1a4bde639bd043e91fa 100644 (file)
@@ -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);
        }