diff options
author | Alexander Vladishev <aleksander.vladishev@zabbix.com> | 2017-01-10 10:37:01 +0300 |
---|---|---|
committer | Alexander Vladishev <aleksander.vladishev@zabbix.com> | 2017-01-10 10:37:01 +0300 |
commit | ceb5a01dfd1bdf5d62b79e70cd2fb5bfc2285d71 (patch) | |
tree | db2f3f6138e0e816cd9676f3add084981b7dfb19 /include/comms.h | |
parent | 7de1b059abb695b7cd018ef5fd5d41fd28eeea5b (diff) | |
parent | f4ce607f6fa7f95cdb146109db803d0bb52dc054 (diff) |
.......... [ZBXNEXT-12] updated to the latest trunk (without conflicts)
Diffstat (limited to 'include/comms.h')
-rw-r--r-- | include/comms.h | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/include/comms.h b/include/comms.h index 69bd1fb2510..2da472365c7 100644 --- a/include/comms.h +++ b/include/comms.h @@ -20,7 +20,7 @@ #ifndef ZABBIX_COMMS_H #define ZABBIX_COMMS_H -#if defined(_WINDOWS) +#ifdef _WINDOWS # if defined(__INT_MAX__) && __INT_MAX__ == 2147483647 typedef int ssize_t; # else @@ -28,7 +28,7 @@ typedef long ssize_t; # endif #endif -#if defined(_WINDOWS) +#ifdef _WINDOWS # define ZBX_TCP_WRITE(s, b, bl) ((ssize_t)send((s), (b), (bl), 0)) # define ZBX_TCP_READ(s, b, bl) ((ssize_t)recv((s), (b), (bl), 0)) # define zbx_socket_close(s) if (ZBX_SOCKET_ERROR != (s)) closesocket(s) @@ -37,6 +37,7 @@ typedef long ssize_t; # define ZBX_PROTO_AGAIN WSAEINTR # define ZBX_PROTO_ERROR SOCKET_ERROR # define ZBX_SOCKET_ERROR INVALID_SOCKET +# define ZBX_SOCKET_TO_INT(s) ((int)(s)) #else # define ZBX_TCP_WRITE(s, b, bl) ((ssize_t)write((s), (b), (bl))) # define ZBX_TCP_READ(s, b, bl) ((ssize_t)read((s), (b), (bl))) @@ -46,9 +47,10 @@ typedef long ssize_t; # define ZBX_PROTO_AGAIN EINTR # define ZBX_PROTO_ERROR -1 # define ZBX_SOCKET_ERROR -1 +# define ZBX_SOCKET_TO_INT(s) (s) #endif -#if defined(SOCKET) || defined(_WINDOWS) +#ifdef _WINDOWS typedef SOCKET ZBX_SOCKET; #else typedef int ZBX_SOCKET; @@ -96,14 +98,15 @@ zbx_socket_t; const char *zbx_socket_strerror(void); -#if !defined(_WINDOWS) +#ifndef _WINDOWS void zbx_gethost_by_ip(const char *ip, char *host, size_t hostlen); #endif int zbx_tcp_connect(zbx_socket_t *s, const char *source_ip, const char *ip, unsigned short port, int timeout, unsigned int tls_connect, char *tls_arg1, char *tls_arg2); -#define ZBX_TCP_PROTOCOL 0x01 +#define ZBX_TCP_PROTOCOL 0x01 +#define ZBX_TCP_COMPONENT_VERSION 0x02 #define ZBX_TCP_SEC_UNENCRYPTED 1 /* do not use encryption with this socket */ #define ZBX_TCP_SEC_TLS_PSK 2 /* use TLS with pre-shared key (PSK) with this socket */ @@ -112,6 +115,8 @@ int zbx_tcp_connect(zbx_socket_t *s, const char *source_ip, const char *ip, unsi #define ZBX_TCP_SEC_TLS_PSK_TXT "psk" #define ZBX_TCP_SEC_TLS_CERT_TXT "cert" +const char *zbx_tcp_connection_type_name(unsigned int type); + #define zbx_tcp_send(s, d) zbx_tcp_send_ext((s), (d), strlen(d), ZBX_TCP_PROTOCOL, 0) #define zbx_tcp_send_to(s, d, timeout) zbx_tcp_send_ext((s), (d), strlen(d), ZBX_TCP_PROTOCOL, timeout) #define zbx_tcp_send_bytes_to(s, d, len, timeout) zbx_tcp_send_ext((s), (d), len, ZBX_TCP_PROTOCOL, timeout) @@ -121,7 +126,7 @@ int zbx_tcp_send_ext(zbx_socket_t *s, const char *data, size_t len, unsigned cha void zbx_tcp_close(zbx_socket_t *s); -#if defined(HAVE_IPV6) +#ifdef HAVE_IPV6 int get_address_family(const char *addr, int *family, char *error, int max_error_len); #endif @@ -170,15 +175,20 @@ int zbx_send_response_ext(zbx_socket_t *sock, int result, const char *info, int #define zbx_send_response(sock, result, info, timeout) \ zbx_send_response_ext(sock, result, info, ZBX_TCP_PROTOCOL, timeout) +#define zbx_send_proxy_response(sock, result, info, timeout) \ + zbx_send_response_ext(sock, result, info, ZBX_TCP_PROTOCOL | ZBX_TCP_COMPONENT_VERSION , timeout) + #define zbx_send_response_raw(sock, result, info, timeout) \ zbx_send_response_ext(sock, result, info, 0, timeout) int zbx_recv_response(zbx_socket_t *sock, int timeout, char **error); -#if defined(HAVE_IPV6) -#define zbx_getnameinfo(sa, host, hostlen, serv, servlen, flags) \ - getnameinfo(sa, AF_INET == (sa)->sa_family ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6), \ - host, hostlen, serv, servlen, flags) +#ifdef HAVE_IPV6 +# define zbx_getnameinfo(sa, host, hostlen, serv, servlen, flags) \ + getnameinfo(sa, AF_INET == (sa)->sa_family ? \ + sizeof(struct sockaddr_in) : \ + sizeof(struct sockaddr_in6), \ + host, hostlen, serv, servlen, flags) #endif #endif |