From b1e4aa521ac9928057c6620dbf808c682f7d06b5 Mon Sep 17 00:00:00 2001 From: Ivan Santiago Paunovic Date: Wed, 22 Jul 2020 10:01:12 -0300 Subject: [PATCH] Set context actual domain id (#410) Signed-off-by: Ivan Santiago Paunovic --- rmw_fastrtps_cpp/src/init_rmw_context_impl.cpp | 2 +- rmw_fastrtps_cpp/src/rmw_init.cpp | 6 +++--- rmw_fastrtps_dynamic_cpp/src/init_rmw_context_impl.cpp | 2 +- rmw_fastrtps_dynamic_cpp/src/rmw_init.cpp | 6 +++--- rmw_fastrtps_shared_cpp/src/participant.cpp | 6 ++---- 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/rmw_fastrtps_cpp/src/init_rmw_context_impl.cpp b/rmw_fastrtps_cpp/src/init_rmw_context_impl.cpp index 8b3ec2fb2..49f1dc1d6 100644 --- a/rmw_fastrtps_cpp/src/init_rmw_context_impl.cpp +++ b/rmw_fastrtps_cpp/src/init_rmw_context_impl.cpp @@ -60,7 +60,7 @@ init_context_impl(rmw_context_t * context) participant_info( rmw_fastrtps_shared_cpp::create_participant( eprosima_fastrtps_identifier, - context->options.domain_id, + context->actual_domain_id, &context->options.security_options, (context->options.localhost_only == RMW_LOCALHOST_ONLY_ENABLED) ? 1 : 0, context->options.enclave, diff --git a/rmw_fastrtps_cpp/src/rmw_init.cpp b/rmw_fastrtps_cpp/src/rmw_init.cpp index e9908ca61..d02258c4c 100644 --- a/rmw_fastrtps_cpp/src/rmw_init.cpp +++ b/rmw_fastrtps_cpp/src/rmw_init.cpp @@ -93,13 +93,13 @@ rmw_init(const rmw_init_options_t * options, rmw_context_t * context) return RMW_RET_INVALID_ARGUMENT; } - const rmw_context_t zero_context = rmw_get_zero_initialized_context(); - assert(0 == std::memcmp(context, &zero_context, sizeof(rmw_context_t))); auto restore_context = rcpputils::make_scope_exit( - [context, &zero_context]() {*context = zero_context;}); + [context]() {*context = rmw_get_zero_initialized_context();}); context->instance_id = options->instance_id; context->implementation_identifier = eprosima_fastrtps_identifier; + context->actual_domain_id = + RMW_DEFAULT_DOMAIN_ID == options->domain_id ? 0uL : options->domain_id; context->impl = new (std::nothrow) rmw_context_impl_t(); if (nullptr == context->impl) { diff --git a/rmw_fastrtps_dynamic_cpp/src/init_rmw_context_impl.cpp b/rmw_fastrtps_dynamic_cpp/src/init_rmw_context_impl.cpp index 8d7608c4e..6428483d5 100644 --- a/rmw_fastrtps_dynamic_cpp/src/init_rmw_context_impl.cpp +++ b/rmw_fastrtps_dynamic_cpp/src/init_rmw_context_impl.cpp @@ -60,7 +60,7 @@ init_context_impl(rmw_context_t * context) participant_info( rmw_fastrtps_shared_cpp::create_participant( eprosima_fastrtps_identifier, - context->options.domain_id, + context->actual_domain_id, &context->options.security_options, (context->options.localhost_only == RMW_LOCALHOST_ONLY_ENABLED) ? 1 : 0, context->options.enclave, diff --git a/rmw_fastrtps_dynamic_cpp/src/rmw_init.cpp b/rmw_fastrtps_dynamic_cpp/src/rmw_init.cpp index 46566e203..f1f932644 100644 --- a/rmw_fastrtps_dynamic_cpp/src/rmw_init.cpp +++ b/rmw_fastrtps_dynamic_cpp/src/rmw_init.cpp @@ -93,13 +93,13 @@ rmw_init(const rmw_init_options_t * options, rmw_context_t * context) return RMW_RET_INVALID_ARGUMENT; } - const rmw_context_t zero_context = rmw_get_zero_initialized_context(); - assert(0 == std::memcmp(context, &zero_context, sizeof(rmw_context_t))); auto restore_context = rcpputils::make_scope_exit( - [context, &zero_context]() {*context = zero_context;}); + [context]() {*context = rmw_get_zero_initialized_context();}); context->instance_id = options->instance_id; context->implementation_identifier = eprosima_fastrtps_identifier; + context->actual_domain_id = + RMW_DEFAULT_DOMAIN_ID == options->domain_id ? 0uL : options->domain_id; context->impl = new (std::nothrow) rmw_context_impl_t(); if (nullptr == context->impl) { diff --git a/rmw_fastrtps_shared_cpp/src/participant.cpp b/rmw_fastrtps_shared_cpp/src/participant.cpp index 78871a26c..5498033e0 100644 --- a/rmw_fastrtps_shared_cpp/src/participant.cpp +++ b/rmw_fastrtps_shared_cpp/src/participant.cpp @@ -166,11 +166,9 @@ rmw_fastrtps_shared_cpp::create_participant( // No custom handling of RMW_DEFAULT_DOMAIN_ID. Simply use a reasonable domain id. #if FASTRTPS_VERSION_MAJOR < 2 - participantAttrs.rtps.builtin.domainId = - static_cast(domain_id != RMW_DEFAULT_DOMAIN_ID ? domain_id : 0u); + participantAttrs.rtps.builtin.domainId = static_cast(domain_id); #else - participantAttrs.domainId = - static_cast(domain_id != RMW_DEFAULT_DOMAIN_ID ? domain_id : 0u); + participantAttrs.domainId = static_cast(domain_id); #endif size_t length = snprintf(nullptr, 0, "enclave=%s;", enclave) + 1;