summaryrefslogtreecommitdiff
path: root/internal/packet/packet.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-07-06 18:20:46 +0300
committerKyren223 <Kyren223@proton.me>2025-07-06 18:20:46 +0300
commitbbd4eae95fe7dec5b85e2124eb016c7a10a390fe (patch)
treef6fc7870a97b28b87fa16e112e93d8be28cc397a /internal/packet/packet.go
parentd4475050721738f26652c914b0668f887aac97b8 (diff)
Added better logging for packets and payloads and now the writer is
responsible for packaging into a packet the payload (instead of everyone who sends to the writer)
Diffstat (limited to 'internal/packet/packet.go')
-rw-r--r--internal/packet/packet.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/internal/packet/packet.go b/internal/packet/packet.go
index 8bc9669..a6a47e2 100644
--- a/internal/packet/packet.go
+++ b/internal/packet/packet.go
@@ -7,6 +7,7 @@ import (
"errors"
"fmt"
"io"
+ "log/slog"
"math"
"github.com/vmihailenco/msgpack/v5"
@@ -237,9 +238,20 @@ func (p Packet) Payload() []byte {
}
func (p Packet) String() string {
+ assert.Never("oops, found someone who uses packet.String(), improve this")
return fmt.Sprintf("Packet(v%v t%v %v [%v bytes...])", p.Version(), p.Encoding().String(), p.Type(), p.PayloadLength())
}
+func (p Packet) LogValue() slog.Value {
+ return slog.GroupValue(
+ slog.Int("version", int(p.Version())),
+ slog.String("encoding", p.Encoding().String()),
+ slog.String("type", p.Type().String()),
+ slog.Int("payload_length", int(p.PayloadLength())),
+ slog.Int("total_bytes", len(p.data)),
+ )
+}
+
func (p Packet) Into(writer io.Writer) (int, error) {
return writer.Write(p.data)
}