diff --git a/internal/elements.go b/internal/elements.go index 173a1ae..b046cec 100644 --- a/internal/elements.go +++ b/internal/elements.go @@ -79,13 +79,13 @@ func (ms *Multistatus) Get(href string) (*Response, error) { // https://tools.ietf.org/html/rfc4918#section-14.24 type Response struct { - XMLName xml.Name `xml:"DAV: response"` - Hrefs []string `xml:"href"` - Propstats []Propstat `xml:"propstat,omitempty"` - ResponseDescription string `xml:"responsedescription,omitempty"` - Status *Status `xml:"status,omitempty"` - Error *RawXMLValue `xml:"error,omitempty"` - Location *Location `xml:"location,omitempty"` + XMLName xml.Name `xml:"DAV: response"` + Hrefs []string `xml:"href"` + Propstats []Propstat `xml:"propstat,omitempty"` + ResponseDescription string `xml:"responsedescription,omitempty"` + Status *Status `xml:"status,omitempty"` + Error *Error `xml:"error,omitempty"` + Location *Location `xml:"location,omitempty"` } func NewOKResponse(href string) *Response { @@ -158,11 +158,11 @@ type Location struct { // https://tools.ietf.org/html/rfc4918#section-14.22 type Propstat struct { - XMLName xml.Name `xml:"DAV: propstat"` - Prop Prop `xml:"prop"` - Status Status `xml:"status"` - ResponseDescription string `xml:"responsedescription,omitempty"` - Error *RawXMLValue `xml:"error,omitempty"` + XMLName xml.Name `xml:"DAV: propstat"` + Prop Prop `xml:"prop"` + Status Status `xml:"status"` + ResponseDescription string `xml:"responsedescription,omitempty"` + Error *Error `xml:"error,omitempty"` } // https://tools.ietf.org/html/rfc4918#section-14.18 @@ -264,3 +264,9 @@ type GetLastModified struct { XMLName xml.Name `xml:"DAV: getlastmodified"` LastModified Time `xml:",chardata"` } + +// https://tools.ietf.org/html/rfc4918#section-14.5 +type Error struct { + XMLName xml.Name `xml:"DAV: error"` + Raw []RawXMLValue `xml:",any"` +} diff --git a/internal/server.go b/internal/server.go index 0db957b..85c1b9a 100644 --- a/internal/server.go +++ b/internal/server.go @@ -98,7 +98,6 @@ func (h *Handler) handlePropfind(w http.ResponseWriter, r *http.Request) error { depth := DepthInfinity if s := r.Header.Get("Depth"); s != "" { - var err error depth, err = ParseDepth(s) if err != nil { return &HTTPError{http.StatusBadRequest, err}