streaming

Media streaming and broadcast systems in Go
Log | Files | Refs | README | LICENSE

commit 3d44323d83ce2404e0b6a1369158950e7c7f777a
parent 2891cccd2f9ecaaa53bd3897d5962e96980324a1
Author: Oliver Lowe <o@olowe.co>
Date:   Sun,  4 Aug 2024 19:24:13 +1000

pcap: use data slice length to set length in header

One less thing to keep in sync.

Diffstat:
Mpcap/parser.go | 14++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/pcap/parser.go b/pcap/parser.go @@ -24,7 +24,6 @@ type GlobalHeader struct { type Header struct { Time time.Time - InclLen uint32 OrigLen uint32 } @@ -71,7 +70,6 @@ func decode(reader io.Reader) (*File, error) { } hh := Header{ Time: time.Unix(int64(h.Seconds), int64(h.SubSeconds)*1000), - InclLen: h.InclLen, OrigLen: h.OrigLen, } @@ -102,12 +100,16 @@ func encode(file *File) ([]byte, error) { for _, p := range file.Packets { sec, nsec := timestamp(p.Header.Time) - usec := nsec / 1000 - h := header{sec, usec, p.Header.InclLen, p.Header.OrigLen} - if err := binary.Write(buf, binary.LittleEndian, &h); err != nil { + h := header{ + Seconds: sec, + SubSeconds: nsec / 1000, + InclLen: uint32(len(p.Data)), + OrigLen: p.Header.OrigLen, + } + if err := binary.Write(buf, binary.LittleEndian, h); err != nil { return nil, fmt.Errorf("packet header: %v", err) } - if err := binary.Write(buf, binary.LittleEndian, &p.Data); err != nil { + if err := binary.Write(buf, binary.LittleEndian, p.Data); err != nil { return nil, fmt.Errorf("packet data: %v", err) } }