syncthing/lib
Jakob Borg 4f7a77597e
lib/db: Slightly improve indirection (ref #6372) (#6373)
I was working on indirecting version vectors, and that resulted in some
refactoring and improving the existing block indirection stuff. We may
or may not end up doing the version vector indirection, but I think
these changes are reasonable anyhow and will simplify the diff
significantly if we do go there. The main points are:

- A bunch of renaming to make the indirection and GC not about "blocks"
  but about "indirection".

- Adding a cutoff so that we don't actually indirect for small block
  lists. This gets us better performance when handling small files as it
  cuts out the indirection for quite small loss in space efficiency.

- Being paranoid and always recalculating the hash on put. This costs
  some CPU, but the consequences if a buggy or malicious implementation
  silently substituted the block list by lying about the hash would be bad.
2020-02-27 11:19:21 +01:00
..
api lib: More contextification (#6343) 2020-02-24 21:57:15 +01:00
auto build: Let "go generate" create assets 2018-06-26 10:29:36 +02:00
beacon lib: Replace done channel with contexts in and add names to util services (#6166) 2019-11-21 08:41:15 +01:00
build cmd/*, lib/build: Set correct LongVersion (fixes #5993) (#5997) 2019-10-07 13:30:25 +02:00
config lib/config, gui: Set unix socket permissions for GUI listen address (fixes #5979) (#6310) 2020-02-18 08:52:12 +01:00
connections lib/connections: Refactor status for testing (ref #6361) (#6362) 2020-02-25 21:18:31 +01:00
db lib/db: Slightly improve indirection (ref #6372) (#6373) 2020-02-27 11:19:21 +01:00
dialer lib/dialer: Preserve nilness in error handling (fixes #6368) (#6369) 2020-02-26 13:16:18 +01:00
discover lib: Faster termination on exit (ref #6319) (#6329) 2020-02-13 14:43:00 +01:00
events lib/events, lib/model: Unflake test and prevent deadlock on event unsubscribing (#6261) 2020-01-11 08:14:05 +01:00
fs lib/fs, lib/model: Rewrite RecvOnly tests (#6318) 2020-02-12 07:47:05 +01:00
ignore lib/ignore: Don't crash on empty patterns (fixes #6300) (#6301) 2020-01-30 09:58:44 +01:00
locations all: Remove potentially problematic errors from panics (fixes #5839) (#5912) 2019-07-31 10:53:35 +02:00
logger all, lib/logger: Refactor SetDebug calls (#6054) 2019-10-04 13:03:34 +02:00
model lib: More contextification (#6343) 2020-02-24 21:57:15 +01:00
nat lib: More contextification (#6343) 2020-02-24 21:57:15 +01:00
osutil lib/dialer: Preserve nilness in error handling (fixes #6368) (#6369) 2020-02-26 13:16:18 +01:00
pmp lib: More contextification (#6343) 2020-02-24 21:57:15 +01:00
protocol lib: Modify FileInfos consistently (ref #6321) (#6349) 2020-02-19 16:58:09 +01:00
rand lib/connections: Add QUIC protocol support (fixes #5377) (#5737) 2019-05-29 09:56:40 +02:00
rc all: Use context in lib/dialer (#6177) 2019-11-26 07:39:51 +00:00
relay lib: More contextification (#6343) 2020-02-24 21:57:15 +01:00
scanner lib/db: Deduplicate block lists in database (fixes #5898) (#6283) 2020-01-24 08:35:44 +01:00
sha256 all: Remove dead code, fix lost msgLen checks (#6129) 2019-11-06 07:09:58 +01: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: More contextification (#6343) 2020-02-24 21:57:15 +01:00
testutils lib/model, lib/testutils: Test closing a connection on folder restart (#5707) 2019-05-18 08:53:59 +02:00
tlsutil lib: Wrap errors with errors.Wrap instead of fmt.Errorf (#6181) 2019-11-23 15:20:54 +00:00
upgrade lib/upgrade: Let Mac load .zip archives (#6230) 2019-12-16 07:21:18 +01:00
upnp lib: More contextification (#6343) 2020-02-24 21:57:15 +01:00
ur lib: More contextification (#6343) 2020-02-24 21:57:15 +01:00
util lib: More contextification (#6343) 2020-02-24 21:57:15 +01:00
versioner lib/versioner: Reduce surface area (#6186) 2019-11-26 07:39:31 +00: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/scanner: Use standard adler32 when we don't need rolling (#5556) 2019-02-25 13:29:31 +04:00