Skip to content

Commit

Permalink
Fix CVE-2023-50257
Browse files Browse the repository at this point in the history
Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
Co-authored-by: Mario Dominguez <mariodominguez@eprosima.com>

commit f2bcd264798ebd0d45241e57f7d522c68920b26f
Author: Miguel Company <miguelcompany@eprosima.com>
Date:   Thu Dec 14 10:52:32 2023 +0100

    Refs #19770. Improve BuiltinAuthenticationPlugin_second_participant_creation_loop.

    Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

commit 07380f840422f8ea2a6ae62ec901fe94687f3b3c
Author: Miguel Company <miguelcompany@eprosima.com>
Date:   Wed Dec 13 08:21:34 2023 +0100

    Refs #19770. Fix PDPTests.

    Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

commit 4c2c21e5f2be63c1f4e0766cc8bc5a59a857b106
Author: Miguel Company <miguelcompany@eprosima.com>
Date:   Wed Dec 13 07:26:51 2023 +0100

    Refs #19770. Adding override keyword.

    Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

commit d185a85b937a1fd64f86a40b9db2d0b994e39a7f
Author: Miguel Company <miguelcompany@eprosima.com>
Date:   Tue Dec 12 16:05:00 2023 +0100

    Refs #19770. Uncrustify.

    Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

commit 54a01ab0eff0e326c868d1a32bd44203bf184b4d
Author: Miguel Company <miguelcompany@eprosima.com>
Date:   Tue Dec 12 10:29:42 2023 +0100

    Refs #19770. PDPSecurityInitiatorListener relies on PDPListener::onNewCacheChangeAdded.

    Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

commit 202bc52a4584025c897e06a40f50d5d7d6be8ce6
Author: Miguel Company <miguelcompany@eprosima.com>
Date:   Tue Dec 12 09:49:20 2023 +0100

    Refs #19770. Only process removals when reader is matched.

    Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

commit a4a30779c0ae3b410b8cce4aa56f47490995d20d
Author: Miguel Company <miguelcompany@eprosima.com>
Date:   Tue Dec 12 09:46:03 2023 +0100

    Refs #19770. Added PDPSecurityInitiatorListener::process_alive_data.

    Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

commit 3c7547e0b125ab7156aaf3f72b1a431a9d77672f
Author: Miguel Company <miguelcompany@eprosima.com>
Date:   Tue Dec 12 09:32:55 2023 +0100

    Refs #19770. Refactor with PDPListener::process_alive_data.

    Signed-off-by: Miguel Company <miguelcompany@eprosima.com>

