aboutsummaryrefslogtreecommitdiff
path: root/src/api/common
diff options
context:
space:
mode:
authorAlex Auvolat <lx@deuxfleurs.fr>2025-02-17 20:11:06 +0100
committerAlex Auvolat <lx@deuxfleurs.fr>2025-02-17 20:11:06 +0100
commit21c0dda16a9a97412cfd5c0232c382388d25ec56 (patch)
tree5be6a8efff2f94a6a5365da907a4414b8ca4ceb8 /src/api/common
parent658541d812103662be88ad6d3d1c0fdf1a948862 (diff)
downloadgarage-21c0dda16a9a97412cfd5c0232c382388d25ec56.tar.gz
garage-21c0dda16a9a97412cfd5c0232c382388d25ec56.zip
api: refactor: move checksumming code around again
Diffstat (limited to 'src/api/common')
-rw-r--r--src/api/common/signature/body.rs7
-rw-r--r--src/api/common/signature/checksum.rs22
-rw-r--r--src/api/common/signature/mod.rs1
3 files changed, 22 insertions, 8 deletions
diff --git a/src/api/common/signature/body.rs b/src/api/common/signature/body.rs
index d8c15ee5..512d02b3 100644
--- a/src/api/common/signature/body.rs
+++ b/src/api/common/signature/body.rs
@@ -8,11 +8,6 @@ use serde::Deserialize;
use tokio::sync::mpsc;
use tokio::task;
-use opentelemetry::{
- trace::{FutureExt as OtelFutureExt, TraceContextExt, Tracer},
- Context,
-};
-
use super::*;
use crate::signature::checksum::*;
@@ -84,8 +79,6 @@ impl ReqBody {
let (frame_tx, mut frame_rx) = mpsc::channel::<Frame<Bytes>>(1);
let join_checksums = tokio::spawn(async move {
- let tracer = opentelemetry::global::tracer("garage");
-
while let Some(frame) = frame_rx.recv().await {
match frame.into_data() {
Ok(data) => {
diff --git a/src/api/common/signature/checksum.rs b/src/api/common/signature/checksum.rs
index a9f00423..890c0452 100644
--- a/src/api/common/signature/checksum.rs
+++ b/src/api/common/signature/checksum.rs
@@ -314,3 +314,25 @@ pub fn request_checksum_algorithm_value(
None => Ok(None),
}
}
+
+pub fn add_checksum_response_headers(
+ checksum: &Option<ChecksumValue>,
+ mut resp: http::response::Builder,
+) -> http::response::Builder {
+ match checksum {
+ Some(ChecksumValue::Crc32(crc32)) => {
+ resp = resp.header(X_AMZ_CHECKSUM_CRC32, BASE64_STANDARD.encode(&crc32));
+ }
+ Some(ChecksumValue::Crc32c(crc32c)) => {
+ resp = resp.header(X_AMZ_CHECKSUM_CRC32C, BASE64_STANDARD.encode(&crc32c));
+ }
+ Some(ChecksumValue::Sha1(sha1)) => {
+ resp = resp.header(X_AMZ_CHECKSUM_SHA1, BASE64_STANDARD.encode(&sha1));
+ }
+ Some(ChecksumValue::Sha256(sha256)) => {
+ resp = resp.header(X_AMZ_CHECKSUM_SHA256, BASE64_STANDARD.encode(&sha256));
+ }
+ None => (),
+ }
+ resp
+}
diff --git a/src/api/common/signature/mod.rs b/src/api/common/signature/mod.rs
index e93ca85a..78518436 100644
--- a/src/api/common/signature/mod.rs
+++ b/src/api/common/signature/mod.rs
@@ -71,7 +71,6 @@ pub async fn verify_request(
service: &'static str,
) -> Result<VerifiedRequest, Error> {
let checked_signature = payload::check_payload_signature(&garage, &mut req, service).await?;
- eprintln!("checked signature: {:?}", checked_signature);
let request = streaming::parse_streaming_body(
req,