summaryrefslogtreecommitdiffstats
path: root/src/zabbix_server/trapper
diff options
context:
space:
mode:
authorsasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-10-30 15:22:44 +0000
committersasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-10-30 15:22:44 +0000
commit5e4063517c2aba730d1aa2273754a85891375282 (patch)
treeb51454a45765f1d0e249e1f8943f22b2d2e7ca7b /src/zabbix_server/trapper
parent28372be4dd75b7c4ffe459ec2dd82af252112fac (diff)
downloadzabbix-5e4063517c2aba730d1aa2273754a85891375282.tar.gz
zabbix-5e4063517c2aba730d1aa2273754a85891375282.tar.xz
zabbix-5e4063517c2aba730d1aa2273754a85891375282.zip
- [NTT-29] zabbix_server process on master node terminated unexpectedly
[svn merge -r4947:4948 svn://svn.zabbix.com/branches/1.4.j] git-svn-id: svn://svn.zabbix.com/trunk@4949 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/zabbix_server/trapper')
-rw-r--r--src/zabbix_server/trapper/nodeevents.c7
-rw-r--r--src/zabbix_server/trapper/trapper.c5
2 files changed, 8 insertions, 4 deletions
diff --git a/src/zabbix_server/trapper/nodeevents.c b/src/zabbix_server/trapper/nodeevents.c
index 10200ebf..7fd21b3e 100644
--- a/src/zabbix_server/trapper/nodeevents.c
+++ b/src/zabbix_server/trapper/nodeevents.c
@@ -73,18 +73,23 @@ static int process_record(int nodeid, char *record)
memset(&event,0,sizeof(DB_EVENT));
zbx_get_field(record,tmp,0,ZBX_DM_DELIMITER);
- sscanf(tmp,ZBX_FS_UI64,&event.eventid);
ZBX_STR2UINT64(event.eventid, tmp);
+
zbx_get_field(record,tmp,1,ZBX_DM_DELIMITER);
event.source=atoi(tmp);
+
zbx_get_field(record,tmp,2,ZBX_DM_DELIMITER);
event.object=atoi(tmp);
+
zbx_get_field(record,tmp,3,ZBX_DM_DELIMITER);
ZBX_STR2UINT64(event.objectid, tmp);
+
zbx_get_field(record,tmp,4,ZBX_DM_DELIMITER);
event.clock=atoi(tmp);
+
zbx_get_field(record,tmp,5,ZBX_DM_DELIMITER);
event.value=atoi(tmp);
+
zbx_get_field(record,tmp,6,ZBX_DM_DELIMITER);
event.acknowledged=atoi(tmp);
diff --git a/src/zabbix_server/trapper/trapper.c b/src/zabbix_server/trapper/trapper.c
index 58e5167c..5b40f0ac 100644
--- a/src/zabbix_server/trapper/trapper.c
+++ b/src/zabbix_server/trapper/trapper.c
@@ -104,13 +104,12 @@ static int process_trap(zbx_sock_t *sock,char *s, int max_len)
else {
res = calculate_checksums(nodeid, NULL, 0);
if (SUCCEED == res && NULL != (data = get_config_data(nodeid, ZBX_NODE_SLAVE))) {
- if (SUCCEED == res)
- res = send_data_to_node(sender_nodeid, sock, data);
+ res = send_data_to_node(sender_nodeid, sock, data);
+ zbx_free(data);
if (SUCCEED == res)
res = recv_data_from_node(sender_nodeid, sock, &answer);
if (SUCCEED == res && 0 == strcmp(answer, "OK"))
res = update_checksums(nodeid, ZBX_NODE_SLAVE, SUCCEED, NULL, 0, NULL);
- zbx_free(data);
}
}