uint32_t hash = hash_seed;
for(int i = 0; i < 4; i++) {
- hash += fullwidth[i];
+ hash = wrapping_add32(hash, fullwidth[i]);
hash = wrapping_mul32(hash, 0x9e370001U);
}
uint32_t hash = hash_seed;
for(int i = 0; i < 3; i++) {
- hash += halfwidth[i];
+ hash = wrapping_add32(hash, halfwidth[i]);
hash = wrapping_mul32(hash, 0x9e370001U);
}
void init_subnets(void) {
hash_seed = (uint32_t)rand();
+
+ // tables need to be cleared on startup
+ subnet_cache_flush_tables();
}
void exit_subnets(void) {