diff options
author | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-08-02 13:11:47 +0000 |
---|---|---|
committer | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-08-02 13:11:47 +0000 |
commit | d9ce56d11dadd2e24897c22fbb31ade19f64ea37 (patch) | |
tree | 9820e45b1cff1bd8b72c9baef0c0a5896abb6782 /src | |
parent | ed36ea4f180c0f109d879653d46c7ab6ef3d37d3 (diff) | |
download | zabbix-d9ce56d11dadd2e24897c22fbb31ade19f64ea37.tar.gz zabbix-d9ce56d11dadd2e24897c22fbb31ade19f64ea37.tar.xz zabbix-d9ce56d11dadd2e24897c22fbb31ade19f64ea37.zip |
Minor changes.
git-svn-id: svn://svn.zabbix.com/trunk@1919 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/zbxcommon/comms.c | 21 | ||||
-rw-r--r-- | src/zabbix_agent/active.c | 16 | ||||
-rw-r--r-- | src/zabbix_server/functions.c | 7 | ||||
-rw-r--r-- | src/zabbix_server/functions.h | 2 | ||||
-rw-r--r-- | src/zabbix_server/trapper/trapper.c | 6 |
5 files changed, 35 insertions, 17 deletions
diff --git a/src/libs/zbxcommon/comms.c b/src/libs/zbxcommon/comms.c index 153329c5..ada03760 100644 --- a/src/libs/zbxcommon/comms.c +++ b/src/libs/zbxcommon/comms.c @@ -1,27 +1,37 @@ #include "common.h" #include "log.h" -int comms_create_request(char *host, char *key, char *data, char *request,int maxlen) +int comms_create_request(char *host, char *key, char *data, char *lastlogsize, char *request,int maxlen) { int ret = SUCCEED; char host_b64[MAX_STRING_LEN]; char key_b64[MAX_STRING_LEN]; char data_b64[MAX_STRING_LEN]; + char lastlogsize_b64[MAX_STRING_LEN]; memset(host_b64,0,sizeof(host_b64)); memset(key_b64,0,sizeof(key_b64)); memset(data_b64,0,sizeof(data_b64)); + memset(lastlogsize_b64,0,sizeof(lastlogsize_b64)); str_base64_encode(host, host_b64, strlen(host)); str_base64_encode(key, key_b64, strlen(key)); str_base64_encode(data, data_b64, strlen(data)); + str_base64_encode(lastlogsize, lastlogsize_b64, strlen(lastlogsize)); - snprintf(request,maxlen,"<req><host>%s</host><key>%s</key><data>%s</data></req>",host_b64,key_b64,data_b64); + if(lastlogsize[0]==0) + { + snprintf(request,maxlen,"<req><host>%s</host><key>%s</key><data>%s</data></req>",host_b64,key_b64,data_b64); + } + else + { + snprintf(request,maxlen,"<req><host>%s</host><key>%s</key><data>%s</data><lastlogsize>%s</lastlogsize></req>",host_b64,key_b64,data_b64,lastlogsize_b64); + } return ret; } -int comms_parse_response(char *xml,char *host,char *key, char *data, int maxlen) +int comms_parse_response(char *xml,char *host,char *key, char *data, char *lastlogsize, int maxlen) { int ret = SUCCEED; int i; @@ -29,22 +39,27 @@ int comms_parse_response(char *xml,char *host,char *key, char *data, int maxlen) char host_b64[MAX_STRING_LEN]; char key_b64[MAX_STRING_LEN]; char data_b64[MAX_STRING_LEN]; + char lastlogsize_b64[MAX_STRING_LEN]; memset(host_b64,0,sizeof(host_b64)); memset(key_b64,0,sizeof(key_b64)); memset(data_b64,0,sizeof(data_b64)); + memset(lastlogsize_b64,0,sizeof(lastlogsize_b64)); xml_get_data(xml, "host", host_b64, sizeof(host_b64)-1); xml_get_data(xml, "key", key_b64, sizeof(key_b64)-1); xml_get_data(xml, "data", data_b64, sizeof(data_b64)-1); + xml_get_data(xml, "lastlogsize", lastlogsize_b64, sizeof(lastlogsize_b64)-1); memset(key,0,maxlen); memset(host,0,maxlen); memset(data,0,maxlen); + memset(lastlogsize,0,maxlen); str_base64_decode(host_b64, host, &i); str_base64_decode(key_b64, key, &i); str_base64_decode(data_b64, data, &i); + str_base64_decode(lastlogsize_b64, lastlogsize, &i); return ret; } diff --git a/src/zabbix_agent/active.c b/src/zabbix_agent/active.c index af2ed074..6c2a4505 100644 --- a/src/zabbix_agent/active.c +++ b/src/zabbix_agent/active.c @@ -323,7 +323,7 @@ int get_active_checks(char *server, int port, char *error, int max_error_len) return SUCCEED; } -int send_value(char *server,int port,char *host, char *key,char *value) +int send_value(char *server,int port,char *host, char *key,char *value, char *lastlogsize) { int i,s; char tosend[1024]; @@ -333,7 +333,7 @@ int send_value(char *server,int port,char *host, char *key,char *value) struct sockaddr_in myaddr_in; struct sockaddr_in servaddr_in; - zabbix_log( LOG_LEVEL_DEBUG, "In send_value()"); + zabbix_log( LOG_LEVEL_WARNING, "In send_value([%s])",lastlogsize); servaddr_in.sin_family=AF_INET; hp=gethostbyname(server); @@ -372,8 +372,9 @@ int send_value(char *server,int port,char *host, char *key,char *value) return FAIL; } - comms_create_request(host, key, value, tosend,sizeof(tosend)-1); + comms_create_request(host, key, value, lastlogsize, tosend, sizeof(tosend)-1); // snprintf(tosend,sizeof(tosend)-1,"%s:%s\n",shortname,value); + zabbix_log( LOG_LEVEL_WARNING, "XML before sonding [%s]",tosend); if( sendto(s,tosend,strlen(tosend),0,(struct sockaddr *)&servaddr_in,sizeof(struct sockaddr_in)) == -1 ) { @@ -413,7 +414,7 @@ int send_value(char *server,int port,char *host, char *key,char *value) int process_active_checks(char *server, int port) { char value[MAX_STRING_LEN]; - char value_tmp[MAX_STRING_LEN]; + char lastlogsize[MAX_STRING_LEN]; int i, now, count; int ret = SUCCEED; @@ -441,9 +442,9 @@ int process_active_checks(char *server, int port) { // snprintf(shortname, MAX_STRING_LEN-1,"%s:%s",CONFIG_HOSTNAME,metrics[i].key); // zabbix_log( LOG_LEVEL_DEBUG, "%s",shortname); - snprintf(value_tmp, MAX_STRING_LEN-1,"%d:%s",metrics[i].lastlogsize,value); + snprintf(lastlogsize, MAX_STRING_LEN-1,"%d",metrics[i].lastlogsize); - if(send_value(server,port,CONFIG_HOSTNAME,metrics[i].key,value_tmp) == FAIL) + if(send_value(server,port,CONFIG_HOSTNAME,metrics[i].key,value,lastlogsize) == FAIL) { ret = FAIL; break; @@ -461,11 +462,12 @@ int process_active_checks(char *server, int port) } else { + lastlogsize[0]=0; process(metrics[i].key, value); // snprintf(shortname, MAX_STRING_LEN-1,"%s:%s",CONFIG_HOSTNAME,metrics[i].key); // zabbix_log( LOG_LEVEL_DEBUG, "%s",shortname); - if(send_value(server,port,CONFIG_HOSTNAME,metrics[i].key,value) == FAIL) + if(send_value(server,port,CONFIG_HOSTNAME,metrics[i].key,value,lastlogsize) == FAIL) { ret = FAIL; break; diff --git a/src/zabbix_server/functions.c b/src/zabbix_server/functions.c index 48f6016c..b4dc9000 100644 --- a/src/zabbix_server/functions.c +++ b/src/zabbix_server/functions.c @@ -400,10 +400,9 @@ int process_data(int sockfd,char *server,char *key,char *value,char *lastlogsize DB_RESULT *result; DB_ITEM item; char *s; - char lastlogsize[MAX_STRING_LEN]; int update_tr; - zabbix_log( LOG_LEVEL_WARNING, "In process_data([%s],[%s],[%s])",server,key,value); + zabbix_log( LOG_LEVEL_WARNING, "In process_data([%s],[%s],[%s],[%s])",server,key,value,lastlogsize); snprintf(sql,sizeof(sql)-1,"select i.itemid,i.key_,h.host,h.port,i.delay,i.description,i.nextcheck,i.type,i.snmp_community,i.snmp_oid,h.useip,h.ip,i.history,i.lastvalue,i.prevvalue,i.value_type,i.trapper_hosts,i.delta,i.units,i.multiplier,i.formula from items i,hosts h where h.status=%d and h.hostid=i.hostid and h.host='%s' and i.key_='%s' and i.status=%d and i.type in (%d,%d)", HOST_STATUS_MONITORED, server, key, ITEM_STATUS_ACTIVE, ITEM_TYPE_TRAPPER, ITEM_TYPE_ZABBIX_ACTIVE); result = DBselect(sql); @@ -475,7 +474,7 @@ int process_data(int sockfd,char *server,char *key,char *value,char *lastlogsize s=value; if(strncmp(item.key,"log[",4)==0) { - s=strchr(value,':'); +/* s=strchr(value,':'); if(s == NULL) { zabbix_log(LOG_LEVEL_WARNING, "Wrong value received for item [%s:%s]", item.host, item.key); @@ -485,7 +484,7 @@ int process_data(int sockfd,char *server,char *key,char *value,char *lastlogsize s++; strncpy(lastlogsize, value, s-value-1); - lastlogsize[s-value-1]=0; + lastlogsize[s-value-1]=0;*/ item.lastlogsize=atoi(lastlogsize); zabbix_log(LOG_LEVEL_DEBUG, "Value [%s] S [%s] Lastlogsize [%s] [%d]", value, s, lastlogsize, s-value-1); diff --git a/src/zabbix_server/functions.h b/src/zabbix_server/functions.h index c2859b7b..52191bb0 100644 --- a/src/zabbix_server/functions.h +++ b/src/zabbix_server/functions.h @@ -25,7 +25,7 @@ #include "db.h" void update_triggers (int itemid); -int process_data(int sockfd,char *server,char *key, char *value); +int process_data(int sockfd,char *server,char *key, char *value,char *lastlogsize); void process_new_value(DB_ITEM *item,char *value,int *update_triggers); #endif diff --git a/src/zabbix_server/trapper/trapper.c b/src/zabbix_server/trapper/trapper.c index e3216ba6..37150719 100644 --- a/src/zabbix_server/trapper/trapper.c +++ b/src/zabbix_server/trapper/trapper.c @@ -59,6 +59,7 @@ int process_trap(int sockfd,char *s, int max_len) char result[MAX_STRING_LEN]; char host_b64[MAX_STRING_LEN],key_b64[MAX_STRING_LEN],value_b64[MAX_STRING_LEN]; char host_dec[MAX_STRING_LEN],key_dec[MAX_STRING_LEN],value_dec[MAX_STRING_LEN]; + char lastlogsize[MAX_STRING_LEN]; int ret=SUCCEED; int i; @@ -83,7 +84,7 @@ int process_trap(int sockfd,char *s, int max_len) { zabbix_log( LOG_LEVEL_WARNING, "XML received [%s]", s); - comms_parse_response(s,host_dec,key_dec, value_dec, sizeof(host_dec)-1); + comms_parse_response(s,host_dec,key_dec,value_dec,lastlogsize, sizeof(host_dec)-1); server=host_dec; value_string=value_dec; @@ -114,9 +115,10 @@ int process_trap(int sockfd,char *s, int max_len) } /* It points to ':', so have to increment */ value_string++; + lastlogsize[0]=0; } - ret=process_data(sockfd,server,key,value_string); + ret=process_data(sockfd,server,key,value_string,lastlogsize); if( SUCCEED == ret) { snprintf(result,sizeof(result)-1,"OK\n"); |