23#ifndef XCOM_NETWORK_PROVIDER_NATIVE_LIB_H
24#define XCOM_NETWORK_PROVIDER_NATIVE_LIB_H
29#ifndef XCOM_WITHOUT_OPENSSL
36#include <openssl/err.h>
37#include <openssl/ssl.h>
40#define SYS_STRERROR_SIZE 512
49 socklen_t sock_size,
int timeout);
51 socklen_t sock_size,
int timeout);
66#ifndef XCOM_WITHOUT_OPENSSL
101 const char *server_cert_file,
102 const char *client_key_file,
103 const char *client_cert_file,
const char *ca_file,
104 const char *ca_path,
const char *crl_file,
105 const char *crl_path,
const char *cipher,
106 const char *tls_version,
107 const char *tls_ciphersuites);
Definition: xcom_network_provider_native_lib.h:42
static result create_server_socket()
Definition: xcom_network_provider_native_lib.cc:125
static result announce_tcp(xcom_port port)
Definition: xcom_network_provider_native_lib.cc:206
static int timed_connect(int fd, struct sockaddr *sock_addr, socklen_t sock_size)
Definition: xcom_network_provider_native_lib.cc:452
static int timed_connect_msec(int fd, struct sockaddr *sock_addr, socklen_t sock_size, int timeout)
Definition: xcom_network_provider_native_lib.cc:340
static struct addrinfo * does_node_have_v4_address(struct addrinfo *retrieved)
Retrieves a node IPv4 address, if it exists.
Definition: xcom_network_provider_native_lib.cc:509
static void gcs_shutdown_socket(int *sock)
Definition: xcom_network_provider_native_lib.cc:310
static int timed_connect_sec(int fd, struct sockaddr *sock_addr, socklen_t sock_size, int timeout)
Definition: xcom_network_provider_native_lib.cc:459
static result gcs_close_socket(int *sock)
Definition: xcom_network_provider_native_lib.cc:316
static result checked_create_socket(int domain, int type, int protocol)
Definition: xcom_network_provider_native_lib.cc:467
static result xcom_checked_socket(int domain, int type, int protocol)
Wrapper function which retries and checks errors from socket.
Definition: xcom_network_provider_native_lib.cc:110
static int allowlist_socket_accept(int fd, site_def const *xcom_config)
Definition: xcom_network_provider_native_lib.cc:284
static result create_server_socket_v4()
Definition: xcom_network_provider_native_lib.cc:176
static result gcs_shut_close_socket(int *sock)
Definition: xcom_network_provider_native_lib.cc:327
static void init_server_addr(struct sockaddr **sock_addr, socklen_t *sock_len, xcom_port port, int family)
Initializes a sockaddr prepared to be used in bind()
Definition: xcom_network_provider_native_lib.cc:76
Definition: xcom_network_provider_native_lib.h:73
static void xcom_cleanup_ssl()
Definition: xcom_network_provider_ssl_native_lib.cc:544
static int ssl_verify_server_cert(SSL *ssl, const char *server_hostname)
Definition: xcom_network_provider_ssl_native_lib.cc:577
static void xcom_destroy_ssl()
Definition: xcom_network_provider_ssl_native_lib.cc:550
static int xcom_init_ssl(const char *server_key_file, const char *server_cert_file, const char *client_key_file, const char *client_cert_file, const char *ca_file, const char *ca_path, const char *crl_file, const char *crl_path, const char *cipher, const char *tls_version, const char *tls_ciphersuites)
Definition: xcom_network_provider_ssl_native_lib.cc:466
static MYSQL * sock
Definition: mysqlcheck.cc:56
constexpr value_type ssl
Definition: classic_protocol_constants.h:48
static bool timeout(bool(*wait_condition)())
Timeout function.
Definition: log0meb.cc:497
required uint64 port
Definition: replication_asynchronous_connection_failover.proto:32
required string type
Definition: replication_group_member_actions.proto:33
struct sockaddr sockaddr
Definition: sock_probe_win32.h:62
Definition: site_struct.h:42
unsigned short xcom_port
Definition: xcom_common.h:45
SSL_CTX * client_ctx
Definition: xcom_network_provider_ssl_native_lib.cc:162
SSL_CTX * server_ctx
Definition: xcom_network_provider_ssl_native_lib.cc:161