feat: CalDAV foundation — HTTP methods and XML parser

Add PROPFIND and REPORT to HttpMethod enum for CalDAV protocol support.
Implement minimal XML parser (caldav_xml.hpp) for CalDAV response parsing:
namespaced tags, attributes, CDATA, entity references, self-closing elements.
Bounded by max depth and size to prevent allocation bombs.
This commit is contained in:
2026-07-23 19:48:38 +01:00
parent 3b73badf5d
commit 2dab5b97b6
6 changed files with 514 additions and 1 deletions

View File

@@ -26,6 +26,7 @@ nocal_sources = files(
'src/domain/month_layout.cpp',
'src/storage/ics_store.cpp',
'src/storage/sync_cache.cpp',
'src/sync/caldav_xml.cpp',
'src/sync/curl_http.cpp',
'src/sync/desktop_oauth.cpp',
'src/sync/microsoft_account.cpp',
@@ -114,6 +115,10 @@ unicode_tests = executable('unicode-tests',
'tests/unicode_tests.cpp', dependencies: nocal_dep)
test('nocal:unicode', unicode_tests)
caldav_xml_tests = executable('caldav-xml-tests',
'tests/caldav_xml_tests.cpp', dependencies: nocal_dep)
test('caldav-xml', caldav_xml_tests)
test('cli-recovery', shell,
args: [files('tests/cli_recovery_test.sh'), nocal_executable])
test('cli-transfer', shell,