Bug 499451 - Dolphin does not accept PROPFIND response with capitalization in tags
Summary: Dolphin does not accept PROPFIND response with capitalization in tags
Status: REPORTED
Alias: None
Product: dolphin
Classification: Applications
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Dolphin Bug Assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-02-03 09:58 UTC by robin
Modified: 2025-02-03 18:42 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description robin 2025-02-03 09:58:05 UTC
SUMMARY
The Nextcloud WebDAV server, as an example, responds using lowercase tags (<d:multistatus>, <d:response>, etc.). However, the in examples in the WebDAV specificiation (https://www.ietf.org/rfc/rfc4918.txt) tags with an uppercase D are used (<D:multistatus>, <D:response>, etc.). I have little knowledge of WebDAV, but I think Dolphin should probably accept any capitalization, just like browsers with HTML tags?

OBSERVED RESULT
With "D:multistatus" dolphin says: The file or folder <something> does not exist - Loading canceled
With "d:multistatus" dolphin correctly provides a file listing

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora 41
KDE Plasma Version:  6.2.5
KDE Frameworks Version: 6.10.0
Qt Version: 6.8.1

I am not sure whether this is an issue with dolphin or an underlying component like KIO, apologies if I filed this bug incorrectly.
Comment 1 Nicolas Fella 2025-02-03 12:28:03 UTC
Any chance you could show me the full XML response, or just the line with "multistatus"?
Comment 2 robin 2025-02-03 18:34:17 UTC
Sure. Here is a working example:

<?xml version="1.0" encoding="utf-8" ?><d:multistatus xmlns:d="DAV:"><d:response><d:href>/dav/DK/</d:href><d:propstat><d:status>HTTP/1.1 200 OK</d:status><d:prop><d:getlastmodified>Mon, 03 Feb 2025 18:32:00 +0000</d:getlastmodified><d:resourcetype><d:collection /></d:resourcetype></d:prop></d:propstat></d:response><d:response><d:href>/dav/DK/test/</d:href><d:propstat><d:status>HTTP/1.1 200 OK</d:status><d:prop><d:getlastmodified>Fri, 12 Jan 2024 08:41:21 +0000</d:getlastmodified><d:resourcetype><d:collection /></d:resourcetype></d:prop></d:propstat></d:response></d:multistatus>

and an example that results in the error (only difference is D:multistatus):

<?xml version="1.0" encoding="utf-8" ?><D:multistatus xmlns:d="DAV:"><d:response><d:href>/dav/DK/</d:href><d:propstat><d:status>HTTP/1.1 200 OK</d:status><d:prop><d:getlastmodified>Mon, 03 Feb 2025 18:32:00 +0000</d:getlastmodified><d:resourcetype><d:collection /></d:resourcetype></d:prop></d:propstat></d:response><d:response><d:href>/dav/DK/test/</d:href><d:propstat><d:status>HTTP/1.1 200 OK</d:status><d:prop><d:getlastmodified>Fri, 12 Jan 2024 08:41:21 +0000</d:getlastmodified><d:resourcetype><d:collection /></d:resourcetype></d:prop></d:propstat></d:response></D:multistatus>

thanks for your time!
Comment 3 Nicolas Fella 2025-02-03 18:40:18 UTC
Thanks, that seems to confirms what I suspected.

As far as I can tell the d being uppercase or lowercase doesn't matter as long as it matches the captitalization in xmlns:d="DAV:", i.e. <D:multistatus> is handled fine if and only if xmlns:D="DAV:" is used. 

I don't know what the XML specification says on this, but it is how https://doc.qt.io/qt-6/qdomdocument.html behaves, which is used for the XML parsing here
Comment 4 robin 2025-02-03 18:42:26 UTC
Ah, that makes sense, thanks for the clarification. Then it's probably not a bug, just me not knowing what XML namespaces meant and blindly copying an example from the RFC..