From d85b9bc9d6fbe68b522fad8934a257539f00c2a9 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Thu, 10 May 2018 15:03:04 +0100 Subject: [PATCH] webdav: workarounds for biz.mail.ru * Add "Depth: 1" on read metadata PROPFIND call * Accept 406 to mean directory already exists --- backend/webdav/webdav.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/webdav/webdav.go b/backend/webdav/webdav.go index cc81fd329..a08d8975f 100644 --- a/backend/webdav/webdav.go +++ b/backend/webdav/webdav.go @@ -179,6 +179,9 @@ func (f *Fs) readMetaDataForPath(path string) (info *api.Prop, err error) { opts := rest.Opts{ Method: "PROPFIND", Path: f.filePath(path), + ExtraHeaders: map[string]string{ + "Depth": "1", + }, } var result api.Multistatus var resp *http.Response @@ -563,7 +566,7 @@ func (f *Fs) mkdir(dirPath string) error { }) if apiErr, ok := err.(*api.Error); ok { // already exists - if apiErr.StatusCode == http.StatusMethodNotAllowed { + if apiErr.StatusCode == http.StatusMethodNotAllowed || apiErr.StatusCode == http.StatusNotAcceptable { return nil } // parent does not exists