| 47 | namespace cfg { |
| 48 | |
| 49 | configuration_impl::configuration_impl(const std::string& _path) : |
| 50 | default_unicast_{"local"}, is_loaded_{false}, is_logging_loaded_{false}, prefix_{VSOMEIP_PREFIX}, diagnosis_{VSOMEIP_DIAGNOSIS_ADDRESS}, |
| 51 | diagnosis_mask_{0xFF00}, has_console_log_{true}, has_file_log_{false}, has_dlt_log_{false}, logfile_{"/tmp/vsomeip.log"}, |
| 52 | loglevel_{vsomeip_v3::logger::level_e::LL_INFO}, is_suppress_events_enabled_{false}, is_sd_enabled_{VSOMEIP_SD_DEFAULT_ENABLED}, |
| 53 | sd_protocol_{VSOMEIP_SD_DEFAULT_PROTOCOL}, sd_multicast_{VSOMEIP_SD_DEFAULT_MULTICAST}, sd_port_{VSOMEIP_SD_DEFAULT_PORT}, |
| 54 | sd_initial_delay_min_{VSOMEIP_SD_DEFAULT_INITIAL_DELAY_MIN}, sd_initial_delay_max_{VSOMEIP_SD_DEFAULT_INITIAL_DELAY_MAX}, |
| 55 | sd_repetitions_base_delay_{VSOMEIP_SD_DEFAULT_REPETITIONS_BASE_DELAY}, sd_repetitions_max_{VSOMEIP_SD_DEFAULT_REPETITIONS_MAX}, |
| 56 | sd_ttl_{VSOMEIP_SD_DEFAULT_TTL}, sd_cyclic_offer_delay_{VSOMEIP_SD_DEFAULT_CYCLIC_OFFER_DELAY}, |
| 57 | sd_request_response_delay_{VSOMEIP_SD_DEFAULT_REQUEST_RESPONSE_DELAY}, sd_offer_debounce_time_{VSOMEIP_SD_DEFAULT_OFFER_DEBOUNCE_TIME}, |
| 58 | sd_find_debounce_time_{VSOMEIP_SD_DEFAULT_FIND_DEBOUNCE_TIME}, sd_find_initial_debounce_reps_(VSOMEIP_SD_INITIAL_FIND_DEBOUNCE_REPS), |
| 59 | sd_find_initial_debounce_time_(VSOMEIP_SD_INITIAL_FIND_DEBOUNCE_TIME), |
| 60 | sd_wait_route_netlink_notification_{VSOMEIP_SD_WAIT_ROUTE_NETLINK_NOTIFICATION}, |
| 61 | sd_stop_offer_watchdog_time_{VSOMEIP_SD_STOP_OFFER_WATCHDOG_TIME}, sd_offers_watchdog_time_{VSOMEIP_SD_OFFERS_WATCHDOG_TIME}, |
| 62 | max_configured_message_size_{0}, max_local_message_size_{0}, max_reliable_message_size_{0}, max_unreliable_message_size_{0}, |
| 63 | buffer_shrink_threshold_{VSOMEIP_DEFAULT_BUFFER_SHRINK_THRESHOLD}, trace_{std::make_shared<trace>()}, log_version_{true}, |
| 64 | log_version_interval_{VSOMEIP_DEFAULT_LOG_NETWORK_HOST}, permissions_uds_{VSOMEIP_DEFAULT_UDS_PERMISSIONS}, network_{"vsomeip"}, |
| 65 | e2e_enabled_{false}, log_memory_{false}, log_memory_interval_{0}, log_status_interval_{VSOMEIP_DEFAULT_LOG_STATUS}, |
| 66 | endpoint_queue_limit_external_{QUEUE_SIZE_UNLIMITED}, endpoint_queue_limit_local_{QUEUE_SIZE_UNLIMITED}, |
| 67 | local_tcp_user_timeout_{VSOMEIP_DEFAULT_TCP_USER_TIMEOUT}, local_tcp_keepidle_{VSOMEIP_DEFAULT_TCP_KEEPIDLE}, |
| 68 | local_tcp_keepintvl_{VSOMEIP_DEFAULT_TCP_KEEPINTVL}, local_tcp_keepcnt_{VSOMEIP_DEFAULT_TCP_KEEPCNT}, |
| 69 | external_tcp_user_timeout_{VSOMEIP_DEFAULT_TCP_USER_TIMEOUT}, external_tcp_keepidle_{VSOMEIP_DEFAULT_TCP_KEEPIDLE}, |
| 70 | external_tcp_keepintvl_{VSOMEIP_DEFAULT_TCP_KEEPINTVL}, external_tcp_keepcnt_{VSOMEIP_DEFAULT_TCP_KEEPCNT}, |
| 71 | tcp_restart_aborts_max_{VSOMEIP_MAX_TCP_RESTART_ABORTS}, tcp_connect_time_max_{VSOMEIP_MAX_TCP_CONNECT_TIME}, |
| 72 | has_issued_methods_warning_{false}, has_issued_clients_warning_{false}, udp_receive_buffer_size_{VSOMEIP_DEFAULT_UDP_RCV_BUFFER_SIZE}, |
| 73 | npdu_default_debounce_requ_{VSOMEIP_DEFAULT_NPDU_DEBOUNCING_NANO}, npdu_default_debounce_resp_{VSOMEIP_DEFAULT_NPDU_DEBOUNCING_NANO}, |
| 74 | npdu_default_max_retention_requ_{VSOMEIP_DEFAULT_NPDU_MAXIMUM_RETENTION_NANO}, |
| 75 | npdu_default_max_retention_resp_{VSOMEIP_DEFAULT_NPDU_MAXIMUM_RETENTION_NANO}, log_statistics_{true}, |
| 76 | statistics_interval_{VSOMEIP_DEFAULT_STATISTICS_INTERVAL}, statistics_min_freq_{VSOMEIP_DEFAULT_STATISTICS_MIN_FREQ}, |
| 77 | statistics_max_messages_{VSOMEIP_DEFAULT_STATISTICS_MAX_MSG}, max_remote_subscribers_{VSOMEIP_DEFAULT_MAX_REMOTE_SUBSCRIBERS}, |
| 78 | path_{_path}, is_security_enabled_{false}, is_security_external_{false}, is_security_audit_{false}, is_remote_access_allowed_{true}, |
| 79 | initial_routing_state_{routing_state_e::RS_UNKNOWN}, request_debounce_time_{VSOMEIP_REQUEST_DEBOUNCE_TIME}, |
| 80 | default_max_dispatch_time_{VSOMEIP_DEFAULT_MAX_DISPATCH_TIME}, default_max_dispatchers_{VSOMEIP_DEFAULT_MAX_DISPATCHERS} { |
| 81 | |
| 82 | policy_manager_ = std::make_shared<policy_manager_impl>(); |
| 83 | security_ = std::make_shared<security>(policy_manager_); |
| 84 | unicast_ = boost::asio::ip::make_address(VSOMEIP_UNICAST_ADDRESS); |
| 85 | netmask_ = boost::asio::ip::make_address(VSOMEIP_NETMASK); |
| 86 | for (auto i = 0; i < ET_MAX; i++) |
| 87 | is_configured_[i] = false; |
| 88 | |
| 89 | #ifdef _WIN32 |
| 90 | routing_.host_.unicast_ = boost::asio::ip::make_address("127.0.0.1"); |
| 91 | routing_.host_.port_ = 31490; |
| 92 | routing_.guests_.unicast_ = routing_.host_.unicast_; |
| 93 | routing_.guests_.ports_[{ANY_UID, ANY_GID}].emplace(31492, 31999); |
| 94 | #endif |
| 95 | } |
| 96 | |
| 97 | configuration_impl::configuration_impl(const configuration_impl& _other) : |
| 98 | std::enable_shared_from_this<configuration_impl>(_other), default_unicast_{_other.default_unicast_}, is_loaded_{_other.is_loaded_}, |