INNER CODE UNIT · Go
err
Edgio/vflow · ipfix/decoder.go:183
for err == nil && setHeader.Length > uint16(d.reader.ReadCount()-startCount) && d.reader.Len() > 4 && setHeader.Length-uint16(d.reader.ReadCount()-startCount) > 4 {
if setID := setHeader.SetID; setID == 2 || setID == 3 {
// Template record or template option record
// Check if only padding is left in this set. A template id of zero indicates padding bytes, which MUST be zero.
if templateID, err := d.reader.PeekUint16(); err == nil && templateID == 0 {
break
}
tr := TemplateRecord{}
if setID == 2 {
err = tr.unmarshal(d.reader)
} else {
err = tr.unmarshalOpts(d.reader)
}
if err == nil {
mem.insert(tr.TemplateID, d.raddr, tr)
}