From e861204cb0e4071c4a446f1e119291290c93e3d2 Mon Sep 17 00:00:00 2001 From: Nicholas Tinsley Date: Mon, 21 Aug 2023 15:29:38 -0400 Subject: [PATCH] Additional logging around incrementally digested uploads. --- .../internal/push/http/DigestingRequestBody.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/http/DigestingRequestBody.kt b/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/http/DigestingRequestBody.kt index adf5e8b133..65eb6de8a0 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/http/DigestingRequestBody.kt +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/http/DigestingRequestBody.kt @@ -3,6 +3,7 @@ package org.whispersystems.signalservice.internal.push.http import okhttp3.MediaType import okhttp3.RequestBody import okio.BufferedSink +import org.signal.libsignal.protocol.logging.Log import org.whispersystems.signalservice.api.crypto.DigestingOutputStream import org.whispersystems.signalservice.api.crypto.SkippingOutputStream import org.whispersystems.signalservice.api.messages.SignalServiceAttachment @@ -62,7 +63,13 @@ class DigestingRequestBody( } outputStream.flush() + if (isIncremental) { + if (contentLength != total) { + Log.w(TAG, "Content uploaded ${logMessage(total, contentLength)} bytes compared to expected!") + } else { + Log.d(TAG, "Wrote the expected number of bytes.") + } outputStream.close() digestStream.close() incrementalDigest = digestStream.toByteArray() @@ -76,6 +83,15 @@ class DigestingRequestBody( fun getAttachmentDigest() = AttachmentDigest(transmittedDigest, incrementalDigest) + private fun logMessage(actual: Long, expected: Long): String { + val difference = actual - expected + return if (difference > 0) { + "+$difference" + } else { + difference.toString() + } + } + companion object { const val TAG = "DigestingRequestBody" }