From: Joey Hess Date: Mon, 11 Oct 2021 19:53:49 +0000 (-0400) Subject: negotiate P2P protocol version for tor remotes X-Git-Tag: archive/raspbian/10.20250416-2+rpi1~1^2~79^2~156 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=17a0fa3dbcafc2238bc514c88b33837c2a4d3d97;p=git-annex.git negotiate P2P protocol version for tor remotes This negotiation is not supported by versions of git-annex older than 6.20180312. Well, maybe really 6.20180227 or so, but using that in the changelog simplifies things since it was the version for the other changes as well. See commit c81768d425725f868ddf23333d49eed0f3fda011 for the back story. As well as allowing for future protocol improvements, this will result in negoatiating protocol version 1, which is an improvement over default version 0. In fact, it looks like no supported version of git-annex will use protocol version 0, since version 1 was introduced in 6.20180227. Still, removing the code for version 0 seems unncessary. See commit 31e1adc005e8181c5190a9f39a3f148e10f4d364. Sponsored-by: Brett Eisenberg on Patreon. --- diff --git a/CHANGELOG b/CHANGELOG index 0d8ce53f3b..c9202beb2a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,6 +4,9 @@ git-annex (8.20211012) UNRELEASED; urgency=medium git-annex older than 6.20180312. * git-annex-shell: Removed several commands that were only needed to support git-annex versions older than 6.20180312. + * Negotiate P2P protocol version with tor remotes, allowing + use of protocol version 1. This negotiation is not supported + by versions of git-annex older than 6.20180312. -- Joey Hess Mon, 11 Oct 2021 14:09:13 -0400 diff --git a/Remote/P2P.hs b/Remote/P2P.hs index 2c6056a91c..15c2ea1f3e 100644 --- a/Remote/P2P.hs +++ b/Remote/P2P.hs @@ -148,14 +148,7 @@ openConnection u addr = do authtoken <- fromMaybe nullAuthToken <$> loadP2PRemoteAuthToken addr let proto = P2P.auth myuuid authtoken $ - -- Before 6.20180312, the protocol server - -- had a bug that made negotiating the - -- protocol version terminate the - -- connection. So, this must stay disabled - -- until the old version is not in use - -- anywhere. - --P2P.negotiateProtocolVersion P2P.maxProtocolVersion - return () + P2P.negotiateProtocolVersion P2P.maxProtocolVersion runst <- liftIO $ mkRunState Client res <- liftIO $ runNetProto runst conn proto case res of diff --git a/doc/todo/p2p_protocol_flag_days.mdwn b/doc/todo/p2p_protocol_flag_days.mdwn index 967295b77a..0b0abcd9ef 100644 --- a/doc/todo/p2p_protocol_flag_days.mdwn +++ b/doc/todo/p2p_protocol_flag_days.mdwn @@ -10,6 +10,8 @@ historical bug, the version is not currently negotiated when using the protocol over tor. At some point in the future, when all peers can be assumed to be upgraded, this should be changed. +> [[done]] --[[Joey]] + ## git-annex-shell fallbacks When using git-annex-shell p2pio, git-annex assumes that if it exits 1, @@ -21,6 +23,6 @@ can be assumed to be upgraded to 6.20180312, this fallback can be removed. It will allows removing a lot of code from git-annex-shell and a lot of fallback code from Remote.Git. -> This part is done now. --[[Joey]] +> [[done]] --[[Joey]] [[!tag confirmed]]