diff --git a/queue.go b/queue.go index 3e30268..e417997 100644 --- a/queue.go +++ b/queue.go @@ -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 } - } }