diff --git a/internal/elements.go b/internal/elements.go index 11d04ad..f5df41d 100644 --- a/internal/elements.go +++ b/internal/elements.go @@ -135,13 +135,14 @@ func NewOKResponse(path string) *Response { } func (resp *Response) Path() (string, error) { - if err := resp.Status.Err(); err != nil { - return "", err + err := resp.Status.Err() + var path string + if len(resp.Hrefs) == 1 { + path = resp.Hrefs[0].Path + } else if err == nil { + err = fmt.Errorf("webdav: malformed response: expected exactly one href element, got %v", len(resp.Hrefs)) } - if len(resp.Hrefs) != 1 { - return "", fmt.Errorf("webdav: malformed response: expected exactly one href element, got %v", len(resp.Hrefs)) - } - return resp.Hrefs[0].Path, nil + return path, err } func (resp *Response) DecodeProp(values ...interface{}) error {