blob: 08e46d1f9a5b6fa3ed94cf91b4118b9c44ecd2a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package sctp
import (
"github.com/pkg/errors"
)
type param interface {
marshal() ([]byte, error)
length() int
}
func buildParam(t paramType, rawParam []byte) (param, error) {
switch t {
case forwardTSNSupp:
return (¶mForwardTSNSupported{}).unmarshal(rawParam)
case supportedExt:
return (¶mSupportedExtensions{}).unmarshal(rawParam)
case random:
return (¶mRandom{}).unmarshal(rawParam)
case reqHMACAlgo:
return (¶mRequestedHMACAlgorithm{}).unmarshal(rawParam)
case chunkList:
return (¶mChunkList{}).unmarshal(rawParam)
case stateCookie:
return (¶mStateCookie{}).unmarshal(rawParam)
case heartbeatInfo:
return (¶mHeartbeatInfo{}).unmarshal(rawParam)
case outSSNResetReq:
return (¶mOutgoingResetRequest{}).unmarshal(rawParam)
case reconfigResp:
return (¶mReconfigResponse{}).unmarshal(rawParam)
default:
return nil, errors.Errorf("Unhandled ParamType %v", t)
}
}
|