summaryrefslogtreecommitdiff
path: root/P2P/Annex.hs
Commit message (Collapse)AuthorAge
* update progress logs in remotedaemon send/receiveGravatar Joey Hess2016-12-08
|
* fix memory leakGravatar Joey Hess2016-12-08
| | | | | | | I'm unsure why this fixed it, but it did. Seems to suggest that the memory leak is not due to a bug in my code, but that ghc didn't manage to take full advantage of laziness, or was failing to gc something it could have.
* convert P2P runners from Maybe to Either StringGravatar Joey Hess2016-12-08
| | | | | | So we get some useful error messages when things fail. This commit was sponsored by Peter Hogg on Patreon.
* fix math error that caused resumes to always failGravatar Joey Hess2016-12-07
|
* ReadWriteMode not AppendModeGravatar Joey Hess2016-12-07
| | | | AppendMode does not allow seeking..
* open file for append, not write, so resuming worksGravatar Joey Hess2016-12-07
| | | | | WriteMode zeros any existing content, so the seek filled with zeros, and verification failed after download.
* refactorGravatar Joey Hess2016-12-06
|
* added StoreContentToGravatar Joey Hess2016-12-06
| | | | | | | | This is needed in addition to StoreContent, because retrieveKeyFile can be used to retrieve to different destination files, not only the tmp file for a key. This commit was sponsored by Ole-Morten Duesund on Patreon.
* plumb assicated files through P2P protocol for updating transfer logsGravatar Joey Hess2016-12-02
| | | | | | | | | | ReadContent can't update the log, since it reads lazily. This part of the P2P monad will need to be rethought. Associated files are heavily sanitized when received from a peer; they could be an exploit vector. This commit was sponsored by Jochen Bartl on Patreon.
* plumb peer uuid through to runLocalGravatar Joey Hess2016-12-02
| | | | This will allow updating transfer logs with the uuid.
* initial implementation of P2P.Annex runnerGravatar Joey Hess2016-12-02
| | | | | | | | | | | | | | | Untested, and it does not yet update transfer logs. Verifying transferred content is modeled on git-annex-shell recvkey. In a direct mode or annex.thin repository, content can change while it's being transferred. So, verification is always done, even if annex.verify would normally prevent it. Note that a WORM or URL key could change in a way the verification doesn't catch. That can happen in git-annex-shell recvkey too. We don't worry about it, because those key backends don't guarantee preservation of data. (Which is to say, I worried about it, and then convinced myself again it was ok.)
* make remote-daemon able to send and receive objects over torGravatar Joey Hess2016-12-02
Each worker thread needs to run in the Annex monad, but the remote-daemon's liftAnnex can only run 1 action at a time. Used Annex.Concurrent to deal with that. P2P.Annex is incomplete as of yet.