diff options
authorPablo Neira Ayuso <>2008-11-15 21:22:24 +0100
committerPablo Neira Ayuso <>2008-11-15 21:22:24 +0100
commite6d816f8d096d98deeb0a52f96d44a4ace03ffe7 (patch)
parentf135f1c317a3c9430dc33a6ea7ff90a1ba808e36 (diff)
filter: use jhash2 instead of jhash for IPv6 addresses
Since an IPv6 address can be seen as an array of uint32_t. Use the optimized jhash2() function instead of the generic jhash(). Signed-off-by: Pablo Neira Ayuso <>
2 files changed, 2 insertions, 2 deletions
diff --git a/include/jhash.h b/include/jhash.h
index 38b8780..d164e38 100644
--- a/include/jhash.h
+++ b/include/jhash.h
@@ -87,7 +87,7 @@ static inline u32 jhash(const void *key, u32 length, u32 initval)
/* A special optimized version that handles 1 or more of u32s.
* The length parameter here is the number of u32s in the key.
-static inline u32 jhash2(u32 *k, u32 length, u32 initval)
+static inline u32 jhash2(const u32 *k, u32 length, u32 initval)
u32 a, b, c, len;
diff --git a/src/filter.c b/src/filter.c
index c4854bb..83c2eb3 100644
--- a/src/filter.c
+++ b/src/filter.c
@@ -49,7 +49,7 @@ static uint32_t hash(const void *data, struct hashtable *table)
static uint32_t hash6(const void *data, struct hashtable *table)
- return jhash(data, sizeof(uint32_t)*4, 0) % table->hashsize;
+ return jhash2(data, 4, 0) % table->hashsize;
static int compare(const void *data1, const void *data2)