mirror of
https://github.com/aler9/gortsplib
synced 2025-10-04 14:52:46 +08:00
266 lines
8.2 KiB
Go
266 lines
8.2 KiB
Go
package liberrors
|
|
|
|
import (
|
|
"fmt"
|
|
"net"
|
|
|
|
"github.com/aler9/gortsplib/pkg/base"
|
|
"github.com/aler9/gortsplib/pkg/headers"
|
|
)
|
|
|
|
// ErrServerTerminated is an error that can be returned by a server.
|
|
type ErrServerTerminated struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerTerminated) Error() string {
|
|
return "terminated"
|
|
}
|
|
|
|
// ErrServerSessionNotFound is an error that can be returned by a server.
|
|
type ErrServerSessionNotFound struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerSessionNotFound) Error() string {
|
|
return "session not found"
|
|
}
|
|
|
|
// ErrServerNoUDPPacketsInAWhile is an error that can be returned by a server.
|
|
type ErrServerNoUDPPacketsInAWhile struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerNoUDPPacketsInAWhile) Error() string {
|
|
return "no UDP packets received in a while"
|
|
}
|
|
|
|
// ErrServerNoRTSPRequestsInAWhile is an error that can be returned by a server.
|
|
type ErrServerNoRTSPRequestsInAWhile struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerNoRTSPRequestsInAWhile) Error() string {
|
|
return "no RTSP requests received in a while"
|
|
}
|
|
|
|
// ErrServerCSeqMissing is an error that can be returned by a server.
|
|
type ErrServerCSeqMissing struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerCSeqMissing) Error() string {
|
|
return "CSeq is missing"
|
|
}
|
|
|
|
// ErrServerUnhandledRequest is an error that can be returned by a server.
|
|
type ErrServerUnhandledRequest struct {
|
|
Request *base.Request
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerUnhandledRequest) Error() string {
|
|
return fmt.Sprintf("unhandled request: %v %v", e.Request.Method, e.Request.URL)
|
|
}
|
|
|
|
// ErrServerInvalidState is an error that can be returned by a server.
|
|
type ErrServerInvalidState struct {
|
|
AllowedList []fmt.Stringer
|
|
State fmt.Stringer
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerInvalidState) Error() string {
|
|
return fmt.Sprintf("must be in state %v, while is in state %v",
|
|
e.AllowedList, e.State)
|
|
}
|
|
|
|
// ErrServerInvalidPath is an error that can be returned by a server.
|
|
type ErrServerInvalidPath struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerInvalidPath) Error() string {
|
|
return "invalid path"
|
|
}
|
|
|
|
// ErrServerContentTypeMissing is an error that can be returned by a server.
|
|
type ErrServerContentTypeMissing struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerContentTypeMissing) Error() string {
|
|
return "Content-Type header is missing"
|
|
}
|
|
|
|
// ErrServerContentTypeUnsupported is an error that can be returned by a server.
|
|
type ErrServerContentTypeUnsupported struct {
|
|
CT base.HeaderValue
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerContentTypeUnsupported) Error() string {
|
|
return fmt.Sprintf("unsupported Content-Type header '%v'", e.CT)
|
|
}
|
|
|
|
// ErrServerSDPInvalid is an error that can be returned by a server.
|
|
type ErrServerSDPInvalid struct {
|
|
Err error
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerSDPInvalid) Error() string {
|
|
return fmt.Sprintf("invalid SDP: %v", e.Err)
|
|
}
|
|
|
|
// ErrServerTransportHeaderInvalid is an error that can be returned by a server.
|
|
type ErrServerTransportHeaderInvalid struct {
|
|
Err error
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerTransportHeaderInvalid) Error() string {
|
|
return fmt.Sprintf("invalid transport header: %v", e.Err)
|
|
}
|
|
|
|
// ErrServerTrackAlreadySetup is an error that can be returned by a server.
|
|
type ErrServerTrackAlreadySetup struct {
|
|
TrackID int
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerTrackAlreadySetup) Error() string {
|
|
return fmt.Sprintf("track %d has already been setup", e.TrackID)
|
|
}
|
|
|
|
// ErrServerTransportHeaderInvalidMode is an error that can be returned by a server.
|
|
type ErrServerTransportHeaderInvalidMode struct {
|
|
Mode headers.TransportMode
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerTransportHeaderInvalidMode) Error() string {
|
|
return fmt.Sprintf("transport header contains a invalid mode (%v)", e.Mode)
|
|
}
|
|
|
|
// ErrServerTransportHeaderNoClientPorts is an error that can be returned by a server.
|
|
type ErrServerTransportHeaderNoClientPorts struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerTransportHeaderNoClientPorts) Error() string {
|
|
return "transport header does not contain client ports"
|
|
}
|
|
|
|
// ErrServerTransportHeaderNoInterleavedIDs is an error that can be returned by a server.
|
|
type ErrServerTransportHeaderNoInterleavedIDs struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerTransportHeaderNoInterleavedIDs) Error() string {
|
|
return "transport header does not contain interleaved IDs"
|
|
}
|
|
|
|
// ErrServerTransportHeaderInvalidInterleavedIDs is an error that can be returned by a server.
|
|
type ErrServerTransportHeaderInvalidInterleavedIDs struct{}
|
|
|
|
// Error implements the error interface.
|
|
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{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerTracksDifferentProtocols) Error() string {
|
|
return "can't setup tracks with different protocols"
|
|
}
|
|
|
|
// ErrServerNoTracksSetup is an error that can be returned by a server.
|
|
type ErrServerNoTracksSetup struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerNoTracksSetup) Error() string {
|
|
return "no tracks have been setup"
|
|
}
|
|
|
|
// ErrServerNotAllAnnouncedTracksSetup is an error that can be returned by a server.
|
|
type ErrServerNotAllAnnouncedTracksSetup struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerNotAllAnnouncedTracksSetup) Error() string {
|
|
return "not all announced tracks have been setup"
|
|
}
|
|
|
|
// ErrServerLinkedToOtherSession is an error that can be returned by a server.
|
|
type ErrServerLinkedToOtherSession struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerLinkedToOtherSession) Error() string {
|
|
return "connection is linked to another session"
|
|
}
|
|
|
|
// ErrServerSessionTeardown is an error that can be returned by a server.
|
|
type ErrServerSessionTeardown struct {
|
|
Author net.Addr
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerSessionTeardown) Error() string {
|
|
return fmt.Sprintf("teared down by %v", e.Author)
|
|
}
|
|
|
|
// ErrServerSessionLinkedToOtherConn is an error that can be returned by a server.
|
|
type ErrServerSessionLinkedToOtherConn struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerSessionLinkedToOtherConn) Error() string {
|
|
return "session is linked to another connection"
|
|
}
|
|
|
|
// ErrServerInvalidSession is an error that can be returned by a server.
|
|
type ErrServerInvalidSession struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerInvalidSession) Error() string {
|
|
return "invalid session"
|
|
}
|
|
|
|
// ErrServerPathHasChanged is an error that can be returned by a server.
|
|
type ErrServerPathHasChanged struct {
|
|
Prev string
|
|
Cur string
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerPathHasChanged) Error() string {
|
|
return fmt.Sprintf("path has changed, was '%s', now is '%s'", e.Prev, e.Cur)
|
|
}
|
|
|
|
// ErrServerCannotUseSessionCreatedByOtherIP is an error that can be returned by a server.
|
|
type ErrServerCannotUseSessionCreatedByOtherIP struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerCannotUseSessionCreatedByOtherIP) Error() string {
|
|
return "cannot use a session created with a different IP"
|
|
}
|
|
|
|
// ErrServerUDPPortsAlreadyInUse is an error that can be returned by a server.
|
|
type ErrServerUDPPortsAlreadyInUse struct {
|
|
Port int
|
|
}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerUDPPortsAlreadyInUse) Error() string {
|
|
return fmt.Sprintf("UDP ports %d and %d are already in use by another reader",
|
|
e.Port, e.Port+1)
|
|
}
|
|
|
|
// ErrServerSessionNotInUse is an error that can be returned by a server.
|
|
type ErrServerSessionNotInUse struct{}
|
|
|
|
// Error implements the error interface.
|
|
func (e ErrServerSessionNotInUse) Error() string {
|
|
return "not in use"
|
|
}
|