Bugfix for packet demultiplexing #704

Merged
meggert merged 4 commits from bugfix-packet-demux into main 2023-06-23 20:21:03 +02:00
Showing only changes of commit 4a8e111a18 - Show all commits

View File

@ -10,7 +10,10 @@ ReturnValue_t PusLiveDemux::demultiplexPackets(StorageManagerIF& tmStore,
size_t tmSize) {
ReturnValue_t result = returnvalue::OK;
for (unsigned int idx = 0; idx < destinations.size(); idx++) {
sif::debug << "Destination size: " << destinations.size() << std::endl;
sif::debug << "Sending" << destinations[idx].name << std::endl;
const auto& dest = destinations[idx];
bool setOrigStoreId = false;
if (destinations.size() > 1) {
if (idx < destinations.size() - 1) {
// Create copy of data to ensure each TM recipient has its own copy. That way, we don't need
@ -26,8 +29,14 @@ ReturnValue_t PusLiveDemux::demultiplexPackets(StorageManagerIF& tmStore,
#endif
}
} else {
message.setStorageId(origStoreId);
setOrigStoreId = true;
sif::debug << "Setting org store ID" << std::endl;
}
} else {
setOrigStoreId = true;
}
if(setOrigStoreId) {
message.setStorageId(origStoreId);
}
result = ownerQueue.sendMessage(dest.queueId, &message);
if (result != returnvalue::OK) {