tcp mux and stuff
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 1m49s
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 1m49s
This commit is contained in:
17
packet.go
17
packet.go
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user