diff options
author | Lukas Fleischer <lfleischer@calcurse.org> | 2016-01-25 21:45:56 +0100 |
---|---|---|
committer | Lukas Fleischer <lfleischer@calcurse.org> | 2016-01-25 21:55:10 +0100 |
commit | bfafec3ebf07f12f01f4f940e7048ff0d9444e5b (patch) | |
tree | 02a3001077cbdfc262fef8380e4fbc8d227998c0 | |
parent | 4fff8ae4fe2615c7d966c4b2f73b2a4dbf9c6abf (diff) | |
download | calcurse-bfafec3ebf07f12f01f4f940e7048ff0d9444e5b.zip |
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>
-rwxr-xr-x | contrib/caldav/calcurse-caldav.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/contrib/caldav/calcurse-caldav.py b/contrib/caldav/calcurse-caldav.py index e02a905..3bea80b 100755 --- a/contrib/caldav/calcurse-caldav.py +++ b/contrib/caldav/calcurse-caldav.py @@ -192,7 +192,10 @@ def push_object(conn, objhash): if not headers: return None - etag = [header[1] for header in headers if header[0] == 'ETag'][0] + etag = None + headerdict = dict((key.lower(), value) for key, value in headers) + if 'etag' in headerdict: + etag = headerdict['etag'] while not etag: hrefmap = get_hrefmap(conn, objhash) if len(hrefmap.keys()) > 0: |