summaryrefslogtreecommitdiff
path: root/internal/api/wellknown/hostmeta
diff options
context:
space:
mode:
Diffstat (limited to 'internal/api/wellknown/hostmeta')
-rw-r--r--internal/api/wellknown/hostmeta/hostmetaget.go27
1 files changed, 8 insertions, 19 deletions
diff --git a/internal/api/wellknown/hostmeta/hostmetaget.go b/internal/api/wellknown/hostmeta/hostmetaget.go
index c74a2e246..131e2ac58 100644
--- a/internal/api/wellknown/hostmeta/hostmetaget.go
+++ b/internal/api/wellknown/hostmeta/hostmetaget.go
@@ -18,8 +18,6 @@
package hostmeta
import (
- "bytes"
- "encoding/xml"
"net/http"
"github.com/gin-gonic/gin"
@@ -52,21 +50,12 @@ func (m *Module) HostMetaGETHandler(c *gin.Context) {
hostMeta := m.processor.Fedi().HostMetaGet()
- // this setup with a separate buffer we encode into is used because
- // xml.Marshal does not emit xml.Header by itself
- var buf bytes.Buffer
-
- // Preallocate buffer of reasonable length.
- buf.Grow(len(xml.Header) + 64)
-
- // No need to check for error on write to buffer.
- _, _ = buf.WriteString(xml.Header)
-
- // Encode host-meta as XML to in-memory buffer.
- if err := xml.NewEncoder(&buf).Encode(hostMeta); err != nil {
- apiutil.ErrorHandler(c, gtserror.NewErrorInternalError(err), m.processor.InstanceGetV1)
- return
- }
-
- c.Data(http.StatusOK, HostMetaContentType, buf.Bytes())
+ // Encode XML HTTP response.
+ apiutil.EncodeXMLResponse(
+ c.Writer,
+ c.Request,
+ http.StatusOK,
+ HostMetaContentType,
+ hostMeta,
+ )
}