mirror of
https://github.com/aler9/gortsplib
synced 2025-10-05 07:06:58 +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"
|
||||
}
|
||||
|
||||
// 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.
|
||||
type ErrServerTracksDifferentProtocols struct{}
|
||||
|
||||
|
@@ -605,8 +605,8 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
|
||||
}, liberrors.ErrServerTransportHeaderNoInterleavedIDs{}
|
||||
}
|
||||
|
||||
if (inTH.InterleavedIDs[0]+1) != inTH.InterleavedIDs[1] ||
|
||||
(inTH.InterleavedIDs[0]%2) != 0 {
|
||||
if (inTH.InterleavedIDs[0]%2) != 0 ||
|
||||
(inTH.InterleavedIDs[0]+1) != inTH.InterleavedIDs[1] {
|
||||
return &base.Response{
|
||||
StatusCode: base.StatusBadRequest,
|
||||
}, liberrors.ErrServerTransportHeaderInvalidInterleavedIDs{}
|
||||
@@ -615,7 +615,7 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
|
||||
if _, ok := ss.setuppedTracksByChannel[inTH.InterleavedIDs[0]]; ok {
|
||||
return &base.Response{
|
||||
StatusCode: base.StatusBadRequest,
|
||||
}, liberrors.ErrServerTransportHeaderInvalidInterleavedIDs{}
|
||||
}, liberrors.ErrServerTransportHeaderInterleavedIDsAlreadyUsed{}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user