finish P2P protocol proxying
CONNECT is not supported by git-annex-shell p2pstdio, but for proxying to tor-annex remotes, it will be supported, and will make a git pull/push to a proxied remote work the same with that as it does over ssh, eg it accesses the proxy's git repo not the proxied remote's git repo. The p2p protocol docs say that NOTIFYCHANGES is not always supported, and it looked annoying to implement it for this, and it also seems pretty useless, so make it be a protocol error. git-annex remotedaemon will already be getting change notifications from the proxy's git repo, so there's no need to get additional redundant change notifications for proxied remotes that would be for changes to the same git repo.
This commit is contained in:
parent
f98605bce7
commit
96853cd833
3 changed files with 8 additions and 5 deletions
|
@ -119,8 +119,11 @@ proxy proxydone servermode clientside remoteside othermessage protoerrhandler =
|
||||||
-- not the remote.
|
-- not the remote.
|
||||||
CONNECT service ->
|
CONNECT service ->
|
||||||
servermodechecker (checkCONNECTServerMode service) $
|
servermodechecker (checkCONNECTServerMode service) $
|
||||||
giveup "TODO CONNECT"
|
-- P2P protocol does not continue after
|
||||||
NOTIFYCHANGE -> giveup "TODO NOTIFYCHANGE"
|
-- relaying from git.
|
||||||
|
protoerrhandler (\() -> proxydone) $
|
||||||
|
client $ net $ relayService service
|
||||||
|
NOTIFYCHANGE -> protoerr
|
||||||
-- Messages that the client should only send after one of
|
-- Messages that the client should only send after one of
|
||||||
-- the messages above.
|
-- the messages above.
|
||||||
SUCCESS -> protoerr
|
SUCCESS -> protoerr
|
||||||
|
|
|
@ -192,6 +192,8 @@ its exit code.
|
||||||
|
|
||||||
CONNECTDONE ExitCode
|
CONNECTDONE ExitCode
|
||||||
|
|
||||||
|
After that, the server closes the connection.
|
||||||
|
|
||||||
## Change notification
|
## Change notification
|
||||||
|
|
||||||
The client can request to be notified when a ref in
|
The client can request to be notified when a ref in
|
||||||
|
|
|
@ -36,9 +36,7 @@ For June's work on [[design/passthrough_proxy]], implementation plan:
|
||||||
|
|
||||||
2. Remote instantiation for proxies. (done)
|
2. Remote instantiation for proxies. (done)
|
||||||
|
|
||||||
3. Implement git-annex-shell proxying for CONNECT and NOTIFYCHANGES.
|
3. Implement git-annex-shell proxying to git remotes. (done)
|
||||||
(For completeness, they will only be used when using tor-annex
|
|
||||||
to access a proxy.)
|
|
||||||
|
|
||||||
3. Proxy should update location tracking information for proxied remotes,
|
3. Proxy should update location tracking information for proxied remotes,
|
||||||
so it is available to other users who sync with it.
|
so it is available to other users who sync with it.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue