keep track of total payload size

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
Jens Langhammer
2025-05-14 13:26:33 +02:00
parent 958ff66070
commit ba8f137885
2 changed files with 6 additions and 4 deletions

View File

@ -110,6 +110,7 @@ func (p *Payload) sendDataChunked(data []byte, st State) (*Payload, State) {
remainingData := data[maxChunkSize:]
// Chunk remaining data into correct chunks and add them to the list
st.RemainingChunks = append(st.RemainingChunks, slices.Collect(slices.Chunk(remainingData, maxChunkSize))...)
st.TotalPayloadSize = len(st.RemainingChunks) * maxChunkSize
} else {
dataToSend = data
}
@ -132,7 +133,7 @@ func (p *Payload) sendNextChunk(st State) (*Payload, State) {
log.WithField("length", st.TotalPayloadSize).Debug("Total payload size")
return &Payload{
Flags: flags,
Length: uint32((len(st.RemainingChunks) * maxChunkSize) + 5),
Length: uint32(st.TotalPayloadSize),
Data: nextChunk,
}, st
}

View File

@ -3,9 +3,10 @@ package tls
import "crypto/tls"
type State struct {
HasStarted bool
RemainingChunks [][]byte
TLS *tls.Conn
HasStarted bool
RemainingChunks [][]byte
TotalPayloadSize int
TLS *tls.Conn
}
func NewState() State {