rewrite extraction of control attribute

This commit is contained in:
aler9
2021-01-19 14:28:46 +01:00
parent af60046380
commit 039d69ba42
3 changed files with 59 additions and 46 deletions

View File

@@ -170,15 +170,24 @@ func (ts *testServ) handleConn(conn *ServerConn) {
}
onSetup := func(req *base.Request, th *headers.Transport, trackID int) (*base.Response, error) {
reqPath, ok := req.URL.RTSPPath()
if !ok {
return &base.Response{
StatusCode: base.StatusBadRequest,
}, fmt.Errorf("invalid path (%s)", req.URL)
}
switch conn.State() {
case ServerConnStateInitial, ServerConnStatePrePlay:
pathAndQuery, ok := req.URL.RTSPPathAndQuery()
if !ok {
return &base.Response{
StatusCode: base.StatusBadRequest,
}, fmt.Errorf("invalid path (%s)", req.URL)
}
_, pathAndQuery, ok = base.PathSplitControlAttribute(pathAndQuery)
if !ok {
return &base.Response{
StatusCode: base.StatusBadRequest,
}, fmt.Errorf("invalid path (%s)", req.URL)
}
reqPath, _ := base.PathSplitQuery(pathAndQuery)
if reqPath != "teststream" {
return &base.Response{
StatusCode: base.StatusBadRequest,