summaryrefslogtreecommitdiff
path: root/vendor/github.com/pion/srtp/v2/option.go
diff options
context:
space:
mode:
authorkali kaneko (leap communications) <kali@leap.se>2021-11-29 01:46:27 +0100
committerkali kaneko (leap communications) <kali@leap.se>2021-11-29 18:14:16 +0100
commit18f52af5be3a9a0c73811706108f790d65ee9c67 (patch)
treee13cbacb47d56919caa9c44a2b45dec1497a7860 /vendor/github.com/pion/srtp/v2/option.go
parentebcef0d57b6ecb5a40c6579f6be07182dd3033ba (diff)
[pkg] update vendor
Diffstat (limited to 'vendor/github.com/pion/srtp/v2/option.go')
-rw-r--r--vendor/github.com/pion/srtp/v2/option.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/vendor/github.com/pion/srtp/v2/option.go b/vendor/github.com/pion/srtp/v2/option.go
new file mode 100644
index 0000000..d6159f1
--- /dev/null
+++ b/vendor/github.com/pion/srtp/v2/option.go
@@ -0,0 +1,54 @@
+package srtp
+
+import (
+ "github.com/pion/transport/replaydetector"
+)
+
+// ContextOption represents option of Context using the functional options pattern.
+type ContextOption func(*Context) error
+
+// SRTPReplayProtection sets SRTP replay protection window size.
+func SRTPReplayProtection(windowSize uint) ContextOption { // nolint:golint
+ return func(c *Context) error {
+ c.newSRTPReplayDetector = func() replaydetector.ReplayDetector {
+ return replaydetector.WithWrap(windowSize, maxSequenceNumber)
+ }
+ return nil
+ }
+}
+
+// SRTCPReplayProtection sets SRTCP replay protection window size.
+func SRTCPReplayProtection(windowSize uint) ContextOption {
+ return func(c *Context) error {
+ c.newSRTCPReplayDetector = func() replaydetector.ReplayDetector {
+ return replaydetector.WithWrap(windowSize, maxSRTCPIndex)
+ }
+ return nil
+ }
+}
+
+// SRTPNoReplayProtection disables SRTP replay protection.
+func SRTPNoReplayProtection() ContextOption { // nolint:golint
+ return func(c *Context) error {
+ c.newSRTPReplayDetector = func() replaydetector.ReplayDetector {
+ return &nopReplayDetector{}
+ }
+ return nil
+ }
+}
+
+// SRTCPNoReplayProtection disables SRTCP replay protection.
+func SRTCPNoReplayProtection() ContextOption {
+ return func(c *Context) error {
+ c.newSRTCPReplayDetector = func() replaydetector.ReplayDetector {
+ return &nopReplayDetector{}
+ }
+ return nil
+ }
+}
+
+type nopReplayDetector struct{}
+
+func (s *nopReplayDetector) Check(uint64) (func(), bool) {
+ return func() {}, true
+}