syncthing/lib
greatroar 9f92f8c609
lib/db: Use SipHash to deal with hash collision in GC (#6826)
If the GC finds a key k that it wants to keep, it records that in a
Bloom filter. If a key k' can be removed but its hash collides with k,
it will be kept. Since the old Bloom filter code was completely
deterministic, the next run would encounter the same collision, assuming
k must still be kept.

A randomized hash function that uses all the SHA-256 bits solves this
problem: the second run has a non-zero probability of removing k', as
long as the Bloom filter is not completely full.
2020-07-11 09:36:09 +02:00
..
api lib/api, lib/model: Improve folder completion API (fixes #6075) (#6808) 2020-07-03 08:48:37 +02:00
assets lib/assets: Allow assets to remain uncompressed (#6661) 2020-05-25 08:51:27 +02:00
beacon lib/beacon: Only send to appropriately flagged interfaces (ref #5957) (#6404) 2020-03-17 09:40:37 +01:00
build lib/build: Add some env vars as synthetic build tags (#6709) 2020-06-03 15:00:28 +02:00
config lib/config: Don't cache device map (fixes #6816) (#6817) 2020-07-07 23:44:49 +02:00
connections lib/connections: Correctly fixup port in IPv6 listen URLs (#6786) 2020-06-22 16:47:15 +01:00
db lib/db: Use SipHash to deal with hash collision in GC (#6826) 2020-07-11 09:36:09 +02:00
dialer lib/connections: Try TCP punchthrough (fixes #4259) (#5753) 2020-06-16 09:17:07 +02:00
discover all: Make all error implementations pointer types (#6726) 2020-06-16 09:27:34 +02:00
events lib/api, lib/model: Fixes around event request tracking (#6774) 2020-06-25 21:48:48 +02:00
fs lib/fs: Add support for Windows duplicate extents (#6764) 2020-06-18 22:32:26 +01:00
ignore gui, lib/ignore: Handle editing ignores with error (fixes #5425) (#6757) 2020-06-18 11:04:00 +02:00
locations lib/db: Add Badger backend (fixes #5910) (#6250) 2020-05-29 13:43:02 +02:00
logger all, lib/logger: Refactor SetDebug calls (#6054) 2019-10-04 13:03:34 +02:00
model lib/api, lib/model: Improve folder completion API (fixes #6075) (#6808) 2020-07-03 08:48:37 +02:00
nat lib/connections, lib/nat: Correctly dis-/enable nat (fixes #6552) (#6719) 2020-06-07 20:29:53 +02:00
osutil all: Add copy-on-write filesystem support (fixes #4271) (#6746) 2020-06-18 08:15:47 +02:00
pmp lib/nat: Make service termination faster (#6777) 2020-06-22 09:01:57 +01:00
protocol lib/protocol: Include WeakHash in BlocksHash (#6799) 2020-06-29 09:33:07 +02:00
rand lib/rand: Various minor fixes (#6752) 2020-06-17 10:43:58 +02:00
rc lib/protocol, rc, utils: Add mutex Unlock before panic (#6556) 2020-04-20 14:52:16 +02:00
relay all: Make all error implementations pointer types (#6726) 2020-06-16 09:27:34 +02:00
scanner lib/scanner: Test weak hash consistency (ref #5556) (#6794) 2020-06-25 14:47:35 +02:00
sha256 Add indirection for large version vectors. (#6376) 2020-05-13 14:28:42 +02:00
signature all: Update license url to https (ref #3976) 2017-02-09 08:04:16 +01:00
stats all: Propagate errors from NamespacedKV (#6203) 2019-11-30 13:03:24 +01:00
stun lib: More contextification (#6343) 2020-02-24 21:57:15 +01:00
sync lib/sync: Cleanly fail instead of panic in tests (#6088) 2019-10-16 10:11:11 +02:00
syncthing lib/db: Make database GC a service, stop on Stop() (#6518) 2020-04-12 10:26:57 +02:00
testutils lib/model, lib/testutils: Test closing a connection on folder restart (#5707) 2019-05-18 08:53:59 +02:00
tlsutil lib/rand: Various minor fixes (#6752) 2020-06-17 10:43:58 +02:00
upgrade all: Tweak error creation (#6391) 2020-03-03 22:40:00 +01:00
upnp lib/nat: Make service termination faster (#6777) 2020-06-22 09:01:57 +01:00
ur lib/ur: Track new folder feature usage (#6803) 2020-06-28 20:35:22 +02:00
util lib/ur: Track new folder feature usage (#6803) 2020-06-28 20:35:22 +02:00
versioner lib/versioner: Create versioning directory recursively (fixes #6565) (#6678) 2020-06-23 08:37:29 +02:00
watchaggregator lib: Replace done channel with contexts in and add names to util services (#6166) 2019-11-21 08:41:15 +01:00
weakhash lib/weakhash: Fix speed reporting in benchmark (#6470) 2020-03-29 17:07:25 +02:00