summaryrefslogtreecommitdiffstats
path: root/include/cache.h
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2020-08-20 18:21:37 +0200
committerPablo Neira Ayuso <pablo@netfilter.org>2020-08-26 18:52:28 +0200
commit913979f882d13360cba11fd4402d193d74b0396a (patch)
tree57a4d6846407b1457332cdcd113965a0c7644b9f /include/cache.h
parentcf456cdf82b9ee64c53a23cc64cf231d58bce452 (diff)
src: add expression handler hashtable
netlink_parsers is actually small, but update this code to use a hashtable instead since more expressions may come in the future. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/cache.h')
-rw-r--r--include/cache.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/cache.h b/include/cache.h
index 213a6eaf..b9db1a8f 100644
--- a/include/cache.h
+++ b/include/cache.h
@@ -35,4 +35,14 @@ enum cache_level_flags {
NFT_CACHE_FLUSHED = (1 << 31),
};
+static inline uint32_t djb_hash(const char *key)
+{
+ uint32_t i, hash = 5381;
+
+ for (i = 0; i < strlen(key); i++)
+ hash = ((hash << 5) + hash) + key[i];
+
+ return hash;
+}
+
#endif /* _NFT_CACHE_H_ */