.. _program_listing_file__tmp_ws_src_fastrtps_include_fastdds_rtps_transport_TCPTransportDescriptor.h: Program Listing for File TCPTransportDescriptor.h ================================================= |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/fastrtps/include/fastdds/rtps/transport/TCPTransportDescriptor.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // Copyright 2019 Proyectos y Sistemas de Mantenimiento SL (eProsima). // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef _FASTDDS_TCP_TRANSPORT_DESCRIPTOR_H_ #define _FASTDDS_TCP_TRANSPORT_DESCRIPTOR_H_ #include #include #include namespace eprosima { namespace fastdds { namespace rtps { struct TCPTransportDescriptor : public SocketTransportDescriptor { struct TLSConfig { enum TLSOptions : uint32_t { NONE = 0, // 0000 0000 0000 DEFAULT_WORKAROUNDS = 1 << 0, // 0000 0000 0001 NO_COMPRESSION = 1 << 1, // 0000 0000 0010 NO_SSLV2 = 1 << 2, // 0000 0000 0100 NO_SSLV3 = 1 << 3, // 0000 0000 1000 NO_TLSV1 = 1 << 4, // 0000 0001 0000 NO_TLSV1_1 = 1 << 5, // 0000 0010 0000 NO_TLSV1_2 = 1 << 6, // 0000 0100 0000 NO_TLSV1_3 = 1 << 7, // 0000 1000 0000 SINGLE_DH_USE = 1 << 8 // 0001 0000 0000 }; enum TLSVerifyMode : uint8_t { UNUSED = 0, // 0000 0000 VERIFY_NONE = 1 << 0, // 0000 0001 VERIFY_PEER = 1 << 1, // 0000 0010 VERIFY_FAIL_IF_NO_PEER_CERT = 1 << 2, // 0000 0100 VERIFY_CLIENT_ONCE = 1 << 3 // 0000 1000 }; enum TLSHandShakeRole : uint8_t { DEFAULT = 0, // 0000 0000 CLIENT = 1 << 0, // 0000 0001 SERVER = 1 << 1 // 0000 0010 }; std::string password; uint32_t options = TLSOptions::NONE; std::string cert_chain_file; std::string private_key_file; std::string tmp_dh_file; std::string verify_file; uint8_t verify_mode = TLSVerifyMode::UNUSED; std::vector verify_paths; bool default_verify_path = false; int32_t verify_depth = -1; std::string rsa_private_key_file; TLSHandShakeRole handshake_role = TLSHandShakeRole::DEFAULT; std::string server_name; void add_verify_mode( const TLSVerifyMode verify) { verify_mode |= verify; } bool get_verify_mode( const TLSVerifyMode verify) const { return (verify_mode & verify) == verify; } void add_option( const TLSOptions option) { options |= option; } bool get_option( const TLSOptions option) const { return (options & option) == option; } bool operator ==( const TLSConfig& t) const { return (this->password == t.password && this->options == t.options && this->cert_chain_file == t.cert_chain_file && this->private_key_file == t.private_key_file && this->tmp_dh_file == t.tmp_dh_file && this->verify_file == t.verify_file && this->verify_mode == t.verify_mode && this->verify_paths == t.verify_paths && this->default_verify_path == t.default_verify_path && this->verify_depth == t.verify_depth && this->rsa_private_key_file == t.rsa_private_key_file && this->handshake_role == t.handshake_role); } }; std::vector listening_ports; uint32_t keep_alive_frequency_ms; uint32_t keep_alive_timeout_ms; uint16_t max_logical_port; uint16_t logical_port_range; uint16_t logical_port_increment; FASTDDS_TODO_BEFORE(3, 0, "Eliminate tcp_negotiation_timeout, variable not in use.") uint32_t tcp_negotiation_timeout; bool enable_tcp_nodelay; FASTDDS_TODO_BEFORE(3, 0, "Eliminate wait_for_tcp_negotiation, variable not in use.") bool wait_for_tcp_negotiation; bool calculate_crc; bool check_crc; bool apply_security; TLSConfig tls_config; void add_listener_port( uint16_t port) { listening_ports.push_back(port); } RTPS_DllAPI TCPTransportDescriptor(); RTPS_DllAPI TCPTransportDescriptor( const TCPTransportDescriptor& t); RTPS_DllAPI TCPTransportDescriptor& operator =( const TCPTransportDescriptor& t); virtual ~TCPTransportDescriptor() = default; RTPS_DllAPI bool operator ==( const TCPTransportDescriptor& t) const; }; } // namespace rtps } // namespace fastdds } // namespace eprosima #endif // _FASTDDS_TCP_TRANSPORT_DESCRIPTOR_H_