Fix transaction ID size

This commit is contained in:
2025-01-19 14:21:58 -05:00
parent dc560075d7
commit c748ca2223
2 changed files with 10 additions and 10 deletions

View File

@@ -174,14 +174,14 @@ type incomingMessage struct {
}
func decodeMessageA(reader io.Reader) (int64, uint16, []byte, error) {
headerBuffer := [8]byte { }
headerBuffer := [12]byte { }
_, err := io.ReadFull(reader, headerBuffer[:])
if err != nil { return 0, 0, nil, err }
transID, err := tape.DecodeI64[int64](headerBuffer[:4])
transID, err := tape.DecodeI64[int64](headerBuffer[:8])
if err != nil { return 0, 0, nil, err }
method, err := tape.DecodeI16[uint16](headerBuffer[4:6])
method, err := tape.DecodeI16[uint16](headerBuffer[8:10])
if err != nil { return 0, 0, nil, err }
length, err := tape.DecodeI16[uint16](headerBuffer[6:8])
length, err := tape.DecodeI16[uint16](headerBuffer[10:12])
if err != nil { return 0, 0, nil, err }
payloadBuffer := make([]byte, int(length))
_, err = io.ReadFull(reader, payloadBuffer)
@@ -190,13 +190,13 @@ func decodeMessageA(reader io.Reader) (int64, uint16, []byte, error) {
}
func encodeMessageA(writer io.Writer, trans int64, method uint16, data []byte) error {
buffer := make([]byte, 8 + len(data))
tape.EncodeI64(buffer[:4], trans)
tape.EncodeI16(buffer[4:6], method)
buffer := make([]byte, 12 + len(data))
tape.EncodeI64(buffer[:8], trans)
tape.EncodeI16(buffer[8:10], method)
length, ok := tape.U16CastSafe(len(data))
if !ok { return ErrPayloadTooLarge }
tape.EncodeI16(data[6:8], length)
copy(buffer[8:], data)
tape.EncodeI16(data[10:12], length)
copy(buffer[12:], data)
_, err := writer.Write(buffer)
return err
}