errors.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package srtp
  2. import (
  3. "errors"
  4. "fmt"
  5. )
  6. var (
  7. errDuplicated = errors.New("duplicated packet")
  8. errShortSrtpMasterKey = errors.New("SRTP master key is not long enough")
  9. errShortSrtpMasterSalt = errors.New("SRTP master salt is not long enough")
  10. errNoSuchSRTPProfile = errors.New("no such SRTP Profile")
  11. errNonZeroKDRNotSupported = errors.New("indexOverKdr > 0 is not supported yet")
  12. errExporterWrongLabel = errors.New("exporter called with wrong label")
  13. errNoConfig = errors.New("no config provided")
  14. errNoConn = errors.New("no conn provided")
  15. errFailedToVerifyAuthTag = errors.New("failed to verify auth tag")
  16. errTooShortRTCP = errors.New("packet is too short to be rtcp packet")
  17. errPayloadDiffers = errors.New("payload differs")
  18. errStartedChannelUsedIncorrectly = errors.New("started channel used incorrectly, should only be closed")
  19. errBadIVLength = errors.New("bad iv length in xorBytesCTR")
  20. errStreamNotInited = errors.New("stream has not been inited, unable to close")
  21. errStreamAlreadyClosed = errors.New("stream is already closed")
  22. errStreamAlreadyInited = errors.New("stream is already inited")
  23. errFailedTypeAssertion = errors.New("failed to cast child")
  24. )
  25. type duplicatedError struct {
  26. Proto string // srtp or srtcp
  27. SSRC uint32
  28. Index uint32 // sequence number or index
  29. }
  30. func (e *duplicatedError) Error() string {
  31. return fmt.Sprintf("%s ssrc=%d index=%d: %v", e.Proto, e.SSRC, e.Index, errDuplicated)
  32. }
  33. func (e *duplicatedError) Unwrap() error {
  34. return errDuplicated
  35. }