21 Commits

Author SHA1 Message Date
Lukas Fleischer
bfafec3ebf calcurse-caldav: Handle missing ETag gracefully
This was partly fixed by 475c341 (calcurse-caldav: Fix late retrieval of
ETag, 2016-01-25). However, the case where the server does not return
ETag after creating a new item still wasn't handled properly. This patch
hopefully addresses this and also makes sure that the ETag header is
matched case-insensitively.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25 21:55:10 +01:00
Lukas Fleischer
4fff8ae4fe calcurse-caldav: Improve version check
Make sure that at least a current Git build of calcurse is used.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25 21:02:30 +01:00
Lukas Fleischer
1a45713d1d calcurse-caldav: Print XML dump in debug mode only
In die_atnode(), we currently print a full dump of the XML node if
verbose mode is enabled. Change this behavior such that a dump is only
created in debug mode.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25 20:17:53 +01:00
Lukas Fleischer
c176b130bb contrib/caldav/README: Minor improvements
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25 20:03:46 +01:00
Lukas Fleischer
5e6a61eee9 calcurse-caldav: Fix comment on certificate checks
Clarify that ssl._create_unverified_context() was added in Python 3.4.3.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25 19:59:38 +01:00
Lukas Fleischer
849459c63f calcurse-caldav: Support custom HTTP headers
Add support for specifying additional HTTP headers, such as the
User-Agent, in the configuration file.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25 19:58:41 +01:00
Lukas Fleischer
475c341686 calcurse-caldav: Fix late retrieval of ETag
Fixes another regression introduced in badbd71 (calcurse-caldav: Add a
debug mode, 2016-01-23).

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25 13:08:17 +01:00
Lukas Fleischer
5abef70ee5 calcurse-caldav: Fix --init=keep-local
Fixes a regression introduced in badbd71 (calcurse-caldav: Add a debug
mode, 2016-01-23).

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25 10:55:32 +01:00
Lukas Fleischer
4a14103d38 calcurse-caldav: Fix duplicate Content-Type prefix
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25 10:24:02 +01:00
Lukas Fleischer
2f82457bbc calcurse-caldav: Fix MIME type in requests
Specify application/xml in the Content-Type of requests except for PUT,
where we actually submit calendar data.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25 09:49:24 +01:00
Lukas Fleischer
7e7d21722a calcurse-caldav: Show debug output before checking status
Make sure we print the headers and the body of a HTTP response in debug
mode, even if the HTTP status code indicates failure.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-24 13:44:27 +01:00
Lukas Fleischer
b9d80c3cf4 calcurse-caldav: Add XML declaration to requests
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-24 02:26:02 +01:00
Lukas Fleischer
84c0f8b5f8 calcurse-caldav: Prefix error messages with "error:"
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23 16:58:01 +01:00
Lukas Fleischer
03e149d4e1 calcurse-caldav: Check response status
Bail out if the HTTP status code of any of the replies starts with a
digit other than 2.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23 16:58:01 +01:00
Lukas Fleischer
2f4ca3c9c8 calcurse-caldav: Include command/path in the debug output
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23 15:08:58 +01:00
Lukas Fleischer
c2e6b31357 calcurse-caldav: Ensure path always starts/ends with a slash
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23 15:05:53 +01:00
Lukas Fleischer
badbd71275 calcurse-caldav: Add a debug mode
Dump all communication with the server to stdout if --debug is
specified.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23 12:55:25 +01:00
Lukas Fleischer
448d470b61 calcurse-caldav: Fix parsing of the Verbose config option
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23 11:21:13 +01:00
Lukas Fleischer
439197dc4c calcurse-caldav: Make InsecureSSL optional 2016-01-23 08:35:36 +01:00
Lukas Fleischer
dcdc792178 calcurse-caldav: Add a workaround for Python <3.4
Python versions prior to 3.4 do not check certificates by default and
thus do not support ssl._create_unverified_context(). Add a workaround.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23 08:22:49 +01:00
Lukas Fleischer
d516a8ff87 Add a script to synchronize with CalDAV servers
Introduce calcurse-caldav, a Python script that can be used to
synchronize calcurse instances with CalDAV servers.

The script was tested with an instance of the Radicale CalDAV server but
it is still alpha software. Make backups before giving it a try!

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-22 18:44:42 +01:00