summaryrefslogtreecommitdiff
path: root/internal/packet/packet.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-02 13:00:37 +0200
committerKyren223 <Kyren223@proton.me>2024-11-02 13:18:07 +0200
commit08d88c425b4cfe4918eabe83b003ee01314e636a (patch)
tree025edf7ccc3d7cf47a68b0a99daa06a26733b3e2 /internal/packet/packet.go
parent31e3778061a20e0787c076d9353e82b2e223841e (diff)
test(packet): test packet framer and packet encoding/decoding
Diffstat (limited to 'internal/packet/packet.go')
-rw-r--r--internal/packet/packet.go25
1 files changed, 19 insertions, 6 deletions
diff --git a/internal/packet/packet.go b/internal/packet/packet.go
index 9d84486..c7986cb 100644
--- a/internal/packet/packet.go
+++ b/internal/packet/packet.go
@@ -52,6 +52,8 @@ type PacketType uint8
const (
PacketError PacketType = iota
PacketSendMessage
+ PacketPushedMessages
+ PacketGetMessageRange
PacketMessages
)
@@ -61,6 +63,10 @@ func (t PacketType) String() string {
return "PacketError"
case PacketSendMessage:
return "PacketSendMessage"
+ case PacketPushedMessages:
+ return "PacketPushedMessages"
+ case PacketGetMessageRange:
+ return "PacketGetMessageRange"
case PacketMessages:
return "PacketMessages"
default:
@@ -70,7 +76,7 @@ func (t PacketType) String() string {
func (e PacketType) IsSupported() bool {
switch e {
- case PacketError, PacketSendMessage, PacketMessages:
+ case PacketError, PacketSendMessage, PacketPushedMessages, PacketGetMessageRange, PacketMessages:
return true
default:
return false
@@ -80,10 +86,13 @@ func (e PacketType) IsSupported() bool {
// True for all packets that a server may push passively to the client.
func (e PacketType) IsPush() bool {
switch e {
- case PacketError, PacketSendMessage:
+ case PacketError, PacketSendMessage, PacketGetMessageRange, PacketMessages:
return false
- default:
+ case PacketPushedMessages:
return true
+ default:
+ assert.Never("should never happen")
+ return false
}
}
@@ -190,10 +199,14 @@ func (p Packet) DecodedPayload() (Payload, error) {
switch p.Type() {
case PacketError:
payload = &ErrorMessage{}
- case PacketMessages:
- payload = &Messages{}
+ case PacketPushedMessages:
+ payload = &PushedMessages{}
case PacketSendMessage:
payload = &SendMessage{}
+ case PacketGetMessageRange:
+ payload = &GetMessagesRange{}
+ case PacketMessages:
+ payload = &Messages{}
default:
assert.Never("packet type of a packet struct must always be valid")
}
@@ -212,7 +225,7 @@ type PacketFramer struct {
Out chan Packet
}
-func NewFramer(ctx context.Context) PacketFramer {
+func NewFramer() PacketFramer {
return PacketFramer{
Out: make(chan Packet, 10),
}