fix(dav): DAV-Header bewirbt jetzt auch 'addressbook'

DAVx5 registriert Dienste basierend auf dem DAV-Response-Header. Ohne
'addressbook' im Header wurde CardDAV bei der Auto-Discovery ignoriert,
obwohl addressbook-home-set korrekt gemeldet wurde. Das erklaert warum
nur der caldav-Service fuer Adam angelegt wurde.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan Hacker
2026-04-13 03:38:04 +02:00
parent 8772e02410
commit 35535fb84b
+2 -2
View File
@@ -52,7 +52,7 @@ def _qn(prefix: str, local: str) -> str:
def _xml_response(root: ET.Element, status: int = 207) -> Response: def _xml_response(root: ET.Element, status: int = 207) -> Response:
body = b'<?xml version="1.0" encoding="utf-8"?>\n' + ET.tostring(root, encoding='utf-8') body = b'<?xml version="1.0" encoding="utf-8"?>\n' + ET.tostring(root, encoding='utf-8')
headers = { headers = {
'DAV': '1, 2, 3, calendar-access', 'DAV': '1, 2, 3, calendar-access, addressbook',
'Content-Type': 'application/xml; charset=utf-8', 'Content-Type': 'application/xml; charset=utf-8',
} }
return Response(body, status=status, headers=headers) return Response(body, status=status, headers=headers)
@@ -88,7 +88,7 @@ def basic_auth(f):
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
DAV_HEADERS = { DAV_HEADERS = {
'DAV': '1, 2, 3, calendar-access', 'DAV': '1, 2, 3, calendar-access, addressbook',
} }
ALLOW_COLLECTION = 'OPTIONS, PROPFIND, REPORT, DELETE, MKCALENDAR' ALLOW_COLLECTION = 'OPTIONS, PROPFIND, REPORT, DELETE, MKCALENDAR'