Don't add duplicate blocks to the hashtable.
Don't add duplicate blocks to the hashtable.

A large number of duplicate blocks (long runs of zero) act like a DOS
attack on the open addressing hashtable because they all cluster.

Make rs_block_sig_init() support passing NULL for the strong_sum for
when the strong sum is not yet calculated.

Make rs_block_match_init() take a strong_sum argument for when the
strong_sum is pre-calculated. Use rs_block_sig_init() to initialize
the block_sig attribute.

Make rs_build_hash_table() check for existing identical blocks before
adding entries to the hashtable.

dbaarda/librsync,librsync/librsync,librsync/librsync,librsync/librsync,sourcefrog/librsync,dbaarda/librsync,sourcefrog/librsync,dbaarda/librsync,sourcefrog/librsync,librsync/librsync,sourcefrog/librsync,dbaarda/librsync