From 9dd12e301a2d704ed84932ed476abe46843bb95f Mon Sep 17 00:00:00 2001 From: MrMelon54 Date: Fri, 27 Sep 2024 00:36:52 +0100 Subject: [PATCH] Add error returning for missing error output paths Co-Authored-By: Captain ALM --- internal/elements.go | 3 ++- internal/server.go | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/elements.go b/internal/elements.go index f380573..0e13ba3 100644 --- a/internal/elements.go +++ b/internal/elements.go @@ -1,6 +1,7 @@ package internal import ( + "encoding/base64" "encoding/xml" "errors" "fmt" @@ -353,7 +354,7 @@ type Time time.Time func (t *Time) UnmarshalText(b []byte) error { tt, err := http.ParseTime(string(b)) if err != nil { - return err + return errors.New(err.Error() + " : time_data : " + base64.StdEncoding.EncodeToString(b)) } *t = Time(tt) return nil diff --git a/internal/server.go b/internal/server.go index f9d1f7a..2fe2e50 100644 --- a/internal/server.go +++ b/internal/server.go @@ -187,9 +187,8 @@ func NewPropFindResponse(path string, propfind *PropFind, props map[xml.Name]Pro code := http.StatusOK if err != nil { - // TODO: don't throw away error message here code = HTTPErrorFromError(err).Code - val = emptyVal + val = NewRawXMLElement(xmlName, []xml.Attr{{Name: xml.Name{Space: "ERR", Local: "Error"}, Value: err.Error()}}, nil) } if err := resp.EncodeProp(code, val); err != nil { @@ -210,8 +209,8 @@ func NewPropFindResponse(path string, propfind *PropFind, props map[xml.Name]Pro f, ok := props[xmlName] if ok { if v, err := f(&raw); err != nil { - // TODO: don't throw away error message here code = HTTPErrorFromError(err).Code + val = NewRawXMLElement(xmlName, []xml.Attr{{Name: xml.Name{Space: "ERR", Local: "Error"}, Value: err.Error()}}, nil) } else { code = http.StatusOK val = v