aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ndpi_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/ndpi_utils.c')
-rw-r--r--src/lib/ndpi_utils.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/lib/ndpi_utils.c b/src/lib/ndpi_utils.c
index 35c0410e2..c62d82edf 100644
--- a/src/lib/ndpi_utils.c
+++ b/src/lib/ndpi_utils.c
@@ -3006,3 +3006,26 @@ u_int32_t ndpi_nearest_power_of_two(u_int32_t x) {
x++;
return(x);
}
+
+/* ********************************************************** */
+
+/*
+ https://en.wikipedia.org/wiki/Jenkins_hash_function
+
+ See also http://burtleburtle.net/bob/hash/spooky.html
+*/
+u_int32_t ndpi_hash_string(char *str) {
+ u_int32_t hash, i;
+
+ for(hash = i = 0; str[i] != '\0'; ++i) {
+ hash += str[i];
+ hash += (hash << 10);
+ hash ^= (hash >> 6);
+ }
+
+ hash += (hash << 3);
+ hash ^= (hash >> 11);
+ hash += (hash << 15);
+
+ return(hash);
+}