commit 4571178679af32902a5ba6719807b75eabafc296
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Wed Nov 15 12:28:14 2023 +0100

    Refs #19770. StatelessReader does not call update_last_notified for not matched writers.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 8294ca3b0bae320f066779dfa1d9a8690b16ebfc
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Wed Nov 29 13:30:14 2023 +0100

    Refs #19770. Avoid dynamic_cast when participant is not secure.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 83820e84c6cc3dcaf53e6ffe784ed03b2fac9bfa
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Wed Nov 29 13:24:59 2023 +0100

    Refs #19770. Avoid warning when built without security.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 8ce1216f6af4758f4cb8dc1ea63c770a5ff86e1a
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Wed Nov 29 12:55:28 2023 +0100

    Refs #19770. Fixed typo in comments.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 7bb64eb4a0b899b8055beb8a8b0b279db80e20d6
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Wed Nov 29 12:52:07 2023 +0100

    Refs #19770. Use constexpr for topic names.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit eef95273d5464210c50a01cb22cc4a3989233f2f
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Wed Nov 29 12:50:56 2023 +0100

    Refs #19770. Send participant dispose messages through both writers.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit c3c831f5f047c4a02a3ddd9944ce3015644f3e27
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Tue Nov 28 10:07:17 2023 +0100

    Refs #19770. Move to `AUTHENTICATION_FAILED` when authentication fails.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 11f98a4d0132d630b76c68ed4157a8624dcffaa5
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Tue Nov 28 10:05:47 2023 +0100

    Refs #19770. Simulate DATA(p) reception on non secure `notifyAboveRemoteEndpoints`.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 5097288e5f4816e653a7c5a4c4839d2a077f3d19
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Wed Nov 22 09:36:14 2023 +0100

    Refs #19770. Common factor method `notify_and_maybe_ignore_new_participant`.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 9364310c5c3cf47b586470b90f9511b0be11fbc4
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Tue Nov 21 07:56:17 2023 +0100

    Refs #19770. Improve AllowUnauthenticatedParticipants blackbox tests.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit bb8af40be3c8c138e48acfced5835f2066d864dd
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Mon Nov 20 09:53:10 2023 +0100

    Refs #19770. Change builtin endpoints matching workflow.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 4fc685f75949637ee07ede7a72dd43ed4ab351f3
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Fri Nov 17 12:34:40 2023 +0100

    Refs #19770. Chages in announceParticipantState.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit fb26bbccf6400123d2cb0d89d34f8c907e301d1a
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Fri Nov 17 12:23:48 2023 +0100

    Refs #19770. Chages in removeRemoteEndpoints.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 96442d58fa0b16984289bbe16a132769e9cbcd81
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Fri Nov 17 12:15:35 2023 +0100

    Refs #19770. Chages in notifyAboveRemoteEndpoints.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit cea35be6c84e633a500bd4565119d1a7ec6066da
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Fri Nov 17 11:52:15 2023 +0100

    Refs #19770. Additional work on endpoints creation.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 02f95cf90b8acdf84c0c6dd357b8a7a26816db93
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Fri Nov 17 10:46:48 2023 +0100

    Refs #19770. Methods in PDP to setup builtin endpoints security attributes.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 1f5c43734dfc6d420103e16132034e7e85ba0c3a
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Fri Nov 17 10:38:57 2023 +0100

    Refs #19770. Methods in PDP to create builtin endpoints attributes.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 49624e88746389b44384f007dc17610ba929731a
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Thu Nov 16 16:56:25 2023 +0100

    Refs #19770. Endpoints creation refactor.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 4ab8d1e1e24819da5d27009ec3e80051329dfbb0
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Thu Nov 16 16:28:15 2023 +0100

    Refs #19770. Fix unprotected access to local participant data.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 57b99075eae290412b4d08798e1df27fc9972e1c
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Thu Nov 16 15:38:24 2023 +0100

    Refs #19770. Added SimplePDPEndpointsSecure.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit e67c703db6956e15e187868f90f1f99b25e37627
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Thu Nov 16 15:28:38 2023 +0100

    Refs #19770. Listeners moved into BuiltinReader.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit b2fe97e1e0001b24b18d4b145143139a084dc37d
Author: Mario Dominguez <mariodominguez@eprosima.com>
Date:   Wed Nov 8 15:42:34 2023 +0100

    Refs #19770. PDP listener moved into PDPEndpoints.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 1af9da00af27591be14a1abe1d9928ccff83048d
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Thu Nov 16 13:33:37 2023 +0100

    Refs #19770. Test improvements.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 03eeda5f6b305768cc876056ff6584c153c947d1
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Thu Nov 16 13:21:45 2023 +0100

    Refs #19770. Regression test for vulnerability.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

commit 6cd538753fb8be550f9b3a58c508021d2bdf6ccd
Author: Miguel Company <MiguelCompany@eprosima.com>
Date:   Thu Nov 16 12:30:36 2023 +0100

    Refs #19770. Refactor on BlackboxTestsSecurity.

    Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

Signed-off-by: Miguel Company <miguelcompany@eprosima.com>
  • Loading branch information
MiguelCompany committed Dec 18, 2023
1 parent 3625421 commit f2e5cea
Show file tree
Hide file tree
Showing 22 changed files with 1,206 additions and 617 deletions.
18 changes: 14 additions & 4 deletions include/fastdds/rtps/builtin/discovery/participant/PDP.h
Original file line number Diff line number Diff line change
Expand Up @@ -330,9 +330,9 @@ class PDP : public fastdds::statistics::rtps::IProxyQueryable
* Get a pointer to the local RTPSParticipant ParticipantProxyData object.
* @return Pointer to the local RTPSParticipant ParticipantProxyData object.
*/
ParticipantProxyData* getLocalParticipantProxyData()
ParticipantProxyData* getLocalParticipantProxyData() const
{
return participant_proxies_.front();
return participant_proxies_.empty() ? nullptr : participant_proxies_.front();
}

