From 541b5f2e38306875bcb1889cb4092929f3be9dac Mon Sep 17 00:00:00 2001 From: GalaxyDreamWings <62592826+GalaxyDreamWings@users.noreply.github.com> Date: Thu, 1 Aug 2024 21:28:11 +0800 Subject: [PATCH] Assign value to RTPSProxyProcedureEndpoint m_proxyId for filtering unwanted replies Bug fix, m_proxyId is not initialized, zero can not be used to filter unwanted replies, when multiple clients request at the same time, they will get wrong reply, i.e. the reply result corresponding to the first request. --- .../components/RTPSProxyProcedureEndpoint.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/transports/dds/components/RTPSProxyProcedureEndpoint.cpp b/src/transports/dds/components/RTPSProxyProcedureEndpoint.cpp index 7c008675..a6793d42 100644 --- a/src/transports/dds/components/RTPSProxyProcedureEndpoint.cpp +++ b/src/transports/dds/components/RTPSProxyProcedureEndpoint.cpp @@ -253,6 +253,24 @@ int RTPSProxyProcedureEndpoint::createEntities( if (m_writer != nullptr) { + m_proxyId.guidPrefix()[0] = m_writer->getGuid().guidPrefix.value[0]; + m_proxyId.guidPrefix()[1] = m_writer->getGuid().guidPrefix.value[1]; + m_proxyId.guidPrefix()[2] = m_writer->getGuid().guidPrefix.value[2]; + m_proxyId.guidPrefix()[3] = m_writer->getGuid().guidPrefix.value[3]; + m_proxyId.guidPrefix()[4] = m_writer->getGuid().guidPrefix.value[4]; + m_proxyId.guidPrefix()[5] = m_writer->getGuid().guidPrefix.value[5]; + m_proxyId.guidPrefix()[6] = m_writer->getGuid().guidPrefix.value[6]; + m_proxyId.guidPrefix()[7] = m_writer->getGuid().guidPrefix.value[7]; + m_proxyId.guidPrefix()[8] = m_writer->getGuid().guidPrefix.value[8]; + m_proxyId.guidPrefix()[9] = m_writer->getGuid().guidPrefix.value[9]; + m_proxyId.guidPrefix()[10] = m_writer->getGuid().guidPrefix.value[10]; + m_proxyId.guidPrefix()[11] = m_writer->getGuid().guidPrefix.value[11]; + + m_proxyId.entityId().entityKey()[0] = m_writer->getGuid().entityId.value[0]; + m_proxyId.entityId().entityKey()[1] = m_writer->getGuid().entityId.value[1]; + m_proxyId.entityId().entityKey()[2] = m_writer->getGuid().entityId.value[2]; + m_proxyId.entityId().entityKind() = m_writer->getGuid().entityId.value[3]; + // Is not oneway operation if (readertypename != NULL) {