netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH nft 1/4] configure: default to libedit for cli
@ 2021-10-25 21:50 Pablo Neira Ayuso
  2021-10-25 21:50 ` [PATCH nft 2/4] cache: always set on NFT_CACHE_REFRESH for listing Pablo Neira Ayuso
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Pablo Neira Ayuso @ 2021-10-25 21:50 UTC (permalink / raw)
  To: netfilter-devel

readline support only compiles for libreadline5, set libedit as default
library.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 6069b871911e..96cb91c7c979 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,7 +69,7 @@ AM_CONDITIONAL([BUILD_MINIGMP], [test "x$with_mini_gmp" = xyes])
 
 AC_ARG_WITH([cli], [AS_HELP_STRING([--without-cli],
             [disable interactive CLI (libreadline, editline or linenoise support)])],
-            [], [with_cli=readline])
+            [], [with_cli=editline])
 
 AS_IF([test "x$with_cli" = xreadline], [
 AC_CHECK_LIB([readline], [readline], ,
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH nft 2/4] cache: always set on NFT_CACHE_REFRESH for listing
  2021-10-25 21:50 [PATCH nft 1/4] configure: default to libedit for cli Pablo Neira Ayuso
@ 2021-10-25 21:50 ` Pablo Neira Ayuso
  2021-10-25 21:50 ` [PATCH nft 3/4] cache: honor filter in set listing commands Pablo Neira Ayuso
  2021-10-25 21:50 ` [PATCH nft 4/4] cache: honor table in set filtering Pablo Neira Ayuso
  2 siblings, 0 replies; 4+ messages in thread
From: Pablo Neira Ayuso @ 2021-10-25 21:50 UTC (permalink / raw)
  To: netfilter-devel

This flag forces a refresh of the cache on list commands, several
object types are missing this flag.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 src/cache.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/cache.c b/src/cache.c
index c602f93a3ec6..3cbf99e8e124 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -136,7 +136,7 @@ static unsigned int evaluate_cache_list(struct nft_ctx *nft, struct cmd *cmd,
 		if (filter && cmd->handle.table.name)
 			filter->table = cmd->handle.table.name;
 
-		flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH;
+		flags |= NFT_CACHE_FULL;
 		break;
 	case CMD_OBJ_SET:
 	case CMD_OBJ_MAP:
@@ -145,9 +145,9 @@ static unsigned int evaluate_cache_list(struct nft_ctx *nft, struct cmd *cmd,
 			filter->set = cmd->handle.set.name;
 		}
 		if (nft_output_terse(&nft->output))
-			flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM) | NFT_CACHE_REFRESH;
+			flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM);
 		else
-			flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH;
+			flags |= NFT_CACHE_FULL;
 		break;
 	case CMD_OBJ_CHAINS:
 		flags |= NFT_CACHE_TABLE | NFT_CACHE_CHAIN;
@@ -161,13 +161,14 @@ static unsigned int evaluate_cache_list(struct nft_ctx *nft, struct cmd *cmd,
 		break;
 	case CMD_OBJ_RULESET:
 		if (nft_output_terse(&nft->output))
-			flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM) | NFT_CACHE_REFRESH;
+			flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM);
 		else
-			flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH;
+			flags |= NFT_CACHE_FULL;
 	default:
-		flags |= NFT_CACHE_FULL | NFT_CACHE_REFRESH;
+		flags |= NFT_CACHE_FULL;
 		break;
 	}
+	flags |= NFT_CACHE_REFRESH;
 
 	return flags;
 }
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH nft 3/4] cache: honor filter in set listing commands
  2021-10-25 21:50 [PATCH nft 1/4] configure: default to libedit for cli Pablo Neira Ayuso
  2021-10-25 21:50 ` [PATCH nft 2/4] cache: always set on NFT_CACHE_REFRESH for listing Pablo Neira Ayuso
@ 2021-10-25 21:50 ` Pablo Neira Ayuso
  2021-10-25 21:50 ` [PATCH nft 4/4] cache: honor table in set filtering Pablo Neira Ayuso
  2 siblings, 0 replies; 4+ messages in thread
From: Pablo Neira Ayuso @ 2021-10-25 21:50 UTC (permalink / raw)
  To: netfilter-devel

Fetch table, set and set elements only for set listing commands, e.g.
nft list set inet filter ipv4_bogons.

Fixes: 635ee1cad8aa ("cache: filter out sets and maps that are not requested")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 src/cache.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/cache.c b/src/cache.c
index 3cbf99e8e124..691e8131c494 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -146,6 +146,8 @@ static unsigned int evaluate_cache_list(struct nft_ctx *nft, struct cmd *cmd,
 		}
 		if (nft_output_terse(&nft->output))
 			flags |= (NFT_CACHE_FULL & ~NFT_CACHE_SETELEM);
+		else if (filter->table && filter->set)
+			flags |= NFT_CACHE_TABLE | NFT_CACHE_SET | NFT_CACHE_SETELEM;
 		else
 			flags |= NFT_CACHE_FULL;
 		break;
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH nft 4/4] cache: honor table in set filtering
  2021-10-25 21:50 [PATCH nft 1/4] configure: default to libedit for cli Pablo Neira Ayuso
  2021-10-25 21:50 ` [PATCH nft 2/4] cache: always set on NFT_CACHE_REFRESH for listing Pablo Neira Ayuso
  2021-10-25 21:50 ` [PATCH nft 3/4] cache: honor filter in set listing commands Pablo Neira Ayuso
@ 2021-10-25 21:50 ` Pablo Neira Ayuso
  2 siblings, 0 replies; 4+ messages in thread
From: Pablo Neira Ayuso @ 2021-10-25 21:50 UTC (permalink / raw)
  To: netfilter-devel

Check if table mismatch, in case the same set name is used in different
tables.

Fixes: 635ee1cad8aa ("cache: filter out sets and maps that are not requested")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 src/cache.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/cache.c b/src/cache.c
index 691e8131c494..f62c9b96f528 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -377,7 +377,8 @@ static int set_cache_cb(struct nftnl_set *nls, void *arg)
 		return -1;
 
 	if (ctx->filter && ctx->filter->set &&
-	    (strcmp(ctx->filter->set, set->handle.set.name))) {
+	    (strcmp(ctx->filter->table, set->handle.table.name) ||
+	     strcmp(ctx->filter->set, set->handle.set.name))) {
 		set_free(set);
 		return 0;
 	}
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-10-25 21:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-10-25 21:50 [PATCH nft 1/4] configure: default to libedit for cli Pablo Neira Ayuso
2021-10-25 21:50 ` [PATCH nft 2/4] cache: always set on NFT_CACHE_REFRESH for listing Pablo Neira Ayuso
2021-10-25 21:50 ` [PATCH nft 3/4] cache: honor filter in set listing commands Pablo Neira Ayuso
2021-10-25 21:50 ` [PATCH nft 4/4] cache: honor table in set filtering Pablo Neira Ayuso

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).