Fix bug where network sink would sometimes be closed early.

This commit is contained in:
Greyson Parrelli
2025-06-23 12:05:51 -04:00
parent c3ba07e5d7
commit abbcdbc6b9
@@ -4,6 +4,7 @@ import okhttp3.MediaType
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.RequestBody
import okio.BufferedSink
import org.signal.core.util.stream.NonClosingOutputStream
import org.signal.libsignal.protocol.incrementalmac.ChunkSizeChoice
import org.signal.libsignal.protocol.logging.Log
import org.whispersystems.signalservice.api.crypto.DigestingOutputStream
@@ -42,7 +43,7 @@ class DigestingRequestBody(
@Throws(IOException::class)
override fun writeTo(sink: BufferedSink) {
val digestStream = ByteArrayOutputStream()
val inner = SkippingOutputStream(contentStart, sink.outputStream())
val inner = SkippingOutputStream(contentStart, NonClosingOutputStream(sink.outputStream()))
val isIncremental = incremental && outputStreamFactory is AttachmentCipherOutputStreamFactory
val sizeChoice: ChunkSizeChoice = ChunkSizeChoice.inferChunkSize(contentLength.toInt())
val outputStream: DigestingOutputStream = if (isIncremental) {