diff --git a/go.mod b/go.mod index 01d3ff58..dc63350c 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.17 require ( code.cloudfoundry.org/bytefmt v0.0.0-20211005130812-5bb3c17173e5 github.com/abema/go-mp4 v0.7.2 - github.com/aler9/gortsplib v0.0.0-20220603103218-aaa44f4fae99 + github.com/aler9/gortsplib v0.0.0-20220604232719-2fa3148a2751 github.com/asticode/go-astits v1.10.1-0.20220319093903-4abe66a9b757 github.com/fsnotify/fsnotify v1.4.9 github.com/gin-gonic/gin v1.7.2 diff --git a/go.sum b/go.sum index a2a89294..29264810 100644 --- a/go.sum +++ b/go.sum @@ -6,8 +6,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-20220603103218-aaa44f4fae99 h1:k+SHMpSqH91+T/s3LODpNR/flWEZ5j9lPXx9y/awe6Q= -github.com/aler9/gortsplib v0.0.0-20220603103218-aaa44f4fae99/go.mod h1:i1e4CEs42IrbidMUNTSNOKmeGPCOHVX9P3BvPxzyMtI= +github.com/aler9/gortsplib v0.0.0-20220604232719-2fa3148a2751 h1:t17XcHHAn4BmKQT1/re5xsGpJC48UJJtgv6PAlNXkcE= +github.com/aler9/gortsplib v0.0.0-20220604232719-2fa3148a2751/go.mod h1:i1e4CEs42IrbidMUNTSNOKmeGPCOHVX9P3BvPxzyMtI= 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/aler9/writerseeker v0.0.0-20220601075008-6f0e685b9c82 h1:9WgSzBLo3a9ToSVV7sRTBYZ1GGOZUpq4+5H3SN0UZq4= diff --git a/internal/conf/path.go b/internal/conf/path.go index ae6b3575..e34ed409 100644 --- a/internal/conf/path.go +++ b/internal/conf/path.go @@ -3,12 +3,12 @@ package conf import ( "encoding/json" "fmt" - "net/url" + gourl "net/url" "regexp" "strings" "time" - "github.com/aler9/gortsplib/pkg/base" + "github.com/aler9/gortsplib/pkg/url" ) var rePathName = regexp.MustCompile(`^[0-9a-zA-Z_\-/\.~]+$`) @@ -105,7 +105,7 @@ func (pconf *PathConf) checkAndFillMissing(conf *Conf, name string) error { return fmt.Errorf("a path with a regular expression (or path 'all') cannot have a RTSP source; use another path") } - _, err := base.ParseURL(pconf.Source) + _, err := url.Parse(pconf.Source) if err != nil { return fmt.Errorf("'%s' is not a valid RTSP URL", pconf.Source) } @@ -115,7 +115,7 @@ func (pconf *PathConf) checkAndFillMissing(conf *Conf, name string) error { return fmt.Errorf("a path with a regular expression (or path 'all') cannot have a RTMP source; use another path") } - u, err := url.Parse(pconf.Source) + u, err := gourl.Parse(pconf.Source) if err != nil { return fmt.Errorf("'%s' is not a valid RTMP URL", pconf.Source) } @@ -138,7 +138,7 @@ func (pconf *PathConf) checkAndFillMissing(conf *Conf, name string) error { return fmt.Errorf("a path with a regular expression (or path 'all') cannot have a HLS source; use another path") } - u, err := url.Parse(pconf.Source) + u, err := gourl.Parse(pconf.Source) if err != nil { return fmt.Errorf("'%s' is not a valid HLS URL", pconf.Source) } @@ -160,7 +160,7 @@ func (pconf *PathConf) checkAndFillMissing(conf *Conf, name string) error { return fmt.Errorf("source redirect must be filled") } - _, err := base.ParseURL(pconf.SourceRedirect) + _, err := url.Parse(pconf.SourceRedirect) if err != nil { return fmt.Errorf("'%s' is not a valid RTSP URL", pconf.SourceRedirect) } @@ -190,7 +190,7 @@ func (pconf *PathConf) checkAndFillMissing(conf *Conf, name string) error { return fmt.Errorf("'%s': %s", pconf.Fallback, err) } } else { - _, err := base.ParseURL(pconf.Fallback) + _, err := url.Parse(pconf.Fallback) if err != nil { return fmt.Errorf("'%s' is not a valid RTSP URL", pconf.Fallback) } diff --git a/internal/core/core_test.go b/internal/core/core_test.go index 076b69f7..3785e449 100644 --- a/internal/core/core_test.go +++ b/internal/core/core_test.go @@ -15,6 +15,7 @@ import ( "github.com/aler9/gortsplib" "github.com/aler9/gortsplib/pkg/base" "github.com/aler9/gortsplib/pkg/headers" + "github.com/aler9/gortsplib/pkg/url" "github.com/stretchr/testify/require" ) @@ -168,7 +169,7 @@ func TestCorePathAutoDeletion(t *testing.T) { br := bufio.NewReader(conn) if ca == "describe" { - u, err := base.ParseURL("rtsp://localhost:8554/mypath") + u, err := url.Parse("rtsp://localhost:8554/mypath") require.NoError(t, err) byts, _ := base.Request{ @@ -186,7 +187,7 @@ func TestCorePathAutoDeletion(t *testing.T) { require.NoError(t, err) require.Equal(t, base.StatusNotFound, res.StatusCode) } else { - u, err := base.ParseURL("rtsp://localhost:8554/mypath/trackID=0") + u, err := url.Parse("rtsp://localhost:8554/mypath/trackID=0") require.NoError(t, err) byts, _ := base.Request{ @@ -304,7 +305,7 @@ func main() { br := bufio.NewReader(conn) if ca == "describe" || ca == "describe and setup" { - u, err := base.ParseURL("rtsp://localhost:8554/ondemand") + u, err := url.Parse("rtsp://localhost:8554/ondemand") require.NoError(t, err) byts, _ := base.Request{ @@ -324,7 +325,7 @@ func main() { } if ca == "setup" || ca == "describe and setup" { - u, err := base.ParseURL("rtsp://localhost:8554/ondemand/trackID=0") + u, err := url.Parse("rtsp://localhost:8554/ondemand/trackID=0") require.NoError(t, err) byts, _ := base.Request{ diff --git a/internal/core/path.go b/internal/core/path.go index 477490a0..541b1ae6 100644 --- a/internal/core/path.go +++ b/internal/core/path.go @@ -11,6 +11,7 @@ import ( "github.com/aler9/gortsplib" "github.com/aler9/gortsplib/pkg/base" + "github.com/aler9/gortsplib/pkg/url" "github.com/aler9/rtsp-simple-server/internal/conf" "github.com/aler9/rtsp-simple-server/internal/externalcmd" @@ -119,7 +120,7 @@ type pathDescribeRes struct { type pathDescribeReq struct { pathName string - url *base.URL + url *url.URL authenticate authenticateFunc res chan pathDescribeRes } @@ -781,7 +782,7 @@ func (pa *path) handleDescribe(req pathDescribeReq) { if pa.conf.Fallback != "" { fallbackURL := func() string { if strings.HasPrefix(pa.conf.Fallback, "/") { - ur := base.URL{ + ur := url.URL{ Scheme: req.url.Scheme, User: req.url.User, Host: req.url.Host, diff --git a/internal/core/rtsp_source.go b/internal/core/rtsp_source.go index 5a8effbc..c2ec8fdc 100644 --- a/internal/core/rtsp_source.go +++ b/internal/core/rtsp_source.go @@ -13,6 +13,7 @@ import ( "github.com/aler9/gortsplib" "github.com/aler9/gortsplib/pkg/base" + "github.com/aler9/gortsplib/pkg/url" "github.com/aler9/rtsp-simple-server/internal/conf" "github.com/aler9/rtsp-simple-server/internal/logger" ) @@ -151,7 +152,7 @@ func (s *rtspSource) runInner() bool { }, } - u, err := base.ParseURL(s.ur) + u, err := url.Parse(s.ur) if err != nil { s.log(logger.Info, "ERR: %s", err) return true diff --git a/internal/core/rtsp_source_test.go b/internal/core/rtsp_source_test.go index 41578797..a385e5d5 100644 --- a/internal/core/rtsp_source_test.go +++ b/internal/core/rtsp_source_test.go @@ -10,6 +10,7 @@ import ( "github.com/aler9/gortsplib/pkg/auth" "github.com/aler9/gortsplib/pkg/base" "github.com/aler9/gortsplib/pkg/rtph264" + "github.com/aler9/gortsplib/pkg/url" "github.com/pion/rtp" "github.com/stretchr/testify/require" ) @@ -274,7 +275,7 @@ func TestRTSPSourceDynamicH264Params(t *testing.T) { func() { c := gortsplib.Client{} - u, err := base.ParseURL("rtsp://127.0.0.1:8554/proxied") + u, err := url.Parse("rtsp://127.0.0.1:8554/proxied") require.NoError(t, err) err = c.Start(u.Scheme, u.Host) @@ -303,7 +304,7 @@ func TestRTSPSourceDynamicH264Params(t *testing.T) { func() { c := gortsplib.Client{} - u, err := base.ParseURL("rtsp://127.0.0.1:8554/proxied") + u, err := url.Parse("rtsp://127.0.0.1:8554/proxied") require.NoError(t, err) err = c.Start(u.Scheme, u.Host)