{"action":"created","issue":{"url":"https://api.github.com/repos/syncthing/syncthing/issues/1995","labels_url":"https://api.github.com/repos/syncthing/syncthing/issues/1995/labels{/name}","comments_url":"https://api.github.com/repos/syncthing/syncthing/issues/1995/comments","events_url":"https://api.github.com/repos/syncthing/syncthing/issues/1995/events","html_url":"https://github.com/syncthing/syncthing/pull/1995","id":90514749,"number":1995,"title":"Relay support (fixes #1364)","user":{"login":"AudriusButkevicius","id":1144861,"avatar_url":"https://avatars.githubusercontent.com/u/1144861?v=3","gravatar_id":"","url":"https://api.github.com/users/AudriusButkevicius","html_url":"https://github.com/AudriusButkevicius","followers_url":"https://api.github.com/users/AudriusButkevicius/followers","following_url":"https://api.github.com/users/AudriusButkevicius/following{/other_user}","gists_url":"https://api.github.com/users/AudriusButkevicius/gists{/gist_id}","starred_url":"https://api.github.com/users/AudriusButkevicius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AudriusButkevicius/subscriptions","organizations_url":"https://api.github.com/users/AudriusButkevicius/orgs","repos_url":"https://api.github.com/users/AudriusButkevicius/repos","events_url":"https://api.github.com/users/AudriusButkevicius/events{/privacy}","received_events_url":"https://api.github.com/users/AudriusButkevicius/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/syncthing/syncthing/labels/enhancement","name":"enhancement","color":"009800"},{"url":"https://api.github.com/repos/syncthing/syncthing/labels/pr-refactor","name":"pr-refactor","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":53,"created_at":"2015-06-23T23:21:52Z","updated_at":"2015-07-25T09:23:49Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/syncthing/syncthing/pulls/1995","html_url":"https://github.com/syncthing/syncthing/pull/1995","diff_url":"https://github.com/syncthing/syncthing/pull/1995.diff","patch_url":"https://github.com/syncthing/syncthing/pull/1995.patch"},"body":"The first changeset does:\r\n\r\n1. Change listen addresses to URIs everywhere\r\n2. Break out connectionSvc to support listeners and dialers based on schema (not necessary, but nice to have)\r\n3. Add relay announcement and lookups to discovery service\r\n\r\nThings left to do:\r\n1. Add a subservice to connectionSvc for dealing with relay addresses\r\n2. Keep dialing non-relay addresses, and disconnect existing relay connections if we've managed to get a direct connection.\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/syncthing/syncthing/issues/comments/124825659","html_url":"https://github.com/syncthing/syncthing/pull/1995#issuecomment-124825659","issue_url":"https://api.github.com/repos/syncthing/syncthing/issues/1995","id":124825659,"user":{"login":"calmh","id":125426,"avatar_url":"https://avatars.githubusercontent.com/u/125426?v=3","gravatar_id":"","url":"https://api.github.com/users/calmh","html_url":"https://github.com/calmh","followers_url":"https://api.github.com/users/calmh/followers","following_url":"https://api.github.com/users/calmh/following{/other_user}","gists_url":"https://api.github.com/users/calmh/gists{/gist_id}","starred_url":"https://api.github.com/users/calmh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calmh/subscriptions","organizations_url":"https://api.github.com/users/calmh/orgs","repos_url":"https://api.github.com/users/calmh/repos","events_url":"https://api.github.com/users/calmh/events{/privacy}","received_events_url":"https://api.github.com/users/calmh/received_events","type":"User","site_admin":false},"created_at":"2015-07-25T09:23:49Z","updated_at":"2015-07-25T09:23:49Z","body":"> They are advertised via local discovery too. Is there a scenario for a way around corporate fw here?\r\n\r\nI doubt it... If we can see local announcement we should be able to connect directly as well.\r\n\r\n> I don't understand the 10m point. I though we connect immdeiately?\r\n\r\nWe do. But we do it before global discovery has started, so the connect attempt basically sees \"dynamic, no addresses found, no relays found\" and fails to connect. But it sets the last attempt time, so we don't retry relays (that we might find in 10 seconds or so when global discovery is up) until relayReconnectTime (10 minutes) later."}}