X-Git-Url: http://ftp.carnet.hr/pub/carnet-debian/scm?a=blobdiff_plain;f=src%2Fconfig%2Fclient-config.c;h=b2d22f700e2e10e076eaa541a2e79393c1fabd76;hb=e81e4e82e5115bf99b6fbd9ebd486de325d67ed6;hp=3eddfc30860d8de8ae95c2fa334637792544e65b;hpb=301048b51990573e58a30dc4a5bb4ec285cad554;p=ossec-hids.git diff --git a/src/config/client-config.c b/src/config/client-config.c index 3eddfc3..b2d22f7 100755 --- a/src/config/client-config.c +++ b/src/config/client-config.c @@ -16,21 +16,28 @@ #include "os_net/os_net.h" -int Read_Client(XML_NODE node, void *d1, void *d2) +int Read_Client(XML_NODE node, void *d1, void *d2) { int i = 0; - + /* XML definitions */ char *xml_client_ip = "server-ip"; char *xml_client_hostname = "server-hostname"; char *xml_local_ip = "local_ip"; char *xml_client_port = "port"; char *xml_ar_disabled = "disable-active-response"; + char *xml_notify_time = "notify_time"; + char *xml_max_time_reconnect_try = "time-reconnect"; + + /* cmoraes */ + char *xml_profile_name = "config-profile"; agent *logr; logr = (agent *)d1; + logr->notify_time = 0; + logr->max_time_reconnect_try = 0; while(node[i]) { @@ -70,7 +77,7 @@ int Read_Client(XML_NODE node, void *d1, void *d2) os_realloc(logr->rip, (ip_id + 2) * sizeof(char*), logr->rip); logr->rip[ip_id] = NULL; logr->rip[ip_id +1] = NULL; - + os_strdup(node[i]->content, logr->rip[ip_id]); if(OS_IsValidIP(logr->rip[ip_id], NULL) != 1) { @@ -98,7 +105,7 @@ int Read_Client(XML_NODE node, void *d1, void *d2) os_realloc(logr->rip, (ip_id + 2) * sizeof(char*), logr->rip); - + s_ip = OS_GetHost(node[i]->content, 5); if(!s_ip) { @@ -108,7 +115,7 @@ int Read_Client(XML_NODE node, void *d1, void *d2) os_strdup("invalid_ip", s_ip); } - + f_ip[127] = '\0'; snprintf(f_ip, 127, "%s/%s", node[i]->content, s_ip); @@ -135,6 +142,24 @@ int Read_Client(XML_NODE node, void *d1, void *d2) return(OS_INVALID); } } + else if(strcmp(node[i]->element,xml_notify_time) == 0) + { + if(!OS_StrIsNum(node[i]->content)) + { + merror(XML_VALUEERR,ARGV0,node[i]->element,node[i]->content); + return(OS_INVALID); + } + logr->notify_time = atoi(node[i]->content); + } + else if(strcmp(node[i]->element,xml_max_time_reconnect_try) == 0) + { + if(!OS_StrIsNum(node[i]->content)) + { + merror(XML_VALUEERR,ARGV0,node[i]->element,node[i]->content); + return(OS_INVALID); + } + logr->max_time_reconnect_try = atoi(node[i]->content); + } else if(strcmp(node[i]->element,xml_ar_disabled) == 0) { if(strcmp(node[i]->content, "yes") == 0) @@ -147,6 +172,12 @@ int Read_Client(XML_NODE node, void *d1, void *d2) return(OS_INVALID); } } + /* cmoraes */ + else if(strcmp(node[i]->element,xml_profile_name) == 0) + { + /* profile name can be anything hence no validation */ + os_strdup(node[i]->content, logr->profile); + } else { merror(XML_INVELEM, ARGV0, node[i]->element);