Commit graph

620 commits

Author SHA1 Message Date
Joey Hess
c282c8b492 queue uploads when a new or renamed symlink is handled 2012-11-24 15:38:24 -04:00
Joey Hess
a5111a6d85 Amazon Glacier special remote; 100% working 2012-11-20 16:43:58 -04:00
Joey Hess
8a5eaf8c3f Merge branch 'master' of ssh://git-annex.branchable.com 2012-11-18 13:21:32 -04:00
Joey Hess
dea2780b78 fix build with yesod-form-1.2.0 2012-11-18 13:21:19 -04:00
Joey Hess
b60d5116a9 fix warning 2012-11-18 13:04:35 -04:00
Joey Hess
70f4bed400 language CPP 2012-11-18 13:03:00 -04:00
Joey Hess
fe11b3a940 fix build with shakespeare-js-1.0.0.2
For no apparent reason, this version removes all useful instances of
ToJavaScript, leavind behind only an instance for Aeson.Value. Argh. Pissed
off at this arbitrary breaking change, and seriously considering dropping
this library.
2012-11-18 13:00:35 -04:00
Joey Hess
b0a76592c3 pass Text into julius
May fix
http://git-annex.branchable.com/bugs/3.20121112:_build_error_in_assistant/
2012-11-17 16:19:54 -04:00
Joey Hess
453587d392 UI for enabling existing webdav remotes 2012-11-17 16:10:13 -04:00
Joey Hess
7addb89dc1 webapp: support box.com 2012-11-17 15:30:11 -04:00
Joey Hess
3c039d329c update to dav 0.1, and basic uploading is working! 2012-11-15 13:46:16 -04:00
Joey Hess
e250f6f11f factor out Creds 2012-11-14 19:32:27 -04:00
Joey Hess
98d45cd383 use System.Timeout
I'd forgotten this existed!
2012-11-14 11:53:23 -04:00
Joey Hess
d468e37f46 automatic repolist updating 2012-11-13 17:50:54 -04:00
Joey Hess
c9d58a6590 Fix build of assistant without yesod. 2012-11-13 15:36:34 -04:00
Joey Hess
75dbce69e6 Show error message to user when testing XMPP creds. 2012-11-13 13:21:09 -04:00
Joey Hess
e10137b4da upper-case first char of buddy name 2012-11-12 13:27:30 -04:00
Joey Hess
8fd78f45a2 fix build without XMPP
not sure if I'll keep bothering with this option
2012-11-12 01:48:15 -04:00
Joey Hess
8b22bd8831 add a yes/no confirm for xmpp pairing requests 2012-11-11 22:29:16 -04:00
Joey Hess
522e228aef auto-accept pair requests from JIDs already paired with 2012-11-11 18:16:11 -04:00
Joey Hess
b91f07fe83 split up xmpp and local pairing UIs 2012-11-11 17:41:56 -04:00
Joey Hess
5e44ab177c don't try to transfer data to/from XMPP remotes
Partition syncRemotes into ones needing git sync (ie, non-special remotes),
and ones needing data sync (ie, non-XMPP remotes).
2012-11-11 16:23:16 -04:00
Joey Hess
217eeede43 allow both one push and one receive-pack to run at the same time
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.
2012-11-11 15:42:03 -04:00
Joey Hess
b44e8bb4a5 add 120 second timeout when waiting for XMPP packets 2012-11-11 13:38:28 -04:00
Joey Hess
6a0756d2fb use trustExclude 2012-11-11 00:26:29 -04:00
Joey Hess
3f8ce7a0c5 reword alert 2012-11-10 20:52:46 -04:00
Joey Hess
f3bbe075f2 fix creation of creds directory for xmpp 2012-11-10 20:48:45 -04:00
Joey Hess
b160856297 end of xmpp pairing page encourages adding a shared cloud repository 2012-11-10 20:38:52 -04:00
Joey Hess
75048b43e2 split repository comfiguration page into several widgets 2012-11-10 17:08:43 -04:00
Joey Hess
fd22734392 show when a buddy is already paired 2012-11-10 16:36:21 -04:00
Joey Hess
41085cdc8c set negative XMPP presence priority
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.
2012-11-10 15:33:12 -04:00
Joey Hess
ec186d6369 avoid sending xmpp push notifications when not pushing to any remotes 2012-11-10 14:52:25 -04:00
Joey Hess
957e742dfc full-on git-annex assistant syncing now works over XMPP!
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!
2012-11-10 14:38:50 -04:00
Joey Hess
7a20b3f1d5 more refactoring 2012-11-10 14:01:24 -04:00
Joey Hess
0cf4c3ba9c more nice refactoring 2012-11-10 13:00:13 -04:00
Joey Hess
7ab993ffc9 better data types allowed marvelous refactoring 2012-11-10 12:33:55 -04:00
Joey Hess
81953c2131 separate data type for push stages
This improves type safety.
2012-11-10 12:18:00 -04:00
Joey Hess
8b8964b523 refactor 2012-11-10 02:35:54 -04:00
Joey Hess
235f2ecb91 use a lookup table for speed 2012-11-10 02:18:19 -04:00
Joey Hess
2286032781 on second thought, do allow deferring StartingPush
My reasoning is that StartingPush could be received after another push
starts being received, and it would be better to respond to it afterwards
than not.
2012-11-10 01:41:28 -04:00
Joey Hess
16b2472574 refactor 2012-11-10 01:40:50 -04:00
Joey Hess
c0fab69f85 fix deferring of CanPush, and stop deferring StartingPush 2012-11-10 01:34:03 -04:00
Joey Hess
f57c2ef99e refactor 2012-11-10 00:24:26 -04:00
Joey Hess
0f8bbcc8fd refactor 2012-11-10 00:15:00 -04:00
Joey Hess
5fce2c013d refactor 2012-11-10 00:09:03 -04:00
Joey Hess
341d09adc2 fix exit code propigation 2012-11-10 00:02:55 -04:00
Joey Hess
ee0958e044 refactor 2012-11-09 23:52:51 -04:00
Joey Hess
c00ecfbb83 ensure handles get closed 2012-11-09 23:27:07 -04:00
Joey Hess
3f2467f253 increase chunk size
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.
2012-11-09 23:21:51 -04:00
Joey Hess
4a5e758a5a refactor 2012-11-09 23:17:47 -04:00
Joey Hess
6174c748af refactor 2012-11-09 23:12:54 -04:00
Joey Hess
6acc4fa83f avoid excessive debugging 2012-11-09 17:51:26 -04:00
Joey Hess
62fa648455 xmpp git push is working!
Various final bug fixes, and tweaks that got it working.

