#if defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL)
# ifndef _WIN32_WINNT_WIN7
# define _WIN32_WINNT_WIN7 0x0601
# ifndef WSA_FLAG_NO_HANDLE_INHERIT
# define WSA_FLAG_NO_HANDLE_INHERIT 0x80
# define ZBX_SOCKLEN_T socklen_t
static int socket_set_nonblocking(ZBX_SOCKET s);
static void tcp_set_socket_strerror_from_getaddrinfo(const char *ip);
static ssize_t tcp_read(zbx_socket_t *s, char *buffer, size_t size, short *events);
zbx_config_tls_t *zbx_config_tls_new(void)
zbx_config_tls_t *config_tls;
config_tls = (zbx_config_tls_t *)zbx_malloc(NULL, sizeof(zbx_config_tls_t));
config_tls->connect_mode = ZBX_TCP_SEC_UNENCRYPTED;
config_tls->accept_modes = ZBX_TCP_SEC_UNENCRYPTED;
config_tls->connect = NULL;
config_tls->accept = NULL;
config_tls->ca_file = NULL;
config_tls->crl_file = NULL;
config_tls->server_cert_issuer = NULL;
config_tls->server_cert_subject = NULL;
config_tls->cert_file = NULL;
config_tls->key_file = NULL;
config_tls->psk_identity = NULL;
config_tls->psk_file = NULL;
config_tls->cipher_cert13 = NULL;
config_tls->cipher_cert = NULL;
config_tls->cipher_psk13 = NULL;
config_tls->cipher_psk = NULL;
config_tls->cipher_all13 = NULL;
config_tls->cipher_all = NULL;
config_tls->cipher_cmd13 = NULL;
config_tls->cipher_cmd = NULL;
void zbx_config_tls_free(zbx_config_tls_t *config_tls)
zbx_free(config_tls->connect);
zbx_free(config_tls->accept);
zbx_free(config_tls->ca_file);
zbx_free(config_tls->crl_file);
zbx_free(config_tls->server_cert_issuer);
zbx_free(config_tls->server_cert_subject);
zbx_free(config_tls->cert_file);
zbx_free(config_tls->key_file);
zbx_free(config_tls->psk_identity);