syncthing/lib
Antony Male 7ef2743964 lib/events: Introduce per-subscription event IDs (fixes #3335)
Events API consumers rely on being able to detect that events were skipped
by the fact that the event ID has increased by more than 1. This is
documented, and is absolutely necessary when trying to maintain a local
model of Syncthing's state.

With the introduction of LocalChangeDetected, which is not exposed to the
Events API, this contract was broken.

This commit introduces separate concepts of a "Global ID" and a
"Subscription ID". The Global ID of an event is unique across all
subscriptions. The Subscription ID is local to a particular subscription,
and always increments by 1. They are both exposed over the Events API, but
the Subscription ID uses the key "id" for backwards compatibility, and
the "?since=xx" parameter refers to the Subscription ID (making the Global
ID for information only).

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3351
LGTM: calmh
2016-06-27 21:18:58 +00:00
..
auto build: Generate gui.files.go on the fly, remove from repo 2016-03-28 10:03:13 +00:00
beacon Remove unused struct field 2015-10-27 09:55:05 +01:00
config lib/config: Retain slash at end of path after expanding ~ (fixes #2782) 2016-06-26 10:17:20 +00:00
connections lib/connections: Limit rate at which we print warnings about version mismatch 2016-06-09 12:30:35 +00:00
db lib/db: Fix alignment crash on 32 bit platforms 2016-06-26 13:40:51 +00:00
dialer lib/connections: Handle wrapped connection in SetTCPOptions (fixes #3223) 2016-05-31 08:11:57 +00:00
discover gui: Add addresses for disconnected devices (fixes #3340) 2016-06-26 10:47:23 +00:00
events lib/events: Introduce per-subscription event IDs (fixes #3335) 2016-06-27 21:18:58 +00:00
ignore vendor: Update github.com/gobwas/glob (fixes #3174) 2016-05-28 04:43:54 +00:00
logger cmd/syncthing: Extract interfaces for things the API depends on 2016-03-21 19:36:08 +00:00
model lib/model: Decrease max temp filename length (fixes #3338, fixes #3355) 2016-06-27 11:47:40 +00:00
nat lib/nat: Avoid concurrent reset of NAT timer (fixes #3337) 2016-06-26 10:17:12 +00:00
osutil lib/osutil: Return "/" as filesystem root on non-windows (fixes #3321) 2016-06-20 20:25:00 +00:00
pmp vendor: Revert to github.com/jackpal/gateway instead of fork 2016-06-02 20:40:30 +00:00
protocol lib/protocol: Understand older/newer Hello messages (fixes #3287) 2016-06-09 10:50:14 +00:00
rand lib/rand: Break out random functions into separate package 2016-05-26 07:02:56 +00:00
rc cmd/stbench: Add utility to run benchmark tests 2016-03-25 20:52:20 +00:00
relay lib/relay: Correctly get IP from remote addr via proxy (fixes #3223) 2016-05-31 14:42:10 +00:00
scanner lib/model, lib/scanner: Silence vet warnings 2016-06-20 21:00:39 +00:00
signature The PublicKey() method is an addition in Go 1.4 2015-10-27 16:03:14 +01:00
stats lib/model, lib/stats: Keep track of folder's last scan time (ref #3143) 2016-06-02 19:26:52 +00:00
symlinks Fix import paths 2015-09-22 19:38:46 +02:00
sync lib/sync: Skip the timing tests if the host timer is flaky 2016-03-27 10:41:38 +00:00
tlsutil lib/rand: Break out random functions into separate package 2016-05-26 07:02:56 +00:00
upgrade lib/upgrade: Prefer a minor upgrade over a major (fixes #3163) 2016-05-25 14:01:52 +00:00
upnp lib: simplify code 2016-05-18 22:47:11 +00:00
util lib/rand: Break out random functions into separate package 2016-05-26 07:02:56 +00:00
versioner gui: Add addresses for disconnected devices (fixes #3340) 2016-06-26 10:47:23 +00:00