mirror of
https://github.com/zeek/zeek.git
synced 2025-10-03 23:28:20 +00:00
Changing the Bloom filter hashing so that it's independent of
CompositeHash. We do this by hashing values added to a BloomFilter another time more with a stable hash seeded only by either the filter's name or the global_hash_seed (or Bro's random() seed if neither is defined). I'm also adding a new bif bloomfilter_internal_state() that returns a string representation of a Bloom filter's current internal state. This is solely for writing tests that check that the filters end up consistent when seeded with the same value.
This commit is contained in:
parent
6c197fbebf
commit
2a0790c231
14 changed files with 157 additions and 59 deletions
|
@ -490,6 +490,16 @@ BitVector::size_type BitVector::FindNext(size_type i) const
|
|||
return block ? bi * bits_per_block + lowest_bit(block) : find_from(bi + 1);
|
||||
}
|
||||
|
||||
size_t BitVector::Hash() const
|
||||
{
|
||||
size_t hash = 0;
|
||||
|
||||
for ( size_type i = 0; i < Blocks(); ++i )
|
||||
hash += bits[i];
|
||||
|
||||
return hash;
|
||||
}
|
||||
|
||||
BitVector::size_type BitVector::lowest_bit(block_type block)
|
||||
{
|
||||
block_type x = block - (block & (block - 1));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue