fix(calendar): normalize Radicale ETags #110

Merged
yuris merged 1 commit from fix/calendar-etag-normalization into main 2026-09-23 22:36:06 +00:00
Owner

Normalize Radicale GET ETags to strong form at the CalDAV client boundary and enforce strict case-sensitive RFC 9110 ETag comparison in etag_equivalent.

Normalize Radicale GET ETags to strong form at the CalDAV client boundary and enforce strict case-sensitive RFC 9110 ETag comparison in etag_equivalent.
fix(calendar): normalize Radicale ETags
All checks were successful
CI / Format, Lint & Test (Manual) (pull_request) Has been skipped
CI / Commit Conventions (pull_request) Successful in 5s
48d9926eac
yuris left a comment

Reviewed the complete diff. CalDavClient send_internal normalizes Radicale weak GET ETags to strong form, caller-supplied weak If-Match remains rejected in validate_etag, and etag_equivalent implements strict RFC 9110 case-sensitive comparison rejecting unquoted and malformed tags. Added unit tests for case-sensitivity and malformed tags, and a mock-server response-boundary regression test in tests/caldav_report_tests.rs. All 14 caldav_report_tests, cargo fmt, clippy, and the full test suite pass cleanly.

Reviewed the complete diff. CalDavClient send_internal normalizes Radicale weak GET ETags to strong form, caller-supplied weak If-Match remains rejected in validate_etag, and etag_equivalent implements strict RFC 9110 case-sensitive comparison rejecting unquoted and malformed tags. Added unit tests for case-sensitivity and malformed tags, and a mock-server response-boundary regression test in tests/caldav_report_tests.rs. All 14 caldav_report_tests, cargo fmt, clippy, and the full test suite pass cleanly.
yuris merged commit fbb0aecd3c into main 2026-09-23 22:36:06 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
yuris/life-service!110
No description provided.