summaryrefslogtreecommitdiff
path: root/vendor/github.com/pion/sctp/param_supported_extensions.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/pion/sctp/param_supported_extensions.go')
-rw-r--r--vendor/github.com/pion/sctp/param_supported_extensions.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/vendor/github.com/pion/sctp/param_supported_extensions.go b/vendor/github.com/pion/sctp/param_supported_extensions.go
new file mode 100644
index 0000000..2935524
--- /dev/null
+++ b/vendor/github.com/pion/sctp/param_supported_extensions.go
@@ -0,0 +1,29 @@
+package sctp
+
+type paramSupportedExtensions struct {
+ paramHeader
+ ChunkTypes []chunkType
+}
+
+func (s *paramSupportedExtensions) marshal() ([]byte, error) {
+ s.typ = supportedExt
+ s.raw = make([]byte, len(s.ChunkTypes))
+ for i, c := range s.ChunkTypes {
+ s.raw[i] = byte(c)
+ }
+
+ return s.paramHeader.marshal()
+}
+
+func (s *paramSupportedExtensions) unmarshal(raw []byte) (param, error) {
+ err := s.paramHeader.unmarshal(raw)
+ if err != nil {
+ return nil, err
+ }
+
+ for _, t := range s.raw {
+ s.ChunkTypes = append(s.ChunkTypes, chunkType(t))
+ }
+
+ return s, nil
+}