summaryrefslogtreecommitdiff
path: root/Assistant/XMPP
Commit message (Collapse)AuthorAge
* clean up from windows portingGravatar Joey Hess2013-05-11
|
* fix for AndroidGravatar Joey Hess2013-05-09
|
* fix use of wrong shebang when android is installing git-annex-shell wrapper ↵Gravatar Joey Hess2013-05-06
| | | | on server
* add uuid to all xmpp messagesGravatar Joey Hess2013-04-30
| | | | | | | | | | | | | | | | | | (Except for the actual streaming of receive-pack through XMPP, which can only run once we've gotten an appropriate uuid in a push initiation message.) Pushes are now only initiated when the initiation message comes from a known uuid. This allows multiple distinct repositories to use the same xmpp address. Note: This probably breaks initial push after xmpp pairing, because at that point we may not know about the paired uuid, and so reject the push from it. It won't break in simple cases, because the annex-uuid of the remote is checked. However, when there are multiple clients behind a single xmpp address, only uuid of the first is recorded in annex-uuid, and so any pushes from the others will be rejected (unless the first remote pushes their uuids to us beforehand.
* rename moduleGravatar Joey Hess2013-04-23
|
* expose Control.Monad.joinGravatar Joey Hess2013-04-22
| | | | | I think I've been looking for that function for some time. Ie, I remember wanting to collapse Just Nothing to Nothing.
* assistant: Added sequence numbers to XMPP git push packets. (Not yet used.)Gravatar Joey Hess2013-04-10
| | | | | | | For backwards compatability, "" is treated as "0" sequence number. --debug will show xmpp sequence numbers now, but they are not otherwise used.
* syncNewRemote is not only used for new remotes; rename to syncRemoteGravatar Joey Hess2013-04-08
|
* fix build with xmpp and w/o webappGravatar Joey Hess2013-03-24
|
* add globallyAvailable to remotesGravatar Joey Hess2013-03-15
|
* webapp: Display an alert when there are XMPP remotes, and a cloud transfer ↵Gravatar Joey Hess2013-03-15
| | | | repository needs to be configured.
* add alerts while performing xmpp git push/pullGravatar Joey Hess2013-03-07
|
* assistant: Fix syncing after XMPP pairing.Gravatar Joey Hess2013-03-06
| | | | | A missing uuid broke this, and also caused a UI glitch in the webapp's remote list.
* tag xmpp pushes with jidGravatar Joey Hess2013-03-06
| | | | | | | | | | This fixes the issue mentioned in the last commit. Turns out just collecting UUID of clients behind a XMPP remote is insufficient (although I should probably still do it for other reasons), because a single remote repo might be connected via both XMPP and local pairing. So a way is needed to know when a push was received from any client using a given XMPP remote over XMPP, as opposed to via ssh.
* assistant: Get back in sync with XMPP remotes after network reconnection, ↵Gravatar Joey Hess2013-03-06
| | | | | | | | | | | | | | | | | | | | | and on startup. Make manualPull send push requests over XMPP. When reconnecting with remotes, those that are XMPP remotes cannot immediately be pulled from and scanned, so instead maintain a set of (probably) desynced remotes, and put XMPP remotes on it. (This set could be used in other ways later, if we can detect we're out of sync with other types of remotes.) The merger handles detecting when a XMPP push is received from a desynced remote, and triggers a scan then, if they have in fact diverged. This has one known bug: A single XMPP remote can have multiple clients behind it. When this happens, only the UUID of one client is recorded as the UUID of the XMPP remote. Pushes from the other XMPP clients will not trigger a scan. If the client whose UUID is expected responds to the push request, it'll work, but when that client is offline, we're SOL.
* deal with Android's nonstandard shell locationGravatar Joey Hess2013-02-13
| | | | | | This is so gratutious and pointless. It's a shame that everything we learned about Unix portability and the importance of standards has been thrown out the window by these guys.
* factor out CredsGravatar Joey Hess2012-11-14
|
* use System.TimeoutGravatar Joey Hess2012-11-14
| | | | I'd forgotten this existed!
* upper-case first char of buddy nameGravatar Joey Hess2012-11-12
|
* don't try to transfer data to/from XMPP remotesGravatar Joey Hess2012-11-11
| | | | | Partition syncRemotes into ones needing git sync (ie, non-special remotes), and ones needing data sync (ie, non-XMPP remotes).
* allow both one push and one receive-pack to run at the same timeGravatar Joey Hess2012-11-11
| | | | | | Noticed that when pairing, sometimes both sides start to push, and the other side sends a PushRequest, and the two deadlock, neither doing anything. (Timeout eventually breaks this.) So, let both run at the same time.
* add 120 second timeout when waiting for XMPP packetsGravatar Joey Hess2012-11-11
|
* fix creation of creds directory for xmppGravatar Joey Hess2012-11-10
|
* show when a buddy is already pairedGravatar Joey Hess2012-11-10
|
* full-on git-annex assistant syncing now works over XMPP!Gravatar Joey Hess2012-11-10
| | | | | | | | | | I decided to use the fallback push mode from the beginning for XMPP, since while it uses some ugly branches, it avoids the possibility of a normal push failing, and needing to pull and re-push. Due to the overhead of XMPP, and the difficulty of building such a chain of actions due to the async implementation, this seemed reasonable. It seems to work great!
* separate data type for push stagesGravatar Joey Hess2012-11-10
| | | | This improves type safety.
* refactorGravatar Joey Hess2012-11-10
|
* refactorGravatar Joey Hess2012-11-10
|
* refactorGravatar Joey Hess2012-11-10
|
* fix exit code propigationGravatar Joey Hess2012-11-10
|
* refactorGravatar Joey Hess2012-11-09
|
* ensure handles get closedGravatar Joey Hess2012-11-09
|
* increase chunk sizeGravatar Joey Hess2012-11-09
| | | | | | XMPP has no defined message size limits, but some servers will have ad-hoc limits. However, 4k seems safe, even after the additional bloat of base64. That should not exceed 8k.
* refactorGravatar Joey Hess2012-11-09
|
* refactorGravatar Joey Hess2012-11-09
|
* xmpp git push is working!Gravatar Joey Hess2012-11-09
| | | | | | Various final bug fixes, and tweaks that got it working. Currently pushes a hardcoded ref, which needs to be fixed, etc.
* run xmpp push actions in separate thread from xmpp clientGravatar Joey Hess2012-11-09
| | | | | Took me a while to figure out why the xmpp client was not receiving git xmpp push messages after a push started.
* fix git push startupGravatar Joey Hess2012-11-09
|
* add canpush xmpp commandGravatar Joey Hess2012-11-09
|
* use xmpp::user@host for xmpp remotesGravatar Joey Hess2012-11-09
| | | | | | Inject the required git-remote-xmpp into PATH when running xmpp git push. Rest of the time it will not be in PATH, and git won't be able to talk to xmpp remotes.
* xmpp push control flowGravatar Joey Hess2012-11-08
| | | | | | | | | It might even work, although nothing yet triggers XMPP pushes. Also added a set of deferred push messages. Only one push can run at a time, and unrelated push messages get deferred. The set will never grow very large, because it only puts two types of messages in there, that can only vary in the client doing the push.
* hooked up XMPP git push send/receive (but not yet control flow)Gravatar Joey Hess2012-11-08
|
* built IO side of xmppReceivePackGravatar Joey Hess2012-11-06
|
* cleanupGravatar Joey Hess2012-11-06
|
* noteGravatar Joey Hess2012-11-06
|
* implemented IO side of xmppPush; xmpp side still todoGravatar Joey Hess2012-11-06
|
* xmppgit now actually worksGravatar Joey Hess2012-11-06
| | | | | But I could not find a way to implement it using just FD piping; it has to copy the data.
* add xmppgit command; roughed out xmpp push protocol and designGravatar Joey Hess2012-11-06
|
* finished XMPP pairing!Gravatar Joey Hess2012-11-05
| | | | | This includes keeping track of which buddies we're pairing with, to know which PairAck are legitimate.
* switch to silent chat messages for XMPP pairingGravatar Joey Hess2012-11-05
| | | | | Along the way, significantly cleaned up Assistant.XMPP, and made XMPP message decoding more efficient.