From c95aed5357e77a4bf7d3955c46740000a17adee1 Mon Sep 17 00:00:00 2001 From: Mickael KERJEAN Date: Wed, 27 Feb 2019 15:51:09 +0000 Subject: [PATCH] webdav: add trailing slash on directories Fixes golang/go#29858 Change-Id: I7bd8357a7def7daab1fd6357a888ff4e676a1bee GitHub-Last-Rev: a6dc776fa3aad595643943dcff88efcf152d6be1 GitHub-Pull-Request: golang/net#32 Reviewed-on: https://go-review.googlesource.com/c/163863 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- webdav/webdav.go | 6 +++++- webdav/webdav_test.go | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/webdav/webdav.go b/webdav/webdav.go index 744d2d52..b04c5dd7 100644 --- a/webdav/webdav.go +++ b/webdav/webdav.go @@ -556,7 +556,11 @@ func (h *Handler) handlePropfind(w http.ResponseWriter, r *http.Request) (status if err != nil { return err } - return mw.write(makePropstatResponse(path.Join(h.Prefix, reqPath), pstats)) + href := path.Join(h.Prefix, reqPath) + if info.IsDir() { + href += "/" + } + return mw.write(makePropstatResponse(href, pstats)) } walkErr := walkFS(ctx, h.FileSystem, depth, reqPath, fi, walkFn) diff --git a/webdav/webdav_test.go b/webdav/webdav_test.go index 46d1bb62..4daa031e 100644 --- a/webdav/webdav_test.go +++ b/webdav/webdav_test.go @@ -284,7 +284,7 @@ func TestFilenameEscape(t *testing.T) { wantDisplayName: `こんにちわ世界`, }, { name: `/Program Files/`, - wantHref: `/Program%20Files`, + wantHref: `/Program%20Files/`, wantDisplayName: `Program Files`, }, { name: `/go+lang`,