From 4b0a896303e2292a555bdd564aefa1b0e8257af0 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Sat, 25 Jul 2015 03:22:08 +0200 Subject: [PATCH] DAV: Remove warning about missing etag on PUT --- vdirsyncer/storage/dav.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/vdirsyncer/storage/dav.py b/vdirsyncer/storage/dav.py index eb0ce46..c93f589 100644 --- a/vdirsyncer/storage/dav.py +++ b/vdirsyncer/storage/dav.py @@ -445,11 +445,13 @@ class DavStorage(Storage): etag = response.headers.get('etag', None) href = self._normalize_href(response.url) if not etag: - dav_logger.warning('Race condition detected with server {}, ' - 'consider using an alternative.' - .format(self.session.parsed_url.netloc)) + # The server violated the RFC and didn't send an etag. + # ownCloud: https://github.com/owncloud/contacts/issues/920 + dav_logger.debug('Server did not send etag, fetching {!r}' + .format(href)) item2, etag = self.get(href) - assert item2.uid == item.uid + if item2.raw != item.raw: + raise exceptions.WrongEtagError(href) return href, etag def update(self, href, item, etag):