1
0
Fork 0
mirror of https://github.com/binwiederhier/ntfy.git synced 2025-06-17 10:03:13 +02:00

UTF-8 headers

This commit is contained in:
binwiederhier 2023-04-21 18:45:27 -04:00
parent 91d2603fe0
commit cfa8d92af1
4 changed files with 33 additions and 5 deletions
server

View file

@ -843,10 +843,17 @@ func (s *Server) forwardPollRequest(v *visitor, m *message) {
func (s *Server) parsePublishParams(r *http.Request, m *message) (cache bool, firebase bool, email string, unifiedpush bool, err *errHTTP) {
cache = readBoolParam(r, true, "x-cache", "cache")
firebase = readBoolParam(r, true, "x-firebase", "firebase")
m.Title = readParam(r, "x-title", "title", "t")
m.Click = readParam(r, "x-click", "click")
icon := readParam(r, "x-icon", "icon")
filename := readParam(r, "x-filename", "filename", "file", "f")
title := readParam(r, "x-title", "title", "t")
if title != "" {
title, err := mimeDecoder.DecodeHeader(title)
if err != nil {
return false, false, "", false, errHTTPBadRequestInvalidMimeHeader.Wrap("invalid X-Title header: %s", err.Error())
}
m.Title = title
}
attach := readParam(r, "x-attach", "attach", "a")
if attach != "" || filename != "" {
m.Attachment = &attachment{}
@ -884,6 +891,10 @@ func (s *Server) parsePublishParams(r *http.Request, m *message) (cache bool, fi
}
messageStr := strings.ReplaceAll(readParam(r, "x-message", "message", "m"), "\\n", "\n")
if messageStr != "" {
messageStr, err := mimeDecoder.DecodeHeader(messageStr)
if err != nil {
return false, false, "", false, errHTTPBadRequestInvalidMimeHeader.Wrap("invalid X-Message header: %s", err.Error())
}
m.Message = messageStr
}
var e error