diff --git a/.github/workflows/bundled-lint-and-test.yaml b/.github/workflows/bundled-lint-and-test.yaml index 5f310491..aea0feeb 100644 --- a/.github/workflows/bundled-lint-and-test.yaml +++ b/.github/workflows/bundled-lint-and-test.yaml @@ -23,8 +23,9 @@ on: branches: [ main ] pull_request: paths: - - "src/**" - - "Cargo.*" + - ".github/**" + - "**/src/**" + - "**/Cargo.*" workflow_call: workflow_dispatch: diff --git a/.github/workflows/unbundled-lint-and-test.yaml b/.github/workflows/unbundled-lint-and-test.yaml index aec25979..c1f5499e 100644 --- a/.github/workflows/unbundled-lint-and-test.yaml +++ b/.github/workflows/unbundled-lint-and-test.yaml @@ -27,8 +27,9 @@ on: branches: [ main ] pull_request: paths: - - "src/**" - - "Cargo.*" + - ".github/**" + - "**/src/**" + - "**/Cargo.*" workflow_call: workflow_dispatch: diff --git a/up-streamer/src/ustreamer.rs b/up-streamer/src/ustreamer.rs index 0655a33f..7135ad61 100644 --- a/up-streamer/src/ustreamer.rs +++ b/up-streamer/src/ustreamer.rs @@ -21,7 +21,7 @@ use std::collections::{HashMap, HashSet}; use std::hash::{Hash, Hasher}; use std::ops::Deref; use std::thread; -use up_rust::{UCode, UListener, UMessage, UStatus, UTransport, UUIDBuilder, UUri}; +use up_rust::{UCode, UListener, UMessage, UPayloadFormat, UStatus, UTransport, UUIDBuilder, UUri}; const USTREAMER_TAG: &str = "UStreamer:"; const USTREAMER_FN_NEW_TAG: &str = "new():"; @@ -712,6 +712,18 @@ impl UListener for ForwardingListener { FORWARDING_LISTENER_FN_ON_RECEIVE_TAG, &msg ); + + if msg.attributes.payload_format.enum_value_or_default() == UPayloadFormat::UPAYLOAD_FORMAT_SHM { + debug!( + "{}:{}:{} Received message with type UPAYLOAD_FORMAT_SHM, which is not supported. A pointer to shared memory will not be usable on another device. UAttributes: {:#?}", + self.forwarding_id, + FORWARDING_LISTENER_TAG, + FORWARDING_LISTENER_FN_ON_RECEIVE_TAG, + &msg.attributes + ); + return; + } + if let Err(e) = self.sender.send(Arc::new(msg)).await { error!( "{}:{}:{} Unable to send message to worker pool: {e:?}",