mirror of
https://github.com/aler9/gortsplib
synced 2025-10-05 15:16:51 +08:00
server: return specific error message in case interleaved IDs are in use
This commit is contained in:
@@ -175,6 +175,14 @@ func (e ErrServerTransportHeaderInvalidInterleavedIDs) Error() string {
|
|||||||
return "invalid interleaved IDs"
|
return "invalid interleaved IDs"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ErrServerTransportHeaderInterleavedIDsAlreadyUsed is an error that can be returned by a server.
|
||||||
|
type ErrServerTransportHeaderInterleavedIDsAlreadyUsed struct{}
|
||||||
|
|
||||||
|
// Error implements the error interface.
|
||||||
|
func (e ErrServerTransportHeaderInterleavedIDsAlreadyUsed) Error() string {
|
||||||
|
return "interleaved IDs already used"
|
||||||
|
}
|
||||||
|
|
||||||
// ErrServerTracksDifferentProtocols is an error that can be returned by a server.
|
// ErrServerTracksDifferentProtocols is an error that can be returned by a server.
|
||||||
type ErrServerTracksDifferentProtocols struct{}
|
type ErrServerTracksDifferentProtocols struct{}
|
||||||
|
|
||||||
|
@@ -605,8 +605,8 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
|
|||||||
}, liberrors.ErrServerTransportHeaderNoInterleavedIDs{}
|
}, liberrors.ErrServerTransportHeaderNoInterleavedIDs{}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inTH.InterleavedIDs[0]+1) != inTH.InterleavedIDs[1] ||
|
if (inTH.InterleavedIDs[0]%2) != 0 ||
|
||||||
(inTH.InterleavedIDs[0]%2) != 0 {
|
(inTH.InterleavedIDs[0]+1) != inTH.InterleavedIDs[1] {
|
||||||
return &base.Response{
|
return &base.Response{
|
||||||
StatusCode: base.StatusBadRequest,
|
StatusCode: base.StatusBadRequest,
|
||||||
}, liberrors.ErrServerTransportHeaderInvalidInterleavedIDs{}
|
}, liberrors.ErrServerTransportHeaderInvalidInterleavedIDs{}
|
||||||
@@ -615,7 +615,7 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
|
|||||||
if _, ok := ss.setuppedTracksByChannel[inTH.InterleavedIDs[0]]; ok {
|
if _, ok := ss.setuppedTracksByChannel[inTH.InterleavedIDs[0]]; ok {
|
||||||
return &base.Response{
|
return &base.Response{
|
||||||
StatusCode: base.StatusBadRequest,
|
StatusCode: base.StatusBadRequest,
|
||||||
}, liberrors.ErrServerTransportHeaderInvalidInterleavedIDs{}
|
}, liberrors.ErrServerTransportHeaderInterleavedIDsAlreadyUsed{}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user