MCPcopy
hub / github.com/google/gopacket / decodeNextLayer

Method decodeNextLayer

packet.go:511–531  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

509 return nil
510}
511func (p *lazyPacket) decodeNextLayer() {
512 if p.next == nil {
513 return
514 }
515 d := p.data
516 if p.last != nil {
517 d = p.last.LayerPayload()
518 }
519 next := p.next
520 p.next = nil
521 // We've just set p.next to nil, so if we see we have no data, this should be
522 // the final call we get to decodeNextLayer if we return here.
523 if len(d) == 0 {
524 return
525 }
526 defer p.recoverDecodeError()
527 err := next.Decode(d, p)
528 if err != nil {
529 p.addFinalDecodeError(err, nil)
530 }
531}
532func (p *lazyPacket) LinkLayer() LinkLayer {
533 for p.link == nil && p.next != nil {
534 p.decodeNextLayer()

Callers 8

LinkLayerMethod · 0.95
NetworkLayerMethod · 0.95
TransportLayerMethod · 0.95
ApplicationLayerMethod · 0.95
ErrorLayerMethod · 0.95
LayersMethod · 0.95
LayerMethod · 0.95
LayerClassMethod · 0.95

Calls 4

recoverDecodeErrorMethod · 0.80
addFinalDecodeErrorMethod · 0.80
LayerPayloadMethod · 0.65
DecodeMethod · 0.65

Tested by

no test coverage detected