diff --git a/go.mod b/go.mod index 722700dc..c11fef4f 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.15 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-20210316101133-3a8c76e527e1 + github.com/aler9/gortsplib v0.0.0-20210316131127-50babb18c013 github.com/davecgh/go-spew v1.1.1 // indirect github.com/fsnotify/fsnotify v1.4.9 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 diff --git a/go.sum b/go.sum index 20e3d507..b510db65 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-20210316101133-3a8c76e527e1 h1:7+0qt2CMGB57Oft4fBrPyeOeiFHxMAybfMCo4aX2+qE= -github.com/aler9/gortsplib v0.0.0-20210316101133-3a8c76e527e1/go.mod h1:aj4kDzanb3JZ46sFywWShcsnqqXTLE/3PNjwDhQZGM0= +github.com/aler9/gortsplib v0.0.0-20210316131127-50babb18c013 h1:VseNrDPM+21Uhsfn1FhR3NHDQWH8uB4YNe5zHkH1xcc= +github.com/aler9/gortsplib v0.0.0-20210316131127-50babb18c013/go.mod h1:aj4kDzanb3JZ46sFywWShcsnqqXTLE/3PNjwDhQZGM0= github.com/aler9/rtmp v0.0.0-20210309202041-2d7177b7300d h1:LAX8pNvYpGgFpKdbPpEZWjNkHbmyvjMrT3vO7s7aaKU= github.com/aler9/rtmp v0.0.0-20210309202041-2d7177b7300d/go.mod h1:vzuE21rowz+lT1NGsWbreIvYulgBpCGnQyeTyFblUHc= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= diff --git a/internal/clientrtsp/client.go b/internal/clientrtsp/client.go index 0b1e03b0..581726a4 100644 --- a/internal/clientrtsp/client.go +++ b/internal/clientrtsp/client.go @@ -159,12 +159,12 @@ func (c *Client) run() { c.log(logger.Debug, "[s->c] %v", res) } - onDescribe := func(req *base.Request) (*base.Response, error) { + onDescribe := func(req *base.Request) (*base.Response, []byte, error) { reqPath, ok := req.URL.RTSPPath() if !ok { return &base.Response{ StatusCode: base.StatusBadRequest, - }, fmt.Errorf("invalid path (%s)", req.URL) + }, nil, fmt.Errorf("invalid path (%s)", req.URL) } resc := make(chan client.DescribeRes) @@ -174,7 +174,7 @@ func (c *Client) run() { if res.Err != nil { switch terr := res.Err.(type) { case client.ErrAuthNotCritical: - return terr.Response, nil + return terr.Response, nil, nil case client.ErrAuthCritical: // wait some seconds to stop brute force attacks @@ -182,17 +182,17 @@ func (c *Client) run() { case <-time.After(pauseAfterAuthError): case <-c.terminate: } - return terr.Response, errTerminated + return terr.Response, nil, errTerminated case client.ErrNoOnePublishing: return &base.Response{ StatusCode: base.StatusNotFound, - }, res.Err + }, nil, res.Err default: return &base.Response{ StatusCode: base.StatusBadRequest, - }, res.Err + }, nil, res.Err } } @@ -202,17 +202,12 @@ func (c *Client) run() { Header: base.Header{ "Location": base.HeaderValue{res.Redirect}, }, - }, nil + }, nil, nil } return &base.Response{ StatusCode: base.StatusOK, - Header: base.Header{ - "Content-Base": base.HeaderValue{req.URL.String() + "/"}, - "Content-Type": base.HeaderValue{"application/sdp"}, - }, - Body: res.SDP, - }, nil + }, res.SDP, nil } onAnnounce := func(req *base.Request, tracks gortsplib.Tracks) (*base.Response, error) {