239 Commits

Author SHA1 Message Date
Guillaume Ayoub
8c225f019c Fix support of recurring events 2016-07-07 17:49:56 +02:00
Florian Mounier
364ed3689d Optimise collection creation by avoiding nested_loop 2016-07-07 16:13:32 +02:00
Unrud
39379413d1 Use hidden file for locking 2016-06-10 01:18:02 +02:00
Unrud
3479e76690 Ignore hidden files 2016-06-10 01:17:57 +02:00
Guillaume Ayoub
063e827588 Revert "Try to use UID as filename"
This reverts commit 0b25c82d9d7b9bba874470ba439fb4bae08eeb1b.

See #419.
2016-05-30 19:05:58 +02:00
Guillaume Ayoub
f1f716b0c7 Merge pull request #419 from Unrud/patch-16
Save all items with the same UID in the same file
2016-05-30 19:03:25 +02:00
Unrud
0b25c82d9d Try to use UID as filename 2016-05-29 03:38:35 +02:00
Unrud
5c90f5b2af Save all items with the same UID in the same file
If recurrences are not in the same file, they are not correctly shown by clients.
2016-05-29 03:32:06 +02:00
Unrud
9ade92c026 Always release lock 2016-05-28 22:36:40 +02:00
Guillaume Ayoub
da1363f026 Revert "Limit duration of file locks"
This reverts commit 6b1acd14d70b2e029aa56905518b3185a66d91c2.
2016-05-25 14:05:34 +02:00
Guillaume Ayoub
69ec2891fa Remove at_once 2016-05-25 14:05:05 +02:00
Guillaume Ayoub
a3c32ee77f Merge pull request #402 from Unrud/locking
Implement locking of whole storage
2016-05-25 14:03:48 +02:00
Guillaume Ayoub
4fc5e3135a Update documentation of path_to_filesystem 2016-05-24 14:39:41 +02:00
Unrud
6b1acd14d7 Limit duration of file locks
This prevents starvation of writers in other processes
2016-05-22 23:44:21 +02:00
Unrud
14daa88772 Use FIFO for storage locking
This prevents starvation of writers in the current process
2016-05-22 23:29:00 +02:00
Unrud
1ea9a33101 Reuse lock file 2016-05-22 10:29:56 +02:00
Unrud
49bc0728e3 Only one lock file per process (lockf() works now)
lockf() is more portable than flock()
2016-05-22 10:29:56 +02:00
Unrud
eb9218354c Always use readers-writer lock in storage locking 2016-05-22 10:29:56 +02:00
Unrud
bca6cec6b3 Use context manager for locking 2016-05-22 10:29:50 +02:00
Unrud
b810d61ce3 Don't sanitize local paths using posixpath
This doesn't work as expected on Windows.
2016-05-21 01:41:00 +02:00
Unrud
2c45b1998c Implement locking of whole storage 2016-05-21 01:26:45 +02:00
Markus Unterwaditzer
2dee66133d Flake8 fixes 2016-05-04 19:25:58 +02:00
Guillaume Ayoub
2f97d7d1e1 Remove global state about configuration and logs
Many things have been changed to make this possible, probably leading to
many hidden bugs waiting to be found.

Related to #122.
2016-04-22 11:37:02 +09:00
Guillaume Ayoub
303a53eede Return Items in upload and update methods
Related to #380
2016-04-20 08:09:00 +09:00
Guillaume Ayoub
3a9bcc7555 Add etag property to items
Related to #380.
2016-04-20 07:49:03 +09:00
Guillaume Ayoub
6adc7f5fed Enhance collection discovering
When the request path leads to a non-existing item, try to create the
Collection object according to an existing collection at request path's
parent.

This change means that the requests whose path leads to a collection
that doesn't exist (at least MKCOL, MKCALENDAR and PUT) need to rely on
the request path more than on the Collection path. It was already done
for PUT, it's been fixed for MKCOL and MKCALENDAR.

Fix #378.
2016-04-19 10:39:52 +09:00
Guillaume Ayoub
65659fc909 Improve WebDAV compatibility
Add getlastmodified and getcontentlength properties, and fix nested
collections support. Fix #321.
2016-04-18 09:11:00 +09:00
Markus Unterwaditzer
e8c1defe6a Update PROPPATCH to new storage API 2016-04-13 23:02:00 +02:00
Markus Unterwaditzer
f169f2f19b Don't crash if collection doesn't exist yet 2016-04-13 22:09:00 +02:00
Markus Unterwaditzer
a1cdcf2fba Don't crash if propsfile doesn't exist 2016-04-12 22:43:10 +02:00
Guillaume Ayoub
e586569b31 Fix a lot of details 2016-04-12 18:21:18 +02:00
Guillaume Ayoub
406027f3c9 Change the Collection API
The new API used comes from vdirsyncer, as proposed by @untitaker in
issue #130.

The code has been tested and works with the (too simple) unit tests, and
with Lightning and DAVdroid. Many things are broken and a good part of
the code has not be ported to the new API yet. TODOs have been added
where the application is known to be broken.
2016-04-11 20:11:35 +02:00
Guillaume Ayoub
2408097ab9 Clean the storage module 2016-04-10 02:37:43 +02:00
Guillaume Ayoub
41e319a8b8 Merge ical and storage modules 2016-04-10 02:08:07 +02:00
Guillaume Ayoub
73d39ea572 Use vobject 2016-04-10 01:36:45 +02:00
Guillaume Ayoub
12ddd64884 Fix the management of paths 2016-04-09 22:44:34 +02:00
Guillaume Ayoub
7a0e267f19 Better collection discovery 2016-04-09 15:11:47 +02:00
Guillaume Ayoub
54dee0c7c4 Clean tests 2016-04-07 19:25:10 +02:00
Guillaume Ayoub
1001bcb676 Remove extra auth, rights and storage modules 2016-04-07 19:02:52 +02:00