diff options
author | Joey Hess <joeyh@joeyh.name> | 2017-02-03 15:06:17 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2017-02-03 15:06:40 -0400 |
commit | 0951fce8102a1a9c28c8951fae89c4db144eec78 (patch) | |
tree | 283e38921b2ec98b4d28c3a0f960017833eb7cd0 | |
parent | 71a21addf2ee7c854b22eef7e2255102853948c0 (diff) |
wormhole pairing appid flag day 2021-12-31
Wormhole pairing will start to provide an appid to wormhole on 2021-12-31.
An appid can't be provided now because Debian stable is going to ship a
older version of git-annex that does not provide an appid. Assumption is
that by 2021-12-31, this version of git-annex will be shipped in a Debian
stable release. If that turns out to not be the case, this change will need
to be cherry-picked into the git-annex in Debian stable, or its wormhole
pairing will break.
This commit was sponsored by Thomas Hochstein on Patreon.
-rw-r--r-- | CHANGELOG | 7 | ||||
-rw-r--r-- | Command/P2P.hs | 27 | ||||
-rw-r--r-- | Utility/MagicWormhole.hs | 6 | ||||
-rw-r--r-- | doc/bugs/tor_setup_needs_a_unique_magic-wormhole_appid.mdwn | 2 |
4 files changed, 39 insertions, 3 deletions
@@ -20,6 +20,13 @@ git-annex (6.20170102) UNRELEASED; urgency=medium their contents in memory. * unused: Improved memory use significantly when there are a lot of differences between branches. + * Wormhole pairing will start to provide an appid to wormhole on + 2021-12-31. An appid can't be provided now because Debian stable is going + to ship a older version of git-annex that does not provide an appid. + Assumption is that by 2021-12-31, this version of git-annex will be + shipped in a Debian stable release. If that turns out to not be the + case, this change will need to be cherry-picked into the git-annex in + Debian stable, or its wormhole pairing will break. -- Joey Hess <id@joeyh.name> Fri, 06 Jan 2017 15:22:06 -0400 diff --git a/Command/P2P.hs b/Command/P2P.hs index b70e3e2b7..505286a3d 100644 --- a/Command/P2P.hs +++ b/Command/P2P.hs @@ -26,6 +26,7 @@ import qualified Utility.MagicWormhole as Wormhole import Control.Concurrent.Async import qualified Data.Text as T +import Data.Time.Clock.POSIX cmd :: Command cmd = command "p2p" SectionSetup @@ -224,10 +225,32 @@ wormholePairing remotename ouraddrs ui = do observer <- liftIO Wormhole.mkCodeObserver producer <- liftIO Wormhole.mkCodeProducer void $ liftIO $ async $ ui observer producer + -- Provide an appid to magic wormhole, to avoid using + -- the same channels that other wormhole users use. + -- + -- Since a version of git-annex that did not provide an + -- appid is shipping in Debian 9, and having one side + -- provide an appid while the other does not will make + -- wormhole fail, this is deferred until 2021-12-31. + -- After that point, all git-annex's should have been + -- upgraded to include this code, and they will start + -- providing an appid. + -- + -- This assumes reasonably good client clocks. If the clock + -- is completely wrong, it won't use the appid at that + -- point, and pairing will fail. On 2021-12-31, minor clock + -- skew may also cause transient problems. + -- + -- After 2021-12-31, this can be changed to simply + -- always provide the appid. + now <- liftIO getPOSIXTime + let wormholeparams = if now < 1640950000 + then [] + else Wormhole.appId "git-annex.branchable.com/p2p-setup" (sendres, recvres) <- liftIO $ - Wormhole.sendFile sendf observer [] + Wormhole.sendFile sendf observer wormholeparams `concurrently` - Wormhole.receiveFile recvf producer [] + Wormhole.receiveFile recvf producer wormholeparams liftIO $ nukeFile sendf if sendres /= True then return SendFailed diff --git a/Utility/MagicWormhole.hs b/Utility/MagicWormhole.hs index 6d2df81e2..f9e694e28 100644 --- a/Utility/MagicWormhole.hs +++ b/Utility/MagicWormhole.hs @@ -18,6 +18,7 @@ module Utility.MagicWormhole ( waitCode, sendCode, WormHoleParams, + appId, sendFile, receiveFile, isInstalled, @@ -87,6 +88,11 @@ sendCode (CodeProducer p) = putMVar p type WormHoleParams = [CommandParam] +-- | An appid should be provided when using wormhole in an app, to avoid +-- using the same channel space as ad-hoc wormhole users. +appId :: String -> WormHoleParams +appId s = [Param "--appid", Param s] + -- | Sends a file. Once the send is underway, and the Code has been -- generated, it will be sent to the CodeObserver. (This may not happen, -- eg if there's a network problem). diff --git a/doc/bugs/tor_setup_needs_a_unique_magic-wormhole_appid.mdwn b/doc/bugs/tor_setup_needs_a_unique_magic-wormhole_appid.mdwn index 054447ead..962466392 100644 --- a/doc/bugs/tor_setup_needs_a_unique_magic-wormhole_appid.mdwn +++ b/doc/bugs/tor_setup_needs_a_unique_magic-wormhole_appid.mdwn @@ -21,4 +21,4 @@ I haven't run git-annex's onion setup feature directly, but I'm reading through It looks pretty amazing! Looking forward to using it in a Dropbox-like synchronization context soon. - +> I've gone with the 2021-12-31 flag day approach. [[done]] --[[Joey]] |