summaryrefslogtreecommitdiffstats
path: root/src/zabbix_sender
diff options
context:
space:
mode:
authoralex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-01-20 10:24:37 +0000
committeralex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-01-20 10:24:37 +0000
commit9716a8f153707fdc317a52f4aa9f0dfa122f0cb6 (patch)
treeab22417f61d0e6dc5d883d228f2f3d27fbf6a10f /src/zabbix_sender
parent938eeba4af4a46126fc4d2fcbe46c15c98d70090 (diff)
downloadzabbix-9716a8f153707fdc317a52f4aa9f0dfa122f0cb6.tar.gz
zabbix-9716a8f153707fdc317a52f4aa9f0dfa122f0cb6.tar.xz
zabbix-9716a8f153707fdc317a52f4aa9f0dfa122f0cb6.zip
- new communication library and protocol (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@3733 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/zabbix_sender')
-rw-r--r--src/zabbix_sender/Makefile.am2
-rw-r--r--src/zabbix_sender/zabbix_sender.c87
2 files changed, 17 insertions, 72 deletions
diff --git a/src/zabbix_sender/Makefile.am b/src/zabbix_sender/Makefile.am
index 7b356bc0..e17ec3ba 100644
--- a/src/zabbix_sender/Makefile.am
+++ b/src/zabbix_sender/Makefile.am
@@ -1,4 +1,4 @@
SUBDIRS =
bin_PROGRAMS = zabbix_sender
zabbix_sender_SOURCES = zabbix_sender.c
-zabbix_sender_LDADD = ../libs/zbxcommon/libzbxcommon.a ../libs/zbxlog/libzbxlog.a ../libs/zbxsys/libzbxsys.a ../libs/zbxcrypto/libzbxcrypto.a ../libs/zbxconf/libzbxconf.a
+zabbix_sender_LDADD = ../libs/zbxcommon/libzbxcommon.a ../libs/zbxlog/libzbxlog.a ../libs/zbxsys/libzbxsys.a ../libs/zbxcrypto/libzbxcrypto.a ../libs/zbxconf/libzbxconf.a ../libs/zbxcomms/libzbxcomms.a
diff --git a/src/zabbix_sender/zabbix_sender.c b/src/zabbix_sender/zabbix_sender.c
index e936eda0..f8d57264 100644
--- a/src/zabbix_sender/zabbix_sender.c
+++ b/src/zabbix_sender/zabbix_sender.c
@@ -38,6 +38,7 @@
#include <time.h>
#include "common.h"
+#include "comms.h"
char *progname = NULL;
char title_message[] = "ZABBIX send";
@@ -68,94 +69,38 @@ void signal_handler( int sig )
static int send_value(char *server,int port,char *hostname, char *key,char *value, char *lastlogsize)
{
- int i,s;
char tosend[MAX_STRING_LEN];
- char result[MAX_STRING_LEN];
char foo[MAX_STRING_LEN];
- struct hostent *hp;
+ zbx_sock_t sock;
+ char *answer;
- struct sockaddr_in myaddr_in;
- struct sockaddr_in servaddr_in;
-
-/* struct linger ling;*/
-
-/* printf("In send_value(%s,%d,%s,%s,%s)\n", server, port, hostname, key, value);*/
-
- foo[0] = '\0';
-
- servaddr_in.sin_family=AF_INET;
- hp=gethostbyname(server);
-
- if(hp==NULL)
+ if( FAIL == zbx_tcp_connect(&sock, server, port))
{
- return FAIL;
+ return FAIL;
}
- servaddr_in.sin_addr.s_addr=((struct in_addr *)(hp->h_addr))->s_addr;
-
- servaddr_in.sin_port=htons(port);
-
- s=socket(AF_INET,SOCK_STREAM,0);
- if(s == -1)
- {
- return FAIL;
- }
-
-/* ling.l_onoff=1;*/
-/* ling.l_linger=0;*/
-/* if(setsockopt(s,SOL_SOCKET,SO_LINGER,&ling,sizeof(ling))==-1)*/
-/* {*/
-/* Ignore */
-/* }*/
-
- myaddr_in.sin_family = AF_INET;
- myaddr_in.sin_port=0;
- myaddr_in.sin_addr.s_addr=INADDR_ANY;
-
- if( connect(s,(struct sockaddr *)&servaddr_in,sizeof(struct sockaddr_in)) == -1 )
+ foo[0] = '\0';
+ comms_create_request(hostname, key, value, lastlogsize, foo, foo, foo, tosend, sizeof(tosend)-1);
+ if( FAIL == zbx_tcp_send(&sock, tosend))
{
- close(s);
- return FAIL;
+ zbx_tcp_close(&sock);
+ return FAIL;
}
-/* Send <req><host>SERVER_B64</host><key>KEY_B64</key><data>VALUE_B64</data></req> */
-
- comms_create_request(hostname, key, value, lastlogsize, foo, foo, foo, tosend, sizeof(tosend)-1);
-
-/* zbx_snprintf(tosend,sizeof(tosend),"%s:%s\n",shortname,value);
- zbx_snprintf(tosend,sizeof(tosend),"<req><host>%s</host><key>%s</key><data>%s</data></req>",hostname_b64,key_b64,value_b64); */
-
- if(write(s, tosend,strlen(tosend)) == -1)
-/* if( sendto(s,tosend,strlen(tosend),0,(struct sockaddr *)&servaddr_in,sizeof(struct sockaddr_in)) == -1 )*/
+ if( FAIL == zbx_tcp_recv(&sock, &answer))
{
- perror("write");
- close(s);
- return FAIL;
- }
- i=sizeof(struct sockaddr_in);
-/* i=recvfrom(s,result,MAX_STRING_LEN-1,0,(struct sockaddr *)&servaddr_in,(socklen_t *)&i);*/
- i=read(s,result,MAX_STRING_LEN-1);
- if(i==-1)
- {
- perror("read");
- close(s);
- return FAIL;
+ zbx_tcp_close(&sock);
+ return FAIL;
}
- result[i-1]=0;
-
- if(strcmp(result,"OK") == 0)
+ if(strcmp(answer,"OK") == 0)
{
printf("OK\n");
}
-
- if( close(s)!=0 )
- {
- perror("close");
-
- }
+
+ zbx_tcp_close(&sock);
return SUCCEED;
}