lib/discover: Add instance ID to local discovery (fixes #3278)

A random "instance ID" is generated on each start of the local discovery
service. The instance ID is included in the announcement. When we see a
new instance ID we treat is a new device and respond with an
announcement of our own. Hence devices get to know each other quickly on
restart.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3385
This commit is contained in:
Jakob Borg
2016-07-04 11:16:48 +00:00
committed by Audrius Butkevicius
parent 8d0019595f
commit 9a0e5a7c18
5 changed files with 128 additions and 16 deletions

View File

@@ -9,6 +9,7 @@ option (gogoproto.sizer_all) = false;
option (gogoproto.protosizer_all) = true;
message Announce {
bytes id = 1 [(gogoproto.customname) = "ID"];
repeated string addresses = 2;
bytes id = 1 [(gogoproto.customname) = "ID"];
repeated string addresses = 2;
int64 instance_id = 3 [(gogoproto.customname) = "InstanceID"];
}