webdav: have copyFiles copy dead properties.
Change-Id: I778e26c06f153fb705b450052d3721fec9a3082b
Reviewed-on: https://go-review.googlesource.com/10471
Reviewed-by: Robert Stepanek <robert.stepanek@gmail.com>
Reviewed-by: Nigel Tao <nigeltao@golang.org>
diff --git a/webdav/file.go b/webdav/file.go
index 31b1e9d..6e3563e 100644
--- a/webdav/file.go
+++ b/webdav/file.go
@@ -702,10 +702,24 @@
}
_, copyErr := io.Copy(dstFile, srcFile)
+ var propsErr error
+ if s, ok := srcFile.(DeadPropsHolder); ok {
+ if d, ok := dstFile.(DeadPropsHolder); ok {
+ m := s.DeadProps()
+ props := make([]Property, 0, len(m))
+ for _, prop := range m {
+ props = append(props, prop)
+ }
+ _, propsErr = d.Patch([]Proppatch{{Props: props}})
+ }
+ }
closeErr := dstFile.Close()
if copyErr != nil {
return http.StatusInternalServerError, copyErr
}
+ if propsErr != nil {
+ return http.StatusInternalServerError, propsErr
+ }
if closeErr != nil {
return http.StatusInternalServerError, closeErr
}