mirror of
https://github.com/aler9/gortsplib
synced 2025-10-05 15:16:51 +08:00
server: normalize errors
This commit is contained in:
@@ -65,14 +65,14 @@ func (e ErrServerUnhandledRequest) Error() string {
|
|||||||
return fmt.Sprintf("unhandled request (%v %v)", e.Req.Method, e.Req.URL)
|
return fmt.Sprintf("unhandled request (%v %v)", e.Req.Method, e.Req.URL)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrServerWrongState is an error that can be returned by a server.
|
// ErrServerInvalidState is an error that can be returned by a server.
|
||||||
type ErrServerWrongState struct {
|
type ErrServerInvalidState struct {
|
||||||
AllowedList []fmt.Stringer
|
AllowedList []fmt.Stringer
|
||||||
State fmt.Stringer
|
State fmt.Stringer
|
||||||
}
|
}
|
||||||
|
|
||||||
// Error implements the error interface.
|
// Error implements the error interface.
|
||||||
func (e ErrServerWrongState) Error() string {
|
func (e ErrServerInvalidState) Error() string {
|
||||||
return fmt.Sprintf("must be in state %v, while is in state %v",
|
return fmt.Sprintf("must be in state %v, while is in state %v",
|
||||||
e.AllowedList, e.State)
|
e.AllowedList, e.State)
|
||||||
}
|
}
|
||||||
@@ -141,14 +141,14 @@ func (e ErrServerTrackAlreadySetup) Error() string {
|
|||||||
return fmt.Sprintf("track %d has already been setup", e.TrackID)
|
return fmt.Sprintf("track %d has already been setup", e.TrackID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrServerTransportHeaderWrongMode is an error that can be returned by a server.
|
// ErrServerTransportHeaderInvalidMode is an error that can be returned by a server.
|
||||||
type ErrServerTransportHeaderWrongMode struct {
|
type ErrServerTransportHeaderInvalidMode struct {
|
||||||
Mode *headers.TransportMode
|
Mode *headers.TransportMode
|
||||||
}
|
}
|
||||||
|
|
||||||
// Error implements the error interface.
|
// Error implements the error interface.
|
||||||
func (e ErrServerTransportHeaderWrongMode) Error() string {
|
func (e ErrServerTransportHeaderInvalidMode) Error() string {
|
||||||
return fmt.Sprintf("transport header contains a wrong mode (%v)", e.Mode)
|
return fmt.Sprintf("transport header contains a invalid mode (%v)", e.Mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrServerTransportHeaderNoClientPorts is an error that can be returned by a server.
|
// ErrServerTransportHeaderNoClientPorts is an error that can be returned by a server.
|
||||||
@@ -167,15 +167,15 @@ func (e ErrServerTransportHeaderNoInterleavedIDs) Error() string {
|
|||||||
return "transport header does not contain interleaved IDs"
|
return "transport header does not contain interleaved IDs"
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrServerTransportHeaderWrongInterleavedIDs is an error that can be returned by a server.
|
// ErrServerTransportHeaderInvalidInterleavedIDs is an error that can be returned by a server.
|
||||||
type ErrServerTransportHeaderWrongInterleavedIDs struct {
|
type ErrServerTransportHeaderInvalidInterleavedIDs struct {
|
||||||
Expected [2]int
|
Expected [2]int
|
||||||
Value [2]int
|
Value [2]int
|
||||||
}
|
}
|
||||||
|
|
||||||
// Error implements the error interface.
|
// Error implements the error interface.
|
||||||
func (e ErrServerTransportHeaderWrongInterleavedIDs) Error() string {
|
func (e ErrServerTransportHeaderInvalidInterleavedIDs) Error() string {
|
||||||
return fmt.Sprintf("wrong interleaved IDs, expected %v, got %v", e.Expected, e.Value)
|
return fmt.Sprintf("invalid interleaved IDs, expected %v, got %v", e.Expected, e.Value)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrServerTracksDifferentProtocols is an error that can be returned by a server.
|
// ErrServerTracksDifferentProtocols is an error that can be returned by a server.
|
||||||
|
@@ -904,7 +904,7 @@ func TestServerPublish(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestServerPublishErrorWrongProtocol(t *testing.T) {
|
func TestServerPublishErrorInvalidProtocol(t *testing.T) {
|
||||||
s := &Server{
|
s := &Server{
|
||||||
Handler: &testServerHandler{
|
Handler: &testServerHandler{
|
||||||
onAnnounce: func(ctx *ServerHandlerOnAnnounceCtx) (*base.Response, error) {
|
onAnnounce: func(ctx *ServerHandlerOnAnnounceCtx) (*base.Response, error) {
|
||||||
|
@@ -495,7 +495,7 @@ func TestServerClose(t *testing.T) {
|
|||||||
s.Close()
|
s.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestServerErrorWrongUDPPorts(t *testing.T) {
|
func TestServerErrorInvalidUDPPorts(t *testing.T) {
|
||||||
t.Run("non consecutive", func(t *testing.T) {
|
t.Run("non consecutive", func(t *testing.T) {
|
||||||
s := &Server{
|
s := &Server{
|
||||||
UDPRTPAddress: "127.0.0.1:8006",
|
UDPRTPAddress: "127.0.0.1:8006",
|
||||||
|
@@ -212,7 +212,7 @@ func (ss *ServerSession) checkState(allowed map[ServerSessionState]struct{}) err
|
|||||||
allowedList[i] = a
|
allowedList[i] = a
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
return liberrors.ErrServerWrongState{AllowedList: allowedList, State: ss.state}
|
return liberrors.ErrServerInvalidState{AllowedList: allowedList, State: ss.state}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ss *ServerSession) run() {
|
func (ss *ServerSession) run() {
|
||||||
@@ -553,7 +553,7 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
|
|||||||
if inTH.Mode != nil && *inTH.Mode != headers.TransportModePlay {
|
if inTH.Mode != nil && *inTH.Mode != headers.TransportModePlay {
|
||||||
return &base.Response{
|
return &base.Response{
|
||||||
StatusCode: base.StatusBadRequest,
|
StatusCode: base.StatusBadRequest,
|
||||||
}, liberrors.ErrServerTransportHeaderWrongMode{Mode: inTH.Mode}
|
}, liberrors.ErrServerTransportHeaderInvalidMode{Mode: inTH.Mode}
|
||||||
}
|
}
|
||||||
|
|
||||||
default: // record
|
default: // record
|
||||||
@@ -566,7 +566,7 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
|
|||||||
if inTH.Mode == nil || *inTH.Mode != headers.TransportModeRecord {
|
if inTH.Mode == nil || *inTH.Mode != headers.TransportModeRecord {
|
||||||
return &base.Response{
|
return &base.Response{
|
||||||
StatusCode: base.StatusBadRequest,
|
StatusCode: base.StatusBadRequest,
|
||||||
}, liberrors.ErrServerTransportHeaderWrongMode{Mode: inTH.Mode}
|
}, liberrors.ErrServerTransportHeaderInvalidMode{Mode: inTH.Mode}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -600,7 +600,7 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
|
|||||||
inTH.InterleavedIDs[1] != (1+trackID*2) {
|
inTH.InterleavedIDs[1] != (1+trackID*2) {
|
||||||
return &base.Response{
|
return &base.Response{
|
||||||
StatusCode: base.StatusBadRequest,
|
StatusCode: base.StatusBadRequest,
|
||||||
}, liberrors.ErrServerTransportHeaderWrongInterleavedIDs{
|
}, liberrors.ErrServerTransportHeaderInvalidInterleavedIDs{
|
||||||
Expected: [2]int{(trackID * 2), (1 + trackID*2)}, Value: *inTH.InterleavedIDs,
|
Expected: [2]int{(trackID * 2), (1 + trackID*2)}, Value: *inTH.InterleavedIDs,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user