The project "Citadel server, clients, utilities":
The branch, master has been updated
via ceeb0cbdd36f6678bf288fc12462bf4810803d50 (commit)
via 04309973f5aba899174c452836bff3db5ce8649f (commit)
via db338ed14fc5424546b025e0b2d4ae8e019ffe3f (commit)
from 659c5695ec306ac694ed66e66ef80798869e7174 (commit)
- Log -----------------------------------------------------------------
commit ceeb0cbdd36f6678bf288fc12462bf4810803d50
Author: Art Cancro <[email protected]>
Date: Mon Oct 20 20:49:55 2025 -0400
Split room list dispatcher into GET and PROPFIND paths; declare DAV: 1, 3
support
- Updated root OPTIONS handler to advertise DAV level 3 (extended collections)
- Refactored room_list() into a protocol-aware dispatcher
- Validates method (GET or PROPFIND)
- Issues LKRA once, then branches by method
- Added room_list_get() for Citadel-native JSON output
- Stubbed room_list_propfind() for future DAV multistatus XML
- Introduced <stdbool.h> and replaced int with bool for method flag
- Preserved assert(0) as control flow checksum
This lays the groundwork for DAV-native room discovery while preserving Citadel
semantics.
commit 04309973f5aba899174c452836bff3db5ce8649f
Author: Art Cancro <[email protected]>
Date: Sat Oct 18 16:42:18 2025 -0400
Add DAV OPTIONS and PROPFIND handlers for / and /ctdl/
- Implement root_options() to advertise DAV support and allowed methods
- Implement root_propfind() to expose /ctdl/ as a DAV collection
- Implement ctdl_propfind() to expose /ctdl/r/ as a child collection
- Return static getlastmodified timestamps to avoid epoch fallback
- Wire handlers into perform_request() for OPTIONS and PROPFIND on /, /ctdl,
/ctdl/, /ctdl/r, /ctdl/r/
commit db338ed14fc5424546b025e0b2d4ae8e019ffe3f
Author: Art Cancro <[email protected]>
Date: Sat Oct 18 15:39:06 2025 -0400
Fix crash when Content-Type header is missing in HTTP request with body
Guard strncasecmp() call with null check to prevent segmentation fault when
Content-Type is absent.
This resolves a reproducible crash triggered by sending a request with
Content-Length and body,
but no Content-Type header. The parser now safely skips query parameter parsing
in such cases.
-----------------------------------------------------------------------
Summary of changes:
webcit-ng/server/http.c | 2 +-
webcit-ng/server/request.c | 123 +++++++++++++++++++++++++++++++++++++-
webcit-ng/server/room_functions.c | 50 +++++++++++++---
webcit-ng/server/webcit.h | 1 +
4 files changed, 165 insertions(+), 11 deletions(-)
--
Citadel server, clients, utilities