add packet id lookup and write to replay writer

This commit is contained in:
adman
2026-05-10 20:35:49 +02:00
parent a8936d92a5
commit 05e8da2ff4
+13 -1
View File
@@ -5,6 +5,7 @@ import (
"encoding/binary" "encoding/binary"
"io" "io"
"github.com/admin-else/strom/proto"
"github.com/admin-else/strom/proto_base" "github.com/admin-else/strom/proto_base"
) )
@@ -13,7 +14,7 @@ type Writer struct {
} }
func NewWriter(w io.Writer) *Writer { func NewWriter(w io.Writer) *Writer {
return &Writer{w} return &Writer{w: w}
} }
func (w *Writer) WriteRaw(p []byte, timestamp uint32) (err error) { func (w *Writer) WriteRaw(p []byte, timestamp uint32) (err error) {
@@ -31,6 +32,17 @@ func (w *Writer) WriteRaw(p []byte, timestamp uint32) (err error) {
func (w *Writer) WritePacket(packet proto_base.EncodeDecodeAble, timestamp uint32) (err error) { func (w *Writer) WritePacket(packet proto_base.EncodeDecodeAble, timestamp uint32) (err error) {
b := bytes.NewBuffer(nil) b := bytes.NewBuffer(nil)
info, ok := proto.LookupPacketInfoByType(packet)
if !ok {
return proto.BadPacketIdErr
}
err = proto_base.EncodeVarInt(b, info.PacketId)
if err != nil {
return
}
err = packet.Encode(b) err = packet.Encode(b)
if err != nil { if err != nil {
return return