diff options
author | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-01-20 10:24:37 +0000 |
---|---|---|
committer | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-01-20 10:24:37 +0000 |
commit | 9716a8f153707fdc317a52f4aa9f0dfa122f0cb6 (patch) | |
tree | ab22417f61d0e6dc5d883d228f2f3d27fbf6a10f /src/zabbix_sender | |
parent | 938eeba4af4a46126fc4d2fcbe46c15c98d70090 (diff) | |
download | zabbix-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.am | 2 | ||||
-rw-r--r-- | src/zabbix_sender/zabbix_sender.c | 87 |
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; } |