require header match
All checks were successful
Build and Publish / BuildAndDeployAmd64 (push) Successful in 27s
Build and Publish / BuildAndDeploy (push) Successful in 2m16s

This commit is contained in:
matst80
2024-11-12 22:31:19 +01:00
parent 438358e4b3
commit e1b254668f
6 changed files with 52 additions and 7 deletions

View File

@@ -31,11 +31,44 @@ type Packet struct {
StatusCode uint32
}
var headerData = make([]byte, 4)
func matchHeader(conn io.Reader) error {
pos := 0
for pos < 4 {
l, err := conn.Read(headerData)
if err != nil {
return err
}
for i := 0; i < l; i++ {
if headerData[i] == header[pos] {
pos++
if pos == 4 {
return nil
}
} else {
pos = 0
}
}
}
return nil
}
func ReadPacket(conn io.Reader, packet *Packet) error {
err := matchHeader(conn)
if err != nil {
return err
}
return binary.Read(conn, binary.LittleEndian, packet)
}
func ReadCartPacket(conn io.Reader, packet *CartPacket) error {
err := matchHeader(conn)
if err != nil {
return err
}
return binary.Read(conn, binary.LittleEndian, packet)
}