diff options
author | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-07-04 14:02:46 +0000 |
---|---|---|
committer | osmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2007-07-04 14:02:46 +0000 |
commit | 820e26fa20119c6aa2b55179381fdfacc083906e (patch) | |
tree | 687a63f0a751a64116eee13c8d4e86db1dbeb5fd /src/zabbix_get | |
parent | 0bfd3d59e0800d706bdcdf8af7e838393fc6651e (diff) | |
download | zabbix-820e26fa20119c6aa2b55179381fdfacc083906e.tar.gz zabbix-820e26fa20119c6aa2b55179381fdfacc083906e.tar.xz zabbix-820e26fa20119c6aa2b55179381fdfacc083906e.zip |
- improved zabbix_get for receiving large data (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@4430 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/zabbix_get')
-rw-r--r-- | src/zabbix_get/zabbix_get.c | 18 |
1 files changed, 11 insertions, 7 deletions
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); |