tcp mux and stuff
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 1m49s

This commit is contained in:
matst80
2024-11-10 16:40:52 +01:00
parent 547c32d4a7
commit 10d85350d0
6 changed files with 470 additions and 295 deletions

View File

@@ -63,12 +63,15 @@ func SendPacket(conn io.Writer, messageType uint16, datafn func(w io.Writer) err
}
func SendRawResponse(conn io.Writer, data []byte) error {
binary.Write(conn, binary.LittleEndian, Packet{
err := binary.Write(conn, binary.LittleEndian, Packet{
Version: 1,
MessageType: ResponseBody,
DataLength: uint16(len(data)),
})
_, err := conn.Write(data)
if err != nil {
return err
}
_, err = conn.Write(data)
return err
}
@@ -90,6 +93,12 @@ func ReceivePacket(conn io.Reader) (uint16, []byte, error) {
return packet.MessageType, nil, err
}
data := make([]byte, packet.DataLength)
_, err = conn.Read(data)
return packet.MessageType, data, err
l, err := conn.Read(data)
if err != nil {
return packet.MessageType, nil, err
}
if l != int(packet.DataLength) {
return packet.MessageType, nil, fmt.Errorf("expected %d bytes, got %d", packet.DataLength, l)
}
return packet.MessageType, data, nil
}