webdav: delete the PropSystem and MemPS types.
Change-Id: I569993723942f71599411a25ff31e97c1bc8875c
Reviewed-on: https://go-review.googlesource.com/10305
Reviewed-by: Robert Stepanek <robert.stepanek@gmail.com>
Reviewed-by: Nigel Tao <nigeltao@golang.org>
diff --git a/webdav/webdav.go b/webdav/webdav.go
index 637e0e0..334abef 100644
--- a/webdav/webdav.go
+++ b/webdav/webdav.go
@@ -5,8 +5,6 @@
// Package webdav etc etc TODO.
package webdav // import "golang.org/x/net/webdav"
-// TODO: ETag, properties.
-
import (
"encoding/xml"
"errors"
@@ -45,8 +43,6 @@
FileSystem FileSystem
// LockSystem is the lock management system.
LockSystem LockSystem
- // PropSystem is the property management system.
- PropSystem PropSystem
// Logger is an optional error logger. If non-nil, it will be called
// for all HTTP requests.
Logger func(*http.Request, error)
@@ -58,8 +54,6 @@
status, err = http.StatusInternalServerError, errNoFileSystem
} else if h.LockSystem == nil {
status, err = http.StatusInternalServerError, errNoLockSystem
- } else if h.PropSystem == nil {
- status, err = http.StatusInternalServerError, errNoPropSystem
} else {
switch r.Method {
case "OPTIONS":
@@ -209,7 +203,7 @@
if err != nil {
return http.StatusNotFound, err
}
- pstats, err := h.PropSystem.Find(r.URL.Path, []xml.Name{
+ pstats, err := props(h.FileSystem, h.LockSystem, r.URL.Path, []xml.Name{
{Space: "DAV:", Local: "getetag"},
{Space: "DAV:", Local: "getcontenttype"},
})
@@ -264,7 +258,7 @@
if closeErr != nil {
return http.StatusMethodNotAllowed, closeErr
}
- pstats, err := h.PropSystem.Find(r.URL.Path, []xml.Name{
+ pstats, err := props(h.FileSystem, h.LockSystem, r.URL.Path, []xml.Name{
{Space: "DAV:", Local: "getetag"},
})
if err != nil {
@@ -502,19 +496,19 @@
}
var pstats []Propstat
if pf.Propname != nil {
- propnames, err := h.PropSystem.Propnames(path)
+ pnames, err := propnames(h.FileSystem, h.LockSystem, path)
if err != nil {
return err
}
pstat := Propstat{Status: http.StatusOK}
- for _, xmlname := range propnames {
+ for _, xmlname := range pnames {
pstat.Props = append(pstat.Props, Property{XMLName: xmlname})
}
pstats = append(pstats, pstat)
} else if pf.Allprop != nil {
- pstats, err = h.PropSystem.Allprop(path, pf.Prop)
+ pstats, err = allprop(h.FileSystem, h.LockSystem, path, pf.Prop)
} else {
- pstats, err = h.PropSystem.Find(path, pf.Prop)
+ pstats, err = props(h.FileSystem, h.LockSystem, path, pf.Prop)
}
if err != nil {
return err
@@ -550,7 +544,7 @@
if err != nil {
return status, err
}
- pstats, err := h.PropSystem.Patch(r.URL.Path, patches)
+ pstats, err := patch(h.FileSystem, h.LockSystem, r.URL.Path, patches)
if err != nil {
return http.StatusInternalServerError, err
}
@@ -671,7 +665,6 @@
errInvalidTimeout = errors.New("webdav: invalid timeout")
errNoFileSystem = errors.New("webdav: no file system")
errNoLockSystem = errors.New("webdav: no lock system")
- errNoPropSystem = errors.New("webdav: no property system")
errNotADirectory = errors.New("webdav: not a directory")
errRecursionTooDeep = errors.New("webdav: recursion too deep")
errUnsupportedLockInfo = errors.New("webdav: unsupported lock info")