From 820e26fa20119c6aa2b55179381fdfacc083906e Mon Sep 17 00:00:00 2001 From: osmiy Date: Wed, 4 Jul 2007 14:02:46 +0000 Subject: - improved zabbix_get for receiving large data (Eugene) git-svn-id: svn://svn.zabbix.com/trunk@4430 97f52cf1-0a1b-0410-bd0e-c28be96e8082 --- src/zabbix_get/zabbix_get.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/zabbix_get') diff --git a/src/zabbix_get/zabbix_get.c b/src/zabbix_get/zabbix_get.c index 4cc33cc9..08f50f2f 100644 --- a/src/zabbix_get/zabbix_get.c +++ b/src/zabbix_get/zabbix_get.c @@ -132,16 +132,18 @@ static int get_value( const char *host, unsigned short port, const char *key, - char *value, - int value_max_len + char **value ) { zbx_sock_t s; int ret; - char - *buf, + char *buf, request[1024]; + assert(value); + + *value = NULL; + if( SUCCEED == (ret = zbx_tcp_connect(&s, host, port)) ) { zbx_snprintf(request, sizeof(request),"%s\n",key); @@ -150,7 +152,7 @@ static int get_value( if( SUCCEED == (ret = zbx_tcp_recv_ext(&s, &buf, ZBX_TCP_READ_UNTIL_CLOSE)) ) { zbx_rtrim(buf,"\r\n\0"); - zbx_snprintf(value, value_max_len, "%s", buf); + *value = strdup(buf); } } } @@ -178,7 +180,7 @@ int main(int argc, char **argv) { unsigned short port = 10050; int ret = SUCCEED; - char value[MAX_STRING_LEN]; + char *value = NULL; char *host = NULL; char *key = NULL; char ch; @@ -229,7 +231,7 @@ int main(int argc, char **argv) alarm(SENDER_TIMEOUT); #endif /* not WINDOWS */ - ret = get_value(host, port, key, value, sizeof(value)); + ret = get_value(host, port, key, &value); #if !defined(_WINDOWS) alarm(0); @@ -239,6 +241,8 @@ int main(int argc, char **argv) { printf("%s\n",value); } + + zbx_free(value); } zbx_free(host); -- cgit