commit 707e234349846c8aa9f5ace53518e88033627e31
parent 93fcb65d7636c870a60f92ae20415ae33bbc6ab0
Author: Oliver Lowe <o@olowe.co>
Date: Sat, 3 Aug 2024 21:42:59 +1000
pcap: include which packet, context in decode errors
Diffstat:
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/pcap/parser.go b/pcap/parser.go
@@ -50,23 +50,22 @@ func decode(reader io.Reader) (*File, error) {
var header GlobalHeader
if err := binary.Read(reader, binary.LittleEndian, &header); err != nil {
- return nil, err
+ return nil, fmt.Errorf("read global header: %w", err)
}
var packets []Packet
- for {
+ for i := 1; ; i++ {
var header Header
err := binary.Read(reader, binary.LittleEndian, &header)
if err == io.EOF {
break
- }
- if err != nil {
- return nil, err
+ } else if err != nil {
+ return nil, fmt.Errorf("packet %d: read header: %w", i, err)
}
data := make([]byte, header.InclLen)
if _, err = io.ReadFull(reader, data); err != nil {
- return nil, err
+ return nil, fmt.Errorf("packet %d: read data: %w", i, err)
}
packets = append(packets, Packet{