summaryrefslogtreecommitdiff
path: root/Assistant
Commit message (Collapse)AuthorAge
* (re)start XMPP when it's configured in the webappGravatar Joey Hess2012-10-27
|
* reconnect XMPP when NetWatcher notices a changeGravatar 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.
* 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.
* Merge branch 'master' into xmppGravatar Joey Hess2012-10-26
|\ | | | | | | | | Conflicts: Assistant/Threads/NetWatcher.hs
| * NetWatcher: When dbus connection is lost, try to reconnect.Gravatar Joey Hess2012-10-26
| | | | | | | | | | | | | | | | MountWatcher can't do this, because it uses the session dbus, and won't have access to the new DBUS_SESSION_BUS_ADDRESS if a new session is started. Bumped dbus library version, FD leak in it is fixed.
* | split out xmpp utilitiesGravatar Joey Hess2012-10-26
| |
* | run xmpp test in bound threadGravatar Joey Hess2012-10-26
| |
* | XMPP configuration formGravatar Joey Hess2012-10-26
| | | | | | | | | | | | Currently relies on SRV being set, or the JID's hostname being the server hostname and the port being default. Future work: Allow manual configuration of user name, hostname, and port.
* | SRV record constructionGravatar Joey Hess2012-10-26
| |
* | hook up SRV lookups for XMPPGravatar Joey Hess2012-10-26
| |
* | Merge branch 'master' into xmppGravatar Joey Hess2012-10-26
|\| | | | | | | | | | | Conflicts: Assistant/Threads/MountWatcher.hs Assistant/Threads/NetWatcher.hs
| * improved dbus error handlingGravatar Joey Hess2012-10-26
| | | | | | | | | | | | | | Now when the dbus connection is dropped, it'll fall back to polling. I could make it try to reconnect, but there's a FD leak in the dbus library, so not yet.
| * Use USER and HOME environment when set, and only fall back to getpwent, ↵Gravatar Joey Hess2012-10-25
| | | | | | | | which doesn't work with LDAP or NIS.
* | convert the assistant to use a bound thread for XMPPGravatar Joey Hess2012-10-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This *may* solve the segfault I was seeing when the XMPP library called startTLS. My hypothesis is as follows: * TLS is documented (http://www.gnu.org/software/gnutls/manual/gnutls.html#Thread-safety) thread safe, but only when a single thread accesses it. * forkIO threads are not bound to an OS thread, so it was possible for the threaded runtime to run part of the XMPP code on one thread, and then switch to another thread later. So, forkOS, with its bound threads, should be used for the XMPP thread. Since the crash doesn't happen reliably, I am not yet sure about this fix. Note that I kept all the other threads in the assistant unbound, because bound threads have significantly higher overhead.
* | only use one push attributeGravatar Joey Hess2012-10-25
| | | | | | | | | | When pushing to multiple UUIDs, combine them all into a single push attribute.
* | switch from presence toggle hack to git-annex tag in presence extended contentGravatar Joey Hess2012-10-25
| | | | | | | | Push notifications are actually working over XMPP now!
* | add a separate field for the JIDGravatar Joey Hess2012-10-24
| |
* | flip availablilityGravatar Joey Hess2012-10-24
| | | | | | | | | | | | | | | | | | Seems presence notifications are not sent to clients that have marked themselves unavailable. (Testing with google talk.) This is the death knell for the presence hack, because it has to stay available, and even the toggle to unavailable and back could cause it to miss a notification. Still, flipped it so it basically works, for now.
* | pull from one of the remotes in a push notificationGravatar Joey Hess2012-10-24
| | | | | | | | | | Still need to do something about transfer queueing, however. This could be a real can of worms.
* | initial implementation of XMPP push notifier (untested)Gravatar Joey Hess2012-10-24
| | | | | | | | | | | | | | Lacking error handling, reconnection, credentials configuration, and doesn't actually do anything when it receives an incoming notification. Other than that, it might work! :)
* | added push notifier thread, currently a no-opGravatar Joey Hess2012-10-24
| | | | | | | | | | | | | | | | | | | | | | Hooked up everything that needs to notify on pushes. Note that syncNewRemote does not notify. This is probably ok, and I'd need to thread more state through to make it do so. This is only set up to support a single push notification method; I didn't use a NotificationBroadcaster. Partly because I don't yet know what info about pushes needs to be communicated, so my data types are only preliminary.
* | use a newtype for better type safetyGravatar Joey Hess2012-10-24
|/
* webapp: Switched to using the same multicast IP address that avahi uses.Gravatar Joey Hess2012-10-22
|
* webapp: Allow dashes in ssh key comments when pairing.Gravatar Joey Hess2012-10-22
|
* push out config changesGravatar Joey Hess2012-10-21
|
* !! removalGravatar Joey Hess2012-10-21
|
* add ConfigMonitor threadGravatar Joey Hess2012-10-20
| | | | | | | | | | | | | | | | | | | | Monitors git-annex branch for changes, which are noticed by the Merger thread whenever the branch ref is changed (either due to an incoming push, or a local change), and refreshes cached config values for modified config files. Rate limited to run no more often than once per minute. This is important because frequent git-annex branch changes happen when files are being added, or transferred, etc. A primary use case is that, when preferred content changes are made, and get pushed to remotes, the remotes start honoring those settings. Other use cases include propigating repository description and trust changes to remotes, and learning when a remote has added a new special remote, so the webapp can present the GUI to enable that special remote locally. Also added a uuid.log cache. All other config files already had caches.
* removed 3 partial !! and got a much nicer implementationGravatar Joey Hess2012-10-20
| | | | Yay, monadic Either!
* Merge branch 'safesemaphore'Gravatar Joey Hess2012-10-20
|\ | | | | | | | | | | Conflicts: debian/changelog git-annex.cabal
* | nasty race workaroundGravatar Joey Hess2012-10-19
| |
* | check preferred content when a file is moved or createdGravatar Joey Hess2012-10-19
| | | | | | | | | | | | | | | | | | This can result in the file being dropped, or being downloaded, or even being dropped from some other repo. It's even possible to create a file in a directory where content is not wanted, which will make the assistant immediately send it elsewhere, and then drop it.
* | check and drop after uploadsGravatar Joey Hess2012-10-18
| |
* | check and drop unwanted content from remotes after receiving a transferGravatar Joey Hess2012-10-18
| |
* | splitGravatar Joey Hess2012-10-18
| |
* | drop unwanted content in the transfer scanGravatar Joey Hess2012-10-18
| | | | | | | | | | | | | | | | This was complicated quite a bit by needing to check numcopies. I optimised that, so it only looks up numcopies once per file, no matter how many remotes it checks to drop from. Although it did just occur to me that it might be better to first check if it wants to drop content, and only then check numcopies..
* | minor transfer scanner code reworkingGravatar Joey Hess2012-10-18
| | | | | | | | Also a small optimisation using a Set
* | import S3 only when enabledGravatar Nicolas Pouillard2012-10-18
| |
* | make repo description optionalGravatar Joey Hess2012-10-14
| |
* | reorderGravatar Joey Hess2012-10-14
| | | | | | | | get list of remotes after, rather than before, a potentially blocking action
* | fix display of transfers for remotes not in syncRemotes listGravatar Joey Hess2012-10-14
| |
* | better variable nameGravatar Joey Hess2012-10-14
| |
* | avoid queuing transfers for remotes after syncing to them is pausedGravatar Joey Hess2012-10-14
| | | | | | | | | | | | | | | | | | | | | | | | | | This avoids the expensive transfer scan relying on its list of remotes to scan being accurate throughout, which it will not be when the user pauses syncing to a remote. I feel it's ok to queue transfers to *any* known remote, not just the ones being scanned. Note that there are still small races where after syncing to a remote is paused, a transfer can be queued for it. Not just in the expensive transfer scan, but in the cheap failed transfer scan, and elsewhere.
* | use gitRepoGravatar Joey Hess2012-10-12
| |
* | set/unset annex-sync, rather than annex-ignoreGravatar Joey Hess2012-10-11
| | | | | | | | | | | | This reserves annex.ignore for repos that should not be visible at all; repos with syncing disabled are now skipped by the assistant, but are displayed in the list and can be configured.
* | avoid pairlistener crashGravatar Joey Hess2012-10-10
| | | | | | | | | | | | | | | | | | | | | | I noticed this while offline (so that lack of solar power is good for something). Apparently it tries to bind multicast to lo, and that fails. If this happens, catch it, and retry until a real network interface becomes available. It may be that this should tie into the NetWatcher, and rebind whenever an interface comes up. Needs testing..
* | add "configure" link to each repository in the webapp's repo listGravatar Joey Hess2012-10-09
| |
* | webapp automatic groupingGravatar Joey Hess2012-10-09
| | | | | | | | | | | | | | | | webapp: Adds newly created repositories to one of these groups: clients, drives, servers This is heuristic, but it's a pretty good heuristic, and can always be configured.
* | revert bad changeGravatar Joey Hess2012-10-09
| |
* | assistant: Now honors preferred content settings when deciding what to transfer.Gravatar Joey Hess2012-10-09
| | | | | | | | | | | | | | | | | | Both when queueing downloads, and uploads, consults the preferred content settings. I didn't make it check yet when requeing failed transfers or queuing deferred downloads; dealing with the preferred content settings (or indeed, other settings) changing while the assistant is running still needs work.