MCPcopy Index your code
hub / github.com/cloudflare/cloudflared / decodeByVersion

Method decodeByVersion

packet/decoder.go:96–114  ·  view source on GitHub ↗
(packet []byte)

Source from the content-addressed store, hash-verified

94}
95
96func (pd *IPDecoder) decodeByVersion(packet []byte) ([]gopacket.LayerType, error) {
97 version, err := FindIPVersion(packet)
98 if err != nil {
99 return nil, err
100 }
101 decoded := make([]gopacket.LayerType, 0, pd.layers)
102 switch version {
103 case 4:
104 err = pd.v4parser.DecodeLayers(packet, &decoded)
105 case 6:
106 err = pd.v6parser.DecodeLayers(packet, &decoded)
107 default:
108 err = fmt.Errorf("unknown ip version %d", version)
109 }
110 if err != nil {
111 return nil, err
112 }
113 return decoded, nil
114}
115
116// ICMPDecoder decodes raw packets into IP and ICMP. It can process packets sequentially without allocating
117// memory for the layers, so it cannot be called concurrently.

Callers 2

DecodeMethod · 0.95
DecodeMethod · 0.80

Calls 2

FindIPVersionFunction · 0.85
ErrorfMethod · 0.80

Tested by

no test coverage detected