summaryrefslogtreecommitdiff
path: root/Assistant/XMPP.hs
Commit message (Collapse)AuthorAge
* remove Read instance for RefGravatar Joey Hess2014-02-19
| | | | | | | | Removed instance, got it all to build using fromRef. (With a few things that really need to show something using a ref for debugging stubbed out.) Then added back Read instance, and made Logs.View use it for serialization. This changes the view log format.
* allow to build when sandi is installed (don't use it yet)Gravatar Joey Hess2013-11-11
|
* add status tag to all presence messagesGravatar Joey Hess2013-07-25
| | | | Necessary for push messages to not override the previously sent tag.
* Add status message to XMPP presence tag, to identify to others that the ↵Gravatar Joey Hess2013-07-23
| | | | | | | | client is a git-annex client. I only added this to the presense messages that are really intended for presence. The ones used for tunneling git etc don't have the tag, because that would waste bandwidth.
* 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.
* 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.
* 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.
* avoid warningGravatar Joey Hess2013-04-13
|
* 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.
* remove xaGravatar Joey Hess2013-03-07
| | | | | | I have a theory that some google xmpp servers don't send prsense for xa clients, while others do. Seeing some weird lack of presence messages sometimes there.
* 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.
* 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!
* more refactoringGravatar Joey Hess2012-11-10
|
* more nice refactoringGravatar Joey Hess2012-11-10
|
* better data types allowed marvelous refactoringGravatar Joey Hess2012-11-10
|
* separate data type for push stagesGravatar Joey Hess2012-11-10
| | | | This improves type safety.
* refactorGravatar Joey Hess2012-11-10
|
* use a lookup table for speedGravatar Joey Hess2012-11-10
|
* fix murderous typoGravatar Joey Hess2012-11-09
|
* add canpush xmpp commandGravatar Joey Hess2012-11-09
|
* 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
|
* better git-annex tag handlingGravatar Joey Hess2012-11-07
| | | | Allow the tag to contain a value. Better extraction of the attribute value.
* 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.
* avoid repeated pairing alertsGravatar Joey Hess2012-11-03
|
* 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.
* XMPP pair requests are now received, and an alert displayedGravatar Joey Hess2012-11-03
|
* XMPP pairing notifications are now sentGravatar Joey Hess2012-11-03
| | | | Rest of pairing process still to do.
* send a presence query when the buddy list is displayedGravatar Joey Hess2012-11-03
| | | | | This ensures that clients that have not sent presence in a while will show up in the list.
* refactor XMPP clientGravatar Joey Hess2012-11-03
|
* xmpp buddy list trackingGravatar Joey Hess2012-11-02
|
* where indentationGravatar Joey Hess2012-10-31
|
* send git-annex tag in initial presenceGravatar Joey Hess2012-10-28
| | | | Will be used for finding other git-annex clients for pairing
* reconnect XMPP when NetWatcher notices a changeGravatar Joey Hess2012-10-27
|
* gnutls segfault fixedGravatar Joey Hess2012-10-26
| | | | | | | | Adjust build deps to ensure that only a fixed version of the library will be used. Also, removed the bound thread stuff, which I now think was (probably) a red herring.
* split out xmpp utilitiesGravatar Joey Hess2012-10-26