From 9486f4f32dbca4abc93de8f8ac249ffc7425ef82 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Sat, 14 Aug 2021 11:15:59 +0200 Subject: [PATCH] hls: reply with 404 to invalid requests --- internal/core/hls_remuxer.go | 5 +++++ internal/core/hls_server_test.go | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/internal/core/hls_remuxer.go b/internal/core/hls_remuxer.go index 0b490ff8..61b2fbb6 100644 --- a/internal/core/hls_remuxer.go +++ b/internal/core/hls_remuxer.go @@ -217,6 +217,11 @@ outer: r.ctxCancel() + for _, req := range r.requests { + req.W.WriteHeader(http.StatusNotFound) + req.Res <- nil + } + r.parent.OnRemuxerClose(r) } diff --git a/internal/core/hls_server_test.go b/internal/core/hls_server_test.go index 898df3db..27d9c326 100644 --- a/internal/core/hls_server_test.go +++ b/internal/core/hls_server_test.go @@ -1,12 +1,27 @@ package core import ( + "net/http" "testing" "time" "github.com/stretchr/testify/require" ) +func TestHLSServerNotFound(t *testing.T) { + p, ok := newInstance("") + require.Equal(t, true, ok) + defer p.close() + + req, err := http.NewRequest(http.MethodGet, "http://localhost:8888/stream/", nil) + require.NoError(t, err) + + res, err := http.DefaultClient.Do(req) + require.NoError(t, err) + defer res.Body.Close() + require.Equal(t, http.StatusNotFound, res.StatusCode) +} + func TestHLSServerRead(t *testing.T) { p, ok := newInstance("") require.Equal(t, true, ok)