From 553f5ff0d888471b55baf2fd6030d41cbc93a6bf Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Sat, 15 Apr 2023 12:51:15 +0300 Subject: [PATCH] Add timeout to RTSP client requests --- pkg/rtsp/client.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/rtsp/client.go b/pkg/rtsp/client.go index f040139b..d790e9bb 100644 --- a/pkg/rtsp/client.go +++ b/pkg/rtsp/client.go @@ -16,6 +16,8 @@ import ( "github.com/AlexxIT/go2rtc/pkg/tcp" ) +var Timeout = time.Second * 5 + func NewClient(uri string) *Conn { return &Conn{uri: uri} } @@ -93,6 +95,11 @@ func (c *Conn) Request(req *tcp.Request) error { // Do send Request and receive and process Response func (c *Conn) Do(req *tcp.Request) (*tcp.Response, error) { + // https://blog.cloudflare.com/the-complete-guide-to-golang-net-http-timeouts/ + if err := c.conn.SetDeadline(time.Now().Add(Timeout)); err != nil { + return nil, err + } + if err := c.Request(req); err != nil { return nil, err }