bugdavfs2 - Bugs: bug #61880, davfs mount does not show folders...

 
 

bug #61880: davfs mount does not show folders with spaces

Submitter:  Marcel Partap <empee584>
Submitted:  Thu 20 Jan 2022 10:51:53 AM UTC
   
 
Category:  None Severity:  3 - Normal
Item Group:  None Status:  None
Privacy:  Public Assigned to:  alix82
Open/Closed:  Open
* Mandatory Fields

Add a New Comment Rich Markup
   

Mon 24 Jan 2022 02:48:32 PM UTC, comment #1: 

This is not a bug in davfs2. It is a server bug.

The href-element
<D:href>/webdav.php/account@server.tld/storage/test space/</D:href>
is invalid. According to the specs URLs in href-elements must obey the same rules as in HTTP. The means many characters, e.g. the space character, are not allowed. They must be percent-encoded. The correct href-element would be
<D:href>/webdav.php/account@server.tld/storage/test%20space/</D:href>

davfs2 has a workaround for those broken servers (mainly Microsoft SharePoint). Set option "sharepoint_href_bug 1" in your davfs2.conf file.

Werner

- <_71007>
Thu 20 Jan 2022 10:51:53 AM UTC, original submission:  

I stumbled over this issue that one of my davfs mounts (hosted via https://en.wikipedia.org/wiki/WebWeaver_Suite ), folders with spaces are not shown in directory listing. These are shown correctly in an android webdav client (x-plore) I tried, and folders with spaces haven't caused a problem on two other servers (nextcloud). This is the httpbody debug output for an example folder:


mount.davfs: Read block (3601 bytes):

[<?xml version="1.0" encoding="UTF-8" ?>
<D:multistatus xmlns:D="DAV:">
  <D:response>
    <D:href>/webdav.php/account@server.tld/storage/</D:href>
    <D:propstat>
      <D:prop>
        <D:resourcetype>
          <D:collection />
        </D:resourcetype>
        <D:getcontenttype>httpd/unix-directory</D:getcontenttype>
        <D:creationdate>Wed, 15 Dec 2021 13:56:02 +0000</D:creationdate>
        <D:getlastmodified>Wed, 15 Dec 2021 13:56:02 +0000</D:getlastmodified>
        <D:getetag>W/"0bd61f61cd2c47653160d48d8182414e"</D:getetag>
      </D:prop>
      <D:status>HTTP/1.1 200 OK</D:status>
    </D:propstat>
  </D:response>
  <D:response>
    <D:href>/webdav.php/account@server.tld/storage/foo/</D:href>
    <D:propstat>
      <D:prop>
        <D:resourcetype>
          <D:collection />
        </D:resourcetype>
        <D:getcontenttype>httpd/unix-directory</D:getcontenttype>
        <D:creationdate>Thu, 20 Jan 2022 09:58:44 +0000</D:creationdate>
       <D:getlastmodified>Thu, 20 Jan 2022 09:58:44 +0000</D:getlastmodified>
        <D:getetag>W/"749adcfd31d4e1e6cbe1fc2c724452f3"</D:getetag>
      </D:prop>
      <D:status>HTTP/1.1 200 OK</D:status>
    </D:propstat>
  </D:response>
  <D:response>
    <D:href>/webdav.php/account@server.tld/storage/foo.1/</D:href>
    <D:propstat>
      <D:prop>
        <D:resourcetype>
          <D:collection />
        </D:resourcetype>
        <D:getcontenttype>httpd/unix-directory</D:getcontenttype>
        <D:creationdate>Thu, 20 Jan 2022 09:58:49 +0000</D:creationdate>
        <D:getlastmodified>Thu, 20 Jan 2022 09:58:49 +0000</D:getlastmodified>
        <D:getetag>W/"cd846105df074019df6b2c4dc04b6ae4"</D:getetag>
      </D:prop>
      <D:status>HTTP/1.1 200 OK</D:status>
    </D:propstat>
  </D:response>
  <D:response>
    <D:href>/webdav.php/account@server.tld/storage/foo 1/</D:href>
    <D:propstat>
      <D:prop>
        <D:resourcetype>
          <D:collection />
        </D:resourcetype>
        <D:getcontenttype>httpd/unix-directory</D:getcontenttype>
        <D:creationdate>Thu, 20 Jan 2022 09:58:52 +0000</D:creationdate>
        <D:getlastmodified>Thu, 20 Jan 2022 09:58:52 +0000</D:getlastmodified>
        <D:getetag>W/"65a8a4986361a30bd09d35add1dbd751"</D:getetag>
      </D:prop>
      <D:status>HTTP/1.1 200 OK</D:status>
    </D:propstat>
  </D:response>
  <D:response>
    <D:href>/webdav.php/account@server.tld/storage/foo bar.test/</D:href>
    <D:propstat>
     <D:prop>
        <D:resourcetype>
          <D:collection />
        </D:resourcetype>
        <D:getcontenttype>httpd/unix-directory</D:getcontenttype>
        <D:creationdate>Thu, 20 Jan 2022 09:59:08 +0000</D:creationdate>
        <D:getlastmodified>Thu, 20 Jan 2022 09:59:08 +0000</D:getlastmodified>
        <D:getetag>W/"845e1d7c90345a3e98571e2c235a6daf"</D:getetag>
      </D:prop>
      <D:status>HTTP/1.1 200 OK</D:status>
    </D:propstat>
  </D:response>
  <D:response>
    <D:href>/webdav.php/account@server.tld/storage/test space/</D:href>
    <D:propstat>
      <D:prop>
        <D:resourcetype>
          <D:collection />
        </D:resourcetype>
        <D:getcontenttype>httpd/unix-directory</D:getcontenttype>
        <D:creationdate>Thu, 20 Jan 2022 10:29:29 +0000</D:creationdate>
        <D:getlastmodified>Thu, 20 Jan 2022 10:29:29 +0000</D:getlastmodified>
        <D:getetag>W/"f3892e8a470377751f295f9d8585e0e6"</D:getetag>
      </D:prop>
      <D:status>HTTP/1.1 200 OK</D:status>
    </D:propstat>
  </D:response>
</D:multistatus>]


foo and foo.1 are listed, the others are not. Let me know if I can help debug this further.
This is with debian's latest libneon27 0.32.2-1, davfs2 1.6.0-1. All commits after 1.6.0 don't seem to be relevant to this issue..

Marcel Partap <empee584>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by alix82 (Updated the item)
  • -email is unavailable- added by _71007 (Posted a comment)
  • -email is unavailable- added by empee584 (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follows 1 latest change.

    Date Changed by Updated Field Previous Value => Replaced by
    2022-09-08 alix82 Assigned toNone alix82

    Back to the top

    Powered by Savane 3.13-d3ae.
    Corresponding source code