@ -172,23 +172,17 @@ func (p *Payload) handshakeFinished(st *State) {
|
||||
}
|
||||
|
||||
func (p *Payload) startChunkedTransfer(data []byte, st *State) (*Payload, *State) {
|
||||
flags := FlagLengthIncluded
|
||||
var dataToSend []byte
|
||||
if len(data) > maxChunkSize {
|
||||
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))...)
|
||||
dataToSend = st.RemainingChunks[0]
|
||||
st.RemainingChunks = st.RemainingChunks[1:]
|
||||
st.TotalPayloadSize = len(data)
|
||||
} else {
|
||||
dataToSend = data
|
||||
return p.sendNextChunk(st)
|
||||
}
|
||||
log.WithField("length", len(data)).Debug("TLS: Sending data un-chunked")
|
||||
return &Payload{
|
||||
Flags: flags,
|
||||
Length: uint32(st.TotalPayloadSize),
|
||||
Data: dataToSend,
|
||||
Flags: FlagLengthIncluded,
|
||||
Length: uint32(len(data)),
|
||||
Data: data,
|
||||
}, st
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user