Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Vladishev <aleksander.vladishev@zabbix.com>2017-01-10 10:37:01 +0300
committerAlexander Vladishev <aleksander.vladishev@zabbix.com>2017-01-10 10:37:01 +0300
commitceb5a01dfd1bdf5d62b79e70cd2fb5bfc2285d71 (patch)
treedb2f3f6138e0e816cd9676f3add084981b7dfb19 /include/comms.h
parent7de1b059abb695b7cd018ef5fd5d41fd28eeea5b (diff)
parentf4ce607f6fa7f95cdb146109db803d0bb52dc054 (diff)
.......... [ZBXNEXT-12] updated to the latest trunk (without conflicts)
Diffstat (limited to 'include/comms.h')
-rw-r--r--include/comms.h30
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