hashed match: Use a different (larger) prime number.
authorFlorian Forster <octo@huhu.verplant.org>
Wed, 9 Dec 2009 15:30:10 +0000 (16:30 +0100)
committerFlorian Forster <octo@noris.net>
Wed, 9 Dec 2009 15:30:10 +0000 (16:30 +0100)
The previous prime number, 251, did not distribute good enough into
three groups.

src/match_hashed.c

index 062a7a7..4d53305 100644 (file)
@@ -158,8 +158,8 @@ static int mh_match (const data_set_t __attribute__((unused)) *ds, /* {{{ */
 
   for (host_ptr = vl->host; *host_ptr != 0; host_ptr++)
   {
-    /* 251 is the largest prime smaller than 256. */
-    hash_val = (hash_val * 251) + ((uint32_t) *host_ptr);
+    /* 2184401929 is some appropriately sized prime number. */
+    hash_val = (hash_val * 2184401929) + ((uint32_t) *host_ptr);
   }
   DEBUG ("hashed match: host = %s; hash_val = %"PRIu32";", vl->host, hash_val);