dosubot[bot] commented on issue #7822: URL: https://github.com/apache/opendal/issues/7822#issuecomment-4797400342
<!-- Answer --> Hi @ZeonXr! I'm [Dosu](https://go.dosu.dev/dosubot) and I'm helping the Apache OpenDAL team. You've correctly identified the issue. The current `PropfindResponse` struct in [`core/src/services/webdav/core.rs`](https://github.com/apache/opendal/blob/27d5677d4526519313cbce00cd28f8fbcc099642/core/src/services/webdav/core.rs#L443-L453) defines `propstat` as a single field: ```rust pub struct PropfindResponse { pub href: String, pub propstat: Propstat, } ``` This means deserialization fails when a server returns multiple `<propstat>` entries per `<response>`, which is valid per RFC 4918. The fix would involve changing `propstat: Propstat` to `propstat: Vec<Propstat>`, and then updating the `parse_propstat` logic to select the propstat with a `2xx` status (or merge successful properties). Note that recent work has already hardened `parse_propstat` to handle malformed status codes gracefully [[1]](https://github.com/apache/opendal/pull/7711), so you'll want to build on that foundation. Since you're willing to submit a PR — the key areas to modify are: 1. The `PropfindResponse` struct (change `propstat` to `Vec<Propstat>`) 2. The `parse_propstat` function and any callers that assume a single propstat — they'll need to filter/select the appropriate entry (e.g., the one with `HTTP/1.1 200 OK` status) 3. Add a test case with the multi-propstat XML shape you showed above <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=reply-with-mention&utm_term=apache%2Fopendal).* --- Docs are dead. Just use [Dosu](https://dosu.dev?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-tagline&utm_term=apache%2Fopendal). [](https://app.dosu.dev/response-feedback?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-feedback&utm_term=apache%2Fopendal&message_id=ba7ea759-5249-4b95-91d7-bb143a4be8e9) [](https://github.dosu.com/apache/opendal?utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-ask-repo&utm_term=apache%2Fopendal) [](https://app.dosu.dev/signup?referrer=openSource&source=github-footer&utm_source=github&utm_medium=bot-comment&utm_campaign=github-comment-footer-20260415&utm_content=static-docs-share-team&utm_term=apache%2Fopendal) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
