From 0840425ed2063dbd3899ee97843bb6eaf8cdf251 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Wed, 25 Aug 2021 09:47:12 +0200 Subject: [PATCH] server: return specific error message in case interleaved IDs are in use --- pkg/liberrors/server.go | 8 ++++++++ serversession.go | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pkg/liberrors/server.go b/pkg/liberrors/server.go index 0996c9a7..24e0481e 100644 --- a/pkg/liberrors/server.go +++ b/pkg/liberrors/server.go @@ -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{} diff --git a/serversession.go b/serversession.go index a1e60d8a..f599545b 100644 --- a/serversession.go +++ b/serversession.go @@ -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{} } }