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:
authorAndris Zeila <andris.zeila@zabbix.com>2016-12-19 11:29:42 +0300
committerAndris Zeila <andris.zeila@zabbix.com>2016-12-19 11:29:42 +0300
commitb6976281e424bb8190aa70c46b44ba1a682aca7d (patch)
treee1496d04de20b94deeb1cb5b1ffbfc45fe46b250 /include/zbxipcservice.h
parent32215d08137a0ad36a378c21cbcacdbdedc4b068 (diff)
.......PS. [ZBXNEXT-3386] rewrote IPC service implementation to use nonblocking sockets
Diffstat (limited to 'include/zbxipcservice.h')
-rw-r--r--include/zbxipcservice.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/include/zbxipcservice.h b/include/zbxipcservice.h
index 70c5c6ececc..e5fb347e91e 100644
--- a/include/zbxipcservice.h
+++ b/include/zbxipcservice.h
@@ -4,14 +4,15 @@
#include "common.h"
#include "zbxalgo.h"
-#define ZBX_IPC_SOCKET_MESSAGE_SIZE 4096
+#define ZBX_IPC_SOCKET_BUFFER_SIZE 4096
+
+#define ZBX_IPC_MESSAGE_CODE 0
+#define ZBX_IPC_MESSAGE_SIZE 1
typedef struct
{
- /* the message code */
- zbx_uint32_t code;
- /* the data size */
- zbx_uint32_t size;
+ /* the message header containing code and data */
+ zbx_uint32_t header[2];
/* the data */
unsigned char *data;
}
@@ -53,10 +54,12 @@ zbx_ipc_service_t;
int zbx_ipc_service_init_env(const char *path, char **error);
void zbx_ipc_service_free_env();
int zbx_ipc_service_start(zbx_ipc_service_t *service, const char *service_name, char **error);
-void zbx_ipc_service_recv(zbx_ipc_service_t *service, zbx_ipc_socket_t **csocket, zbx_ipc_message_t **message);
-void zbx_ipc_service_close_socket(zbx_ipc_service_t *service, zbx_ipc_socket_t *csocket);
+void zbx_ipc_service_recv(zbx_ipc_service_t *service, zbx_ipc_client_t **client, zbx_ipc_message_t **message);
void zbx_ipc_service_close(zbx_ipc_service_t *service);
+int zbx_ipc_client_send(zbx_ipc_client_t *client, zbx_uint32_t code, const char *data, zbx_uint32_t size);
+void zbx_ipc_client_close(zbx_ipc_client_t *client);
+
int zbx_ipc_socket_open(zbx_ipc_socket_t *csocket, const char *service_name, int timeout, char **error);
void zbx_ipc_socket_close(zbx_ipc_socket_t *csocket);
int zbx_ipc_socket_write(zbx_ipc_socket_t *csocket, zbx_uint32_t code, const char *data, zbx_uint32_t size);