diff --git a/go.mod b/go.mod index 18f27b65..12a0ce2c 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.16 require ( github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d // indirect - github.com/aler9/gortsplib v0.0.0-20211028163924-c056fd4fa3d4 + github.com/aler9/gortsplib v0.0.0-20211030115237-146b923b1e86 github.com/asticode/go-astits v1.10.0 github.com/fsnotify/fsnotify v1.4.9 github.com/gin-gonic/gin v1.7.2 diff --git a/go.sum b/go.sum index 19b6bafb..c85a0ad1 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,8 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafo github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/aler9/gortsplib v0.0.0-20211028163924-c056fd4fa3d4 h1:6QwPsE6/9q9rgPWXlzc/EIIf10+vzFVf9DEFaC3L5UI= -github.com/aler9/gortsplib v0.0.0-20211028163924-c056fd4fa3d4/go.mod h1:fyQrQyHo8QvdR/h357tkv1g36VesZlzEPsdAu2VrHHc= +github.com/aler9/gortsplib v0.0.0-20211030115237-146b923b1e86 h1:AZlReUgswHsQGIzz9w9Bc52U184kOqPOlfa3ReR5R+4= +github.com/aler9/gortsplib v0.0.0-20211030115237-146b923b1e86/go.mod h1:fyQrQyHo8QvdR/h357tkv1g36VesZlzEPsdAu2VrHHc= github.com/aler9/rtmp v0.0.0-20210403095203-3be4a5535927 h1:95mXJ5fUCYpBRdSOnLAQAdJHHKxxxJrVCiaqDi965YQ= github.com/aler9/rtmp v0.0.0-20210403095203-3be4a5535927/go.mod h1:vzuE21rowz+lT1NGsWbreIvYulgBpCGnQyeTyFblUHc= github.com/asticode/go-astikit v0.20.0 h1:+7N+J4E4lWx2QOkRdOf6DafWJMv6O4RRfgClwQokrH8= diff --git a/internal/core/rtsp_server.go b/internal/core/rtsp_server.go index 60b76105..5b5eae1b 100644 --- a/internal/core/rtsp_server.go +++ b/internal/core/rtsp_server.go @@ -162,17 +162,9 @@ func (s *rtspServer) close() { func (s *rtspServer) run() { defer s.wg.Done() - s.wg.Add(1) serverErr := make(chan error) go func() { - defer s.wg.Done() - - err := s.srv.Wait() - - select { - case serverErr <- err: - case <-s.ctx.Done(): - } + serverErr <- s.srv.Wait() }() outer: @@ -182,13 +174,13 @@ outer: break outer case <-s.ctx.Done(): + s.srv.Close() + <-serverErr break outer } s.ctxCancel() - s.srv.Close() - if s.metrics != nil { if !s.isTLS { s.metrics.onRTSPServerSet(nil)