@ -172,23 +172,17 @@ func (p *Payload) handshakeFinished(st *State) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *Payload) startChunkedTransfer(data []byte, st *State) (*Payload, *State) {
|
func (p *Payload) startChunkedTransfer(data []byte, st *State) (*Payload, *State) {
|
||||||
flags := FlagLengthIncluded
|
|
||||||
var dataToSend []byte
|
|
||||||
if len(data) > maxChunkSize {
|
if len(data) > maxChunkSize {
|
||||||
log.WithField("length", len(data)).Debug("TLS: Data needs to be chunked")
|
log.WithField("length", len(data)).Debug("TLS: Data needs to be chunked")
|
||||||
flags += FlagMoreFragments
|
|
||||||
// Chunk data into correct chunks and add them to the list
|
|
||||||
st.RemainingChunks = append(st.RemainingChunks, slices.Collect(slices.Chunk(data, maxChunkSize))...)
|
st.RemainingChunks = append(st.RemainingChunks, slices.Collect(slices.Chunk(data, maxChunkSize))...)
|
||||||
dataToSend = st.RemainingChunks[0]
|
|
||||||
st.RemainingChunks = st.RemainingChunks[1:]
|
|
||||||
st.TotalPayloadSize = len(data)
|
st.TotalPayloadSize = len(data)
|
||||||
} else {
|
return p.sendNextChunk(st)
|
||||||
dataToSend = data
|
|
||||||
}
|
}
|
||||||
|
log.WithField("length", len(data)).Debug("TLS: Sending data un-chunked")
|
||||||
return &Payload{
|
return &Payload{
|
||||||
Flags: flags,
|
Flags: FlagLengthIncluded,
|
||||||
Length: uint32(st.TotalPayloadSize),
|
Length: uint32(len(data)),
|
||||||
Data: dataToSend,
|
Data: data,
|
||||||
}, st
|
}, st
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user