Header cleanup for clients, send actual FLAC bytes

This commit is contained in:
DataHoarder 2022-07-14 23:21:58 +02:00
parent 0c0fc0b3f8
commit 02810c1bfe
Signed by: DataHoarder
SSH key fingerprint: SHA256:OLTRf6Fl87G52SiR7sWLGNzlJt4WOX+tfI2yxo0z7xk

View file

@ -439,13 +439,16 @@ func (p *packetStreamFrame) Encode() []byte {
}
func (q *Queue) HandleRadioRequest(writer http.ResponseWriter, request *http.Request) {
writer.Header().Set("Server", "MeteorLight/radio")
writer.Header().Set("Connection", "close")
writer.Header().Set("X-Content-Type-Options", "nosniff")
writer.Header().Set("Access-Control-Allow-Origin", "*")
writer.Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Icy-Metadata")
writer.Header().Set("Accept-Ranges", "none")
writer.Header().Set("Connection", "close")
if strings.HasSuffix(request.URL.Path, "mounts") {
writer.Header().Set("Server", "MeteorLight/radio")
writer.Header().Set("Accept-Ranges", "none")
writer.Header().Set("Connection", "close")
writer.Header().Set("Content-Type", "application/json; charset=utf-8")
writer.Header().Set("Access-Control-Allow-Origin", "*")
writer.Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Icy-Metadata")
writer.Header().Set("Access-Control-Expose-Headers", "Accept-Ranges, Server, Content-Type")
type mountData struct {
@ -481,14 +484,8 @@ func (q *Queue) HandleRadioRequest(writer http.ResponseWriter, request *http.Req
for _, mount := range q.mounts {
if strings.HasSuffix(request.URL.Path, mount.Mount) {
writer.Header().Set("Server", "MeteorLight/radio")
writer.Header().Set("Content-Type", mount.MimeType)
writer.Header().Set("Accept-Ranges", "none")
writer.Header().Set("Connection", "close")
writer.Header().Set("Cache-Control", "no-store, max-age=604800")
writer.Header().Set("X-Content-Type-Options", "nosniff")
writer.Header().Set("Access-Control-Allow-Origin", "*")
writer.Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Icy-Metadata")
writer.Header().Set("Access-Control-Expose-Headers", "Accept-Ranges, Server, Content-Type, Icy-MetaInt")
writer.Header().Set("Vary", "*")
@ -510,7 +507,7 @@ func (q *Queue) HandleRadioRequest(writer http.ResponseWriter, request *http.Req
writer.Header().Set("Content-Range", fmt.Sprintf("bytes 0-1/%d", safariLargeFileValue)) //64 TiB max fake size
writer.Header().Set("Content-Length", "2")
writer.WriteHeader(http.StatusPartialContent)
writer.Write([]byte{'\x00', '\x00'})
writer.Write([]byte{'f', 'L'})
return
} else if rangeHeader == fmt.Sprintf("bytes=0-%d", safariLargeFileValue-1) {
//second request, serve status 200 to keep retries to a minimum
@ -523,7 +520,6 @@ func (q *Queue) HandleRadioRequest(writer http.ResponseWriter, request *http.Req
writer.WriteHeader(http.StatusRequestedRangeNotSatisfiable)
return
}
}
}