From 3ed296118a065caff5600e60d4f7ef18e137f9a0 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Thu, 9 Apr 2015 14:15:15 +0200 Subject: src: restore interface to index cache nftables used to have a cache to speed up interface name <-> index lookup, restore it using libmnl. This reduces netlink traffic since if_nametoindex() and if_indextoname() open, send a request, receive the list of interface and close a netlink socket for each call. I think this is also good for consistency since nft -f will operate with the same index number when reloading the ruleset. The cache is populated by when nft_if_nametoindex() and nft_if_indextoname() are used for first time. Then, it it released in the output path. In the interactive mode, it is invalidated after each command. Signed-off-by: Pablo Neira Ayuso --- src/main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 4590c30b..bfe589a0 100644 --- a/src/main.c +++ b/src/main.c @@ -25,6 +25,7 @@ #include #include #include +#include #include unsigned int max_errors = 10; @@ -362,7 +363,8 @@ int main(int argc, char * const *argv) out: scanner_destroy(scanner); erec_print_list(stderr, &msgs); - xfree(buf); + iface_cache_release(); + return rc; } -- cgit v1.2.3