Skip to content
Snippets Groups Projects
Commit 177b91f7 authored by Benjamin Wenger's avatar Benjamin Wenger
Browse files

added a num request parts field to signle use for forwards compatibility

parent 717859b2
No related branches found
No related tags found
3 merge requests!510Release,!207WIP: Client Restructure,!203Symmetric broadcast
...@@ -125,17 +125,18 @@ func (m Request) SetPayload(b []byte) { ...@@ -125,17 +125,18 @@ func (m Request) SetPayload(b []byte) {
} }
const ( const (
nonceSize = 8 nonceSize = 8
maxPartsSize = 1 numRequestPartsSize = 1
sizeSize = 2 maxResponsePartsSize = 1
transmitPlMinSize = nonceSize + maxPartsSize + sizeSize sizeSize = 2
transmitPlMinSize = nonceSize + maxResponsePartsSize + sizeSize
) )
// RequestPayload is the structure of Request's payload. // RequestPayload is the structure of Request's payload.
type RequestPayload struct { type RequestPayload struct {
data []byte // Serial of all contents e data []byte // Serial of all contents e
nonce []byte nonce []byte
nunRequestParts []byte numRequestParts []byte //number fo parts in the request, currently always 1
maxResponseParts []byte // Max number of messages expected in response maxResponseParts []byte // Max number of messages expected in response
size []byte // Size of the contents size []byte // Size of the contents
contents []byte contents []byte
...@@ -165,10 +166,12 @@ func mapRequestPayload(data []byte) RequestPayload { ...@@ -165,10 +166,12 @@ func mapRequestPayload(data []byte) RequestPayload {
mp := RequestPayload{ mp := RequestPayload{
data: data, data: data,
nonce: data[:nonceSize], nonce: data[:nonceSize],
maxResponseParts: data[nonceSize : nonceSize+maxPartsSize], numRequestParts: data[nonceSize : nonceSize+numRequestPartsSize],
size: data[nonceSize+maxPartsSize : transmitPlMinSize], maxResponseParts: data[nonceSize+numRequestPartsSize : nonceSize+maxResponsePartsSize+numRequestPartsSize],
size: data[nonceSize+numRequestPartsSize+maxResponsePartsSize : transmitPlMinSize],
contents: data[transmitPlMinSize:], contents: data[transmitPlMinSize:],
} }
mp.numRequestParts[0] = 1
return mp return mp
} }
...@@ -221,6 +224,16 @@ func (mp RequestPayload) SetMaxResponseParts(num uint8) { ...@@ -221,6 +224,16 @@ func (mp RequestPayload) SetMaxResponseParts(num uint8) {
copy(mp.maxResponseParts, []byte{num}) copy(mp.maxResponseParts, []byte{num})
} }
// GetNumRequestParts returns the number of messages expected in the request.
func (mp RequestPayload) GetNumRequestParts() uint8 {
return mp.numRequestParts[0]
}
// SetNumRequestParts sets the number of expected messages.
func (mp RequestPayload) SetNumRequestParts(num uint8) {
copy(mp.numRequestParts, []byte{num})
}
// GetContents returns the payload's contents. // GetContents returns the payload's contents.
func (mp RequestPayload) GetContents() []byte { func (mp RequestPayload) GetContents() []byte {
return mp.contents[:binary.BigEndian.Uint16(mp.size)] return mp.contents[:binary.BigEndian.Uint16(mp.size)]
......
...@@ -181,7 +181,7 @@ func Test_newTransmitMessagePayload(t *testing.T) { ...@@ -181,7 +181,7 @@ func Test_newTransmitMessagePayload(t *testing.T) {
data: make([]byte, payloadSize), data: make([]byte, payloadSize),
tagFP: make([]byte, tagFPSize), tagFP: make([]byte, tagFPSize),
nonce: make([]byte, nonceSize), nonce: make([]byte, nonceSize),
maxResponseParts: make([]byte, maxPartsSize), maxResponseParts: make([]byte, maxResponsePartsSize),
size: make([]byte, sizeSize), size: make([]byte, sizeSize),
contents: make([]byte, payloadSize-transmitPlMinSize), contents: make([]byte, payloadSize-transmitPlMinSize),
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment