aboutsummaryrefslogtreecommitdiff
path: root/doc/design/assistant/xmpp.mdwn
Commit message (Collapse)AuthorAge
* roadmap for next year's workGravatar Joey Hess2013-07-23
|
* TCP over XMPPGravatar Joey Hess2013-07-08
|
* thoughts on encryptionGravatar Joey Hess2013-06-13
|
* XMPP: Send pings and use them to detect when contact with the server is lost.Gravatar Joey Hess2013-05-22
| | | | | | I noticed that when my modem hung up and redialed, my xmpp client was left sending messages into the void. This will also handle any idle disconnection issues.
* todoGravatar Joey Hess2013-05-22
|
* XMPP: Avoid redundant and unncessary pushes. Note that this breaks ↵Gravatar Joey Hess2013-05-21
| | | | compatibility with previous versions of git-annex, which will refuse to accept any XMPP pushes from this version.
* XMPP: Ignore duplicate messages received when pushing.Gravatar Joey Hess2013-05-20
|
* updateGravatar Joey Hess2013-04-30
|
* 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.
* addGravatar Joey Hess2013-04-27
|
* 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.
* xmpp: Re-enable XA flag, since disabling it did not turn out to help with ↵Gravatar Joey Hess2013-03-16
| | | | the problems Google Talk has with not always sending presence messages to clients.
* closeGravatar Joey Hess2013-03-16
|
* assistant: Sync with all git remotes on startup.Gravatar Joey Hess2013-03-08
|
* noteGravatar Joey Hess2013-03-07
|
* assistant: XMPP git pull and push requests are cached and sent when presence ↵Gravatar Joey Hess2013-03-06
| | | | | | | | | | | | | | | of a new client is detected. Noticed that, At startup or network reconnect, git push messages were sent, often before presence info has been gathered, so were not sent to any buddies. To fix this, keep track of which buddies have seen such messages, and when new presence is received from a buddy that has not yet seen it, resend. This is done only for push initiation messages, so very little data needs to be stored.
* todoGravatar Joey Hess2013-03-06
|
* 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.
* clarify todo itemGravatar Joey Hess2013-03-04
|
* some correctionsGravatar Joey Hess2013-01-14
|
* typoGravatar Joey Hess2013-01-14
|
* todo: support pairing with multiple distinct reposGravatar Joey Hess2012-12-13
|
* update todoGravatar Joey Hess2012-11-25
|
* 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.
* update todoGravatar Joey Hess2012-11-10
|
* set negative XMPP presence priorityGravatar Joey Hess2012-11-10
| | | | | | | | This should help prevent git-annex clients receiving messages that were intended for normal clients they're sharing the account with. Changed XMPP protocol use to always send chat messages directed at the specific client, as the negative priority blocks less directed messages.
* add canpush xmpp commandGravatar Joey Hess2012-11-09
|
* 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
|
* data types and xml generation/parsing for xmpp pushGravatar Joey Hess2012-11-07
|
* add xmppgit command; roughed out xmpp push protocol and designGravatar Joey Hess2012-11-06
|
* clean up protocol docsGravatar Joey Hess2012-11-05
|
* 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.
* workaround for Google Talk's insane handling of self-directed presenceGravatar Joey Hess2012-11-03
| | | | | | | | Maybe the spec allows it, but broadcasting self-directed presence info to all buddies is just insane. I had to bring back the IQ messages for self-pairing, while still using directed presence for other pairing. Ugly.
* switch to directed presence for pair requestsGravatar Joey Hess2012-11-03
| | | | | | | | | | | | | | | | | | | | | Testing between Google Talk and prosody, the directed IQ messages were not received. Google Talk probably only relays them between clients using the same account. I first tried even more directed presence, with each client JID being sent a separate presence, but that didn't work on Google Talk, particularly it was ignored when one client sent it to another client using the same account. So, presence directed at the user@host of the client to pair with. Tested working between Google Talk and prosody (in both directions), as well as between two clients with the same account on Google Talk, and two clients with the same account on prosody. Only problem with this form of directed presence is that if I also use it for git pushes, more clients than are interested in a push's data will receive it. So I may need some better approach, or a hybrid between directed IQ and directed presence.
* update xmpp protocolGravatar Joey Hess2012-11-03
| | | | | | | | | Amusingly, I am not really using xmpp ping for pairing. I forgot to put in the ping tag! And when I did, it stopped working, on Google Talk. Seems it handles client to client pings, at least using the same JID, without actually sending them to the end client. My mistake avoided this, and seems to work, so I've left it as-is for now, with just the git-annex tag in an IQ message. Also tested on prosody.
* send git-annex tag in initial presenceGravatar Joey Hess2012-10-28
| | | | Will be used for finding other git-annex clients for pairing
* blog for the dayGravatar Joey Hess2012-10-28
|
* updateGravatar Joey Hess2012-10-27
|
* XEP-0126 is not compatable with my use of presence, remove it from TODOGravatar Joey Hess2012-10-27
|
* updateGravatar Joey Hess2012-10-27
|
* xmpp reconnectionGravatar Joey Hess2012-10-27
| | | | | If it managed to run for 5 minutes, reconnect immediately. Otherwise, wait 5 minutes before reconnecting.
* Merge branch 'master' into xmppGravatar Joey Hess2012-10-25
|\
| * todoGravatar Joey Hess2012-10-25
| |
* | only use one push attributeGravatar Joey Hess2012-10-25
|/ | | | | When pushing to multiple UUIDs, combine them all into a single push attribute.
* add xmpp pageGravatar Joey Hess2012-10-24