Currently pushes a hardcoded ref, which needs to be fixed, etc.
2012-11-09 17:40:59 -04:00
Joey Hess
1deda1db13 fix murderous typo 2012-11-09 17:33:34 -04:00
Joey Hess
47c032a748 run xmpp push actions in separate thread from xmpp client
Took me a while to figure out why the xmpp client was not receiving git xmpp
push messages after a push started.
2012-11-09 16:04:55 -04:00
Joey Hess
232b61e946 fix git push startup 2012-11-09 15:03:16 -04:00
Joey Hess
13547aa659 add canpush xmpp command 2012-11-09 14:34:06 -04:00
Joey Hess
82ccb385e3 use xmpp::user@host for xmpp remotes
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.
2012-11-09 13:35:23 -04:00
Joey Hess
29b72205bd blog for the day 2012-11-08 19:41:36 -04:00
Joey Hess
fb3b9412e4 xmpp push control flow
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.
2012-11-08 16:46:29 -04:00
Joey Hess
08916ef695 rename 2012-11-08 14:06:43 -04:00
Joey Hess
0238e4ba07 hooked up XMPP git push send/receive (but not yet control flow) 2012-11-08 14:04:41 -04:00
Joey Hess
950c62e6fc data types and xml generation/parsing for xmpp push 2012-11-07 16:59:18 -04:00
Joey Hess
dbff2a1d73 better git-annex tag handling
Allow the tag to contain a value. Better extraction of the attribute value.
2012-11-07 15:47:30 -04:00
Joey Hess
b827afba03 rename another 'close' 2012-11-07 14:56:32 -04:00
Joey Hess
b8585a9452 NetManager is only currently used with dbus 2012-11-07 14:56:32 -04:00
Joey Hess
af44b7ec15 built IO side of xmppReceivePack 2012-11-06 16:36:44 -04:00
Joey Hess
f6bcab3f57 cleanup 2012-11-06 16:08:36 -04:00
Joey Hess
dbbd65e035 note 2012-11-06 15:57:18 -04:00
Joey Hess
33d2c05665 implemented IO side of xmppPush; xmpp side still todo 2012-11-06 10:54:12 -04:00
Joey Hess
68a5c98acc xmppgit now actually works
But I could not find a way to implement it using just FD piping; it
has to copy the data.
2012-11-06 10:14:00 -04:00
Joey Hess
cb7523b9e8 add xmppgit command; roughed out xmpp push protocol and design 2012-11-06 00:59:20 -04:00
Joey Hess
8f08aa3f45 better handling of lifting from XMPP -> Assistant 2012-11-05 19:39:08 -04:00
Joey Hess
fdb6a88877 ignore Messages from our client's own jid
shouldn't ever happen, but hey
2012-11-05 17:54:21 -04:00
Joey Hess
da6fb44446 finished XMPP pairing!
This includes keeping track of which buddies we're pairing with, to know
which PairAck are legitimate.
2012-11-05 17:43:17 -04:00
Joey Hess
da65c5c1d1 tweak 2012-11-05 16:00:55 -04:00
Joey Hess
db36b11e28 switch to silent chat messages for XMPP pairing
Along the way, significantly cleaned up Assistant.XMPP, and made XMPP
message decoding more efficient.
2012-11-05 15:40:56 -04:00
Joey Hess
a2c393b4ae fix non-xmpp build 2012-11-05 13:29:53 -04:00
Joey Hess
1178840032 Bugfix: Fix hang in webapp when setting up a ssh remote with an absolute path. 2012-11-05 12:35:11 -04:00
Joey Hess
0b8027e527 webapp: When setting up authorized_keys, use GIT_ANNEX_SHELL_DIRECTORY. 2012-11-05 12:35:05 -04:00
Joey Hess
a6cecfcf33 workaround for Google Talk's insane handling of self-directed presence
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.
2012-11-03 22:52:41 -04:00
Joey Hess
9cff286ea3 avoid repeated pairing alerts 2012-11-03 21:38:27 -04:00
Joey Hess
17e84a8096 switch to directed presence for pair requests
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.
2012-11-03 21:19:59 -04:00
Joey Hess
5108d4b364 update xmpp protocol
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.
2012-11-03 19:18:26 -04:00
Joey Hess
21a287a0b3 rename xmpp creds file
it's not just about push notifications anymore
2012-11-03 18:58:37 -04:00
Joey Hess
42f030c905 XMPP pair requests are now received, and an alert displayed 2012-11-03 17:46:22 -04:00
Joey Hess
b95c255b6d XMPP pairing notifications are now sent
Rest of pairing process still to do.
2012-11-03 16:01:09 -04:00
Joey Hess
cbbfd4d00b bugfix 2012-11-03 14:32:59 -04:00
Joey Hess
9a8d0be866 send a presence query when the buddy list is displayed
This ensures that clients that have not sent presence in a while will show
up in the list.
2012-11-03 14:25:06 -04:00
Joey Hess
a1228e27ed refactor XMPP client 2012-11-03 14:16:17 -04:00
Joey Hess
a6d15938ab fix marking git-annex clients away when they disconnect 2012-11-02 21:36:26 -04:00
Joey Hess
bf17262986 ignore our own client presence 2012-11-02 21:23:58 -04:00
Joey Hess
6a61829e2d add buddy list to pairing UI 2012-11-02 21:13:06 -04:00
Joey Hess
2ae43e71e0 xmpp buddy list tracking 2012-11-02 14:28:36 -04:00
Joey Hess
33dbb19d99 webapp: Ensure that rsync special remotes are enabled using the same name they were originally created using.
It was creating a new special remote with a different name, unless
the stars perfectly aligned and the names matched.
2012-10-31 16:14:52 -04:00
Joey Hess
39e82b1af8 webapp: Generate better git remote names.
Wrote a better git remote name sanitizer. Git blows up on lots of weird
stuff, especially if it starts the remote name, but I managed to get
some common punctuation working.
2012-10-31 15:26:19 -04:00
Joey Hess
c03d9b2310 webapp: Fix renaming of special remotes.
Working around what seems to me to be a git bug. Surely there are valid
setups of real git remotes that don't have fetch set?
2012-10-31 14:39:05 -04:00
Joey Hess
7fe077ec24 webapp: Fix creation of rsync.net repositories. 2012-10-31 13:58:31 -04:00
Joey Hess
f460a2a2a8 make initial commit quietly 2012-10-31 13:42:07 -04:00
Joey Hess
a4c6b30e2c avoid using Blaze directly
New 0.5 changes the api, rather gratuitously, so run away. I can juse use
Hamlet here.
2012-10-31 13:27:56 -04:00