/**
Expand Down Expand Up @@ -431,7 +431,15 @@ class PDP : public fastdds::statistics::rtps::IProxyQueryable
return temp_writer_proxies_;
}

ReaderAttributes create_builtin_reader_attributes() const;

WriterAttributes create_builtin_writer_attributes() const;

#if HAVE_SECURITY
void add_builtin_security_attributes(
ReaderAttributes& ratt,
WriterAttributes& watt) const;

virtual bool pairing_remote_writer_with_local_reader_after_security(
const GUID_t& local_reader,
const WriterProxyData& remote_writer_data);
Expand Down Expand Up @@ -501,8 +509,6 @@ class PDP : public fastdds::statistics::rtps::IProxyQueryable
ResourceLimitedVector<WriterProxyData*> writer_proxies_pool_;
//!Variable to indicate if any parameter has changed.
std::atomic_bool m_hasChangedLocalPDP;
//!Listener for the SPDP messages.
ReaderListener* mp_listener;
//! ProxyPool for temporary reader proxies
ProxyPool<ReaderProxyData> temp_reader_proxies_;
//! ProxyPool for temporary writer proxies
Expand Down Expand Up @@ -574,6 +580,10 @@ class PDP : public fastdds::statistics::rtps::IProxyQueryable
*/
virtual void update_builtin_locators() = 0;

void notify_and_maybe_ignore_new_participant(
ParticipantProxyData* pdata,
bool& should_be_ignored);

#ifdef FASTDDS_STATISTICS

std::atomic<const fastdds::statistics::rtps::IProxyObserver*> proxy_observer_;
Expand Down
38 changes: 30 additions & 8 deletions include/fastdds/rtps/builtin/discovery/participant/PDPListener.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,34 +37,56 @@ class PDP;
* This class is implemented in order to use the same structure than with any other RTPSReader.
* @ingroup DISCOVERY_MODULE
*/
class PDPListener: public ReaderListener
class PDPListener : public ReaderListener
{

public:

/**
* @param parent Pointer to object creating this object
*/
PDPListener(PDP* parent);
PDPListener(
PDP* parent);

virtual ~PDPListener() override = default;

/**
* New added cache
* @param reader
* @param change
*/
* New added cache
* @param reader
* @param change
*/
void onNewCacheChangeAdded(
RTPSReader* reader,
const CacheChange_t* const change) override;

protected:

/**
* Process an incoming DATA(p).
* This method is called from PDPListener::onNewCacheChangeAdded() when an alive DATA(p) is received.
* Both the reader lock and the PDP lock are held when this method is called.
*
* @param old_data Pointer to the ParticipantProxyData currently stored in the database. May be nullptr, for a
* recently discovered participant.
* @param new_data ParticipantProxyData from the DATA(p) message.
* @param writer_guid GUID of the writer that sent the DATA(p) message.
* @param reader RTPSReader that received the DATA(p) message.
* @param lock Lock on the PDP database. Passed so it can be released before invoking callbacks.
*/
virtual void process_alive_data(
ParticipantProxyData* old_data,
ParticipantProxyData& new_data,
GUID_t& writer_guid,
RTPSReader* reader,
std::unique_lock<std::recursive_mutex>& lock);

/**
* Get the key of a CacheChange_t
* @param change Pointer to the CacheChange_t
* @return True on success
*/
bool get_key(CacheChange_t* change);
bool get_key(
CacheChange_t* change);

//!Pointer to the associated mp_SPDP;
PDP* parent_pdp_;
Expand All @@ -82,5 +104,5 @@ class PDPListener: public ReaderListener
} /* namespace fastrtps */
} /* namespace eprosima */

#endif
#endif // ifndef DOXYGEN_SHOULD_SKIP_THIS_PUBLIC
#endif /* _FASTDDS_RTPS_PDPLISTENER_H_ */
22 changes: 22 additions & 0 deletions include/fastdds/rtps/builtin/discovery/participant/PDPSimple.h
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,28 @@ class PDPSimple : public PDP
*/
bool createPDPEndpoints() override;

bool create_dcps_participant_endpoints();

void match_pdp_remote_endpoints(
const ParticipantProxyData& pdata,
bool notify_secure_endpoints);

void assign_low_level_remote_endpoints(
const ParticipantProxyData& pdata,
bool notify_secure_endpoints);

