calcurse-caldav: Specify depth in the initial request
For the initial calendar-query request, set the Depth header to 1. This is required because according to RFC 4791, the depth value defaults to 0 if no header is specified. Fixes GitHub issue #38. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
This commit is contained in:
parent
b36dd2e614
commit
e76b96c9ff
@ -138,6 +138,7 @@ def remote_query(conn, cmd, path, additional_headers, body):
|
|||||||
|
|
||||||
def get_etags(conn, hrefs=[]):
|
def get_etags(conn, hrefs=[]):
|
||||||
if len(hrefs) > 0:
|
if len(hrefs) > 0:
|
||||||
|
headers = {}
|
||||||
body = ('<?xml version="1.0" encoding="utf-8" ?>'
|
body = ('<?xml version="1.0" encoding="utf-8" ?>'
|
||||||
'<C:calendar-multiget xmlns:D="DAV:" '
|
'<C:calendar-multiget xmlns:D="DAV:" '
|
||||||
' xmlns:C="urn:ietf:params:xml:ns:caldav">'
|
' xmlns:C="urn:ietf:params:xml:ns:caldav">'
|
||||||
@ -146,13 +147,14 @@ def get_etags(conn, hrefs=[]):
|
|||||||
body += '<D:href>{}</D:href>'.format(href)
|
body += '<D:href>{}</D:href>'.format(href)
|
||||||
body += '</C:calendar-multiget>'
|
body += '</C:calendar-multiget>'
|
||||||
else:
|
else:
|
||||||
|
headers = {'Depth': '1'}
|
||||||
body = ('<?xml version="1.0" encoding="utf-8" ?>'
|
body = ('<?xml version="1.0" encoding="utf-8" ?>'
|
||||||
'<C:calendar-query xmlns:D="DAV:" '
|
'<C:calendar-query xmlns:D="DAV:" '
|
||||||
' xmlns:C="urn:ietf:params:xml:ns:caldav">'
|
' xmlns:C="urn:ietf:params:xml:ns:caldav">'
|
||||||
'<D:prop><D:getetag /></D:prop>'
|
'<D:prop><D:getetag /></D:prop>'
|
||||||
'<C:filter><C:comp-filter name="VCALENDAR" /></C:filter>'
|
'<C:filter><C:comp-filter name="VCALENDAR" /></C:filter>'
|
||||||
'</C:calendar-query>')
|
'</C:calendar-query>')
|
||||||
headers, body = remote_query(conn, "REPORT", path, {}, body)
|
headers, body = remote_query(conn, "REPORT", path, headers, body)
|
||||||
if not headers:
|
if not headers:
|
||||||
return {}
|
return {}
|
||||||
root = etree.fromstring(body)
|
root = etree.fromstring(body)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user