diff options
Diffstat (limited to 'src/zabbix_agent_win32/xml_comms.cpp')
-rwxr-xr-x | src/zabbix_agent_win32/xml_comms.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/zabbix_agent_win32/xml_comms.cpp b/src/zabbix_agent_win32/xml_comms.cpp index 9a4a551c..2e7c71a4 100755 --- a/src/zabbix_agent_win32/xml_comms.cpp +++ b/src/zabbix_agent_win32/xml_comms.cpp @@ -1,31 +1,44 @@ #include "zabbixw32.h" -int comms_create_request(char *host, char *key, char *data, char *lastlogsize, char *request,int maxlen) +int comms_create_request(char *host, char *key, char *data, char *lastlogsize, char *timestamp, 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]; + char timestamp_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)); + memset(timestamp_b64,0,sizeof(timestamp_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)); + str_base64_encode(timestamp, timestamp_b64, strlen(timestamp)); if(lastlogsize[0]==0) { - sprintf(request,"<req><host>%s</host><key>%s</key><data>%s</data></req>",host_b64,key_b64,data_b64); + sprintf(request,"<req><host>%s</host><key>%s</key><data>%s</data></req>", + host_b64,key_b64,data_b64); } else { - sprintf(request,"<req><host>%s</host><key>%s</key><data>%s</data><lastlogsize>%s</lastlogsize></req>",host_b64,key_b64,data_b64,lastlogsize_b64); - } + if(timestamp[0] == 0) + { + sprintf(request,"<req><host>%s</host><key>%s</key><data>%s</data><lastlogsize>%s</lastlogsize></req>", + host_b64,key_b64,data_b64,lastlogsize_b64); + } + else + { + sprintf(request,"<req><host>%s</host><key>%s</key><data>%s</data><lastlogsize>%s</lastlogsize><timestamp>%s</timestamp></req>", + host_b64,key_b64,data_b64,lastlogsize_b64,timestamp_b64); + } + } return ret; } |