From d7fb22dedd2b089ed46ea158b216c9e7d25b947c Mon Sep 17 00:00:00 2001 From: Nicolas Kamzol Date: Thu, 13 Aug 2026 11:19:10 +0200 Subject: [PATCH] dimse: fix wrong transfer syntax in file meta --- CHANGELOG.md | 1 + src/backend/dimse/cstore/storescp.rs | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df515a3..f3c2b94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 single request (e.g. for every instance of a STOW-RS request). - Associations are no longer returned to the pool after a failed or partially completed message exchange, as their state is unknown. +- Fix incorrect transfer syntax recorded in file meta when multiple presentation contexts were negotiated in STORE-SCP. ## Changed diff --git a/src/backend/dimse/cstore/storescp.rs b/src/backend/dimse/cstore/storescp.rs index 2a18395..484e4eb 100644 --- a/src/backend/dimse/cstore/storescp.rs +++ b/src/backend/dimse/cstore/storescp.rs @@ -92,10 +92,14 @@ impl StoreServiceClassProvider { // Duration::MAX to indefinitely wait for incoming messages while let Ok(message) = association.read_message(Duration::MAX).await { + let pctx_id = message + .presentation_context_id + .context("Missing presentation context id in received message")?; let pctx = association .presentation_contexts() - .first() - .context("No presentation context available")?; + .iter() + .find(|pctx| pctx.id == pctx_id) + .context("No negotiated presentation context matches the received message")?; debug!( "Used transfer syntax {} to read message", pctx.transfer_syntax