#if HAVE_SECURITY
bool create_dcps_participant_secure_endpoints();

bool pairing_remote_writer_with_local_reader_after_security(
const GUID_t& local_reader,
const WriterProxyData& remote_writer_data) override;

bool pairing_remote_reader_with_local_writer_after_security(
const GUID_t& local_reader,
const ReaderProxyData& remote_reader_data) override;
#endif // HAVE_SECURITY

};

} /* namespace rtps */
Expand Down
5 changes: 5 additions & 0 deletions src/cpp/rtps/builtin/BuiltinReader.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include <memory>

#include <fastdds/rtps/history/ReaderHistory.h>
#include <fastdds/rtps/reader/ReaderListener.h>

#include <rtps/history/ITopicPayloadPool.h>
#include <rtps/history/PoolConfig.h>
Expand Down Expand Up @@ -52,6 +53,8 @@ struct BuiltinReader
payload_pool_->release_history(cfg, true);
}
}

listener_.reset();
}

void remove_from_history(
Expand All @@ -75,6 +78,8 @@ struct BuiltinReader
std::unique_ptr<fastrtps::rtps::ReaderHistory> history_;
//! Builtin RTPS reader
TReader* reader_ = nullptr;
//! Listener for the builtin RTPS reader
std::unique_ptr<fastrtps::rtps::ReaderListener> listener_;
};

} // namespace rtps
Expand Down
102 changes: 3 additions & 99 deletions src/cpp/rtps/builtin/discovery/endpoint/EDPSimple.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -382,90 +382,21 @@ void EDPSimple::set_builtin_writer_history_attributes(
void EDPSimple::set_builtin_reader_attributes(
ReaderAttributes& attributes)
{
const RTPSParticipantAttributes& pattr = mp_PDP->getRTPSParticipant()->getRTPSParticipantAttributes();

// Matched writers will depend on total number of participants
attributes.matched_writers_allocation = pattr.allocation.participants;

// As participants allocation policy includes the local participant, one has to be substracted
if (attributes.matched_writers_allocation.initial > 1)
{
attributes.matched_writers_allocation.initial--;
}
if ((attributes.matched_writers_allocation.maximum > 1) &&
(attributes.matched_writers_allocation.maximum < std::numeric_limits<size_t>::max()))
{
attributes.matched_writers_allocation.maximum--;
}

// Locators are copied from the local participant metatraffic locators
attributes.endpoint.unicastLocatorList.clear();
for (const Locator_t& loc : mp_PDP->getLocalParticipantProxyData()->metatraffic_locators.unicast)
{
attributes.endpoint.unicastLocatorList.push_back(loc);
}
attributes.endpoint.multicastLocatorList.clear();
for (const Locator_t& loc : mp_PDP->getLocalParticipantProxyData()->metatraffic_locators.multicast)
{
attributes.endpoint.multicastLocatorList.push_back(loc);
}
attributes.endpoint.external_unicast_locators = mp_PDP->builtin_attributes().metatraffic_external_unicast_locators;
attributes.endpoint.ignore_non_matching_locators = pattr.ignore_non_matching_locators;
attributes = mp_PDP->create_builtin_reader_attributes();

// Timings are configured using EDP default values
attributes.times.heartbeatResponseDelay = edp_heartbeat_response_delay;

// EDP endpoints are always reliable, transsient local, keyed topics
attributes.endpoint.reliabilityKind = RELIABLE;
attributes.endpoint.durabilityKind = TRANSIENT_LOCAL;
attributes.endpoint.topicKind = WITH_KEY;

// Built-in EDP readers never expect inline qos
attributes.expectsInlineQos = false;
}

void EDPSimple::set_builtin_writer_attributes(
WriterAttributes& attributes)
{
const RTPSParticipantAttributes& pattr = mp_PDP->getRTPSParticipant()->getRTPSParticipantAttributes();

// Matched readers will depend on total number of participants
attributes.matched_readers_allocation = pattr.allocation.participants;

// As participants allocation policy includes the local participant, one has to be substracted
if (attributes.matched_readers_allocation.initial > 1)
{
attributes.matched_readers_allocation.initial--;
}
if ((attributes.matched_readers_allocation.maximum > 1) &&
(attributes.matched_readers_allocation.maximum < std::numeric_limits<size_t>::max()))
{
attributes.matched_readers_allocation.maximum--;
}

// Locators are copied from the local participant metatraffic locators
attributes.endpoint.unicastLocatorList.clear();
for (const Locator_t& loc : mp_PDP->getLocalParticipantProxyData()->metatraffic_locators.unicast)
{
attributes.endpoint.unicastLocatorList.push_back(loc);
}
attributes.endpoint.multicastLocatorList.clear();
for (const Locator_t& loc : mp_PDP->getLocalParticipantProxyData()->metatraffic_locators.multicast)
{
attributes.endpoint.multicastLocatorList.push_back(loc);
}
attributes.endpoint.external_unicast_locators = mp_PDP->builtin_attributes().metatraffic_external_unicast_locators;
attributes.endpoint.ignore_non_matching_locators = pattr.ignore_non_matching_locators;
attributes = mp_PDP->create_builtin_writer_attributes();

// Timings are configured using EDP default values
attributes.times.heartbeatPeriod = edp_heartbeat_period;
attributes.times.nackResponseDelay = edp_nack_response_delay;
attributes.times.nackSupressionDuration = edp_nack_supression_duration;

// EDP endpoints are always reliable, transsient local, keyed topics
attributes.endpoint.reliabilityKind = RELIABLE;
attributes.endpoint.durabilityKind = TRANSIENT_LOCAL;
attributes.endpoint.topicKind = WITH_KEY;
}

bool EDPSimple::createSEDPEndpoints()
Expand Down Expand Up @@ -537,34 +468,7 @@ bool EDPSimple::create_sedp_secure_endpoints()
set_builtin_writer_history_attributes(writer_history_att);
set_builtin_reader_attributes(ratt);
set_builtin_writer_attributes(watt);

const security::ParticipantSecurityAttributes& part_attr = mp_RTPSParticipant->security_attributes();

ratt.endpoint.security_attributes().is_submessage_protected = part_attr.is_discovery_protected;
ratt.endpoint.security_attributes().plugin_endpoint_attributes = PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_VALID;

watt.endpoint.security_attributes().is_submessage_protected = part_attr.is_discovery_protected;
watt.endpoint.security_attributes().plugin_endpoint_attributes = PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_VALID;

if (part_attr.is_discovery_protected)
{
security::PluginParticipantSecurityAttributes plugin_part_attr(part_attr.plugin_participant_attributes);

if (plugin_part_attr.is_discovery_encrypted)
{
ratt.endpoint.security_attributes().plugin_endpoint_attributes |=
PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_ENCRYPTED;
watt.endpoint.security_attributes().plugin_endpoint_attributes |=
PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_ENCRYPTED;
}
if (plugin_part_attr.is_discovery_origin_authenticated)
{
ratt.endpoint.security_attributes().plugin_endpoint_attributes |=
PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_ORIGIN_AUTHENTICATED;
watt.endpoint.security_attributes().plugin_endpoint_attributes |=
PLUGIN_ENDPOINT_SECURITY_ATTRIBUTES_FLAG_IS_SUBMESSAGE_ORIGIN_AUTHENTICATED;
}
}
mp_PDP->add_builtin_security_attributes(ratt, watt);

if (m_discovery.discovery_config.m_simpleEDP.enable_builtin_secure_publications_writer_and_subscriptions_reader)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ struct DiscoveryServerPDPEndpoints : public PDPEndpoints
return DISC_BUILTIN_ENDPOINT_PARTICIPANT_ANNOUNCER | DISC_BUILTIN_ENDPOINT_PARTICIPANT_DETECTOR;
}

const std::unique_ptr<fastrtps::rtps::ReaderListener>& main_listener() const override
{
return reader.listener_;
}

bool enable_pdp_readers(
fastrtps::rtps::RTPSParticipantImpl* participant) override
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,6 @@ struct DiscoveryServerPDPEndpointsSecure : public DiscoveryServerPDPEndpoints

//! Builtin Simple PDP reader
BuiltinReader<fastrtps::rtps::StatelessReader> stateless_reader;
//! Listener for stateless_reader
std::unique_ptr<fastrtps::rtps::ReaderListener> stateless_listener;
};

} // namespace rtps
Expand Down
Loading

0 comments on commit f2e5cea

Please sign in to comment.