X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?p=ossec-hids.git;a=blobdiff_plain;f=src%2Fconfig%2Fclient-config.c;fp=src%2Fconfig%2Fclient-config.c;h=e670fe6cb97a5b6ca2f7f062dae862c5fb850471;hp=b2d22f700e2e10e076eaa541a2e79393c1fabd76;hb=3f728675941dc69d4e544d3a880a56240a6e394a;hpb=927951d1c1ad45ba9e7325f07d996154a91c911b diff --git a/src/config/client-config.c b/src/config/client-config.c old mode 100755 new mode 100644 index b2d22f7..e670fe6 --- a/src/config/client-config.c +++ b/src/config/client-config.c @@ -1,5 +1,3 @@ -/* $OSSEC, client-config.c, v0.1, 2005/04/01, Daniel B. Cid$ */ - /* Copyright (C) 2009 Trend Micro Inc. * All right reserved. * @@ -9,28 +7,25 @@ * Foundation */ - - #include "shared.h" #include "client-config.h" #include "os_net/os_net.h" +#include "config.h" -int Read_Client(XML_NODE node, void *d1, void *d2) +int Read_Client(XML_NODE node, void *d1, __attribute__((unused)) void *d2) { - int i = 0; + int i = 0, portnum; /* 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"; + const char *xml_server_ip = "server-ip"; + const char *xml_server_hostname = "server-hostname"; + const char *xml_local_ip = "local_ip"; + const char *xml_client_port = "port"; + const char *xml_ar_disabled = "disable-active-response"; + const char *xml_notify_time = "notify_time"; + const char *xml_max_time_reconnect_try = "time-reconnect"; + const char *xml_profile_name = "config-profile"; agent *logr; @@ -39,160 +34,112 @@ int Read_Client(XML_NODE node, void *d1, void *d2) logr->notify_time = 0; logr->max_time_reconnect_try = 0; - while(node[i]) - { - if(!node[i]->element) - { - merror(XML_ELEMNULL, ARGV0); - return(OS_INVALID); - } - else if(!node[i]->content) - { - merror(XML_VALUENULL, ARGV0, node[i]->element); - return(OS_INVALID); + while (node[i]) { + if (!node[i]->element) { + merror(XML_ELEMNULL, __local_name); + return (OS_INVALID); + } else if (!node[i]->content) { + merror(XML_VALUENULL, __local_name, node[i]->element); + return (OS_INVALID); } - /* Getting local ip. */ - else if(strcmp(node[i]->element, xml_local_ip) == 0) - { + /* Get local IP */ + else if (strcmp(node[i]->element, xml_local_ip) == 0) { os_strdup(node[i]->content, logr->lip); - if(OS_IsValidIP(logr->lip, NULL) != 1) - { - merror(INVALID_IP, ARGV0, logr->lip); - return(OS_INVALID); + if (OS_IsValidIP(logr->lip, NULL) != 1) { + merror(INVALID_IP, __local_name, logr->lip); + return (OS_INVALID); } } - /* Getting server ip */ - else if(strcmp(node[i]->element,xml_client_ip) == 0) - { - int ip_id = 0; + /* Get server IP */ + else if (strcmp(node[i]->element, xml_server_ip) == 0) { + unsigned int ip_id = 0; - /* Getting last ip */ - if(logr->rip) - { - while(logr->rip[ip_id]) - { + /* Get last IP */ + if (logr->rip) { + while (logr->rip[ip_id]) { ip_id++; } } - os_realloc(logr->rip, (ip_id + 2) * sizeof(char*), logr->rip); + os_realloc(logr->rip, (ip_id + 2) * sizeof(char *), logr->rip); logr->rip[ip_id] = NULL; - logr->rip[ip_id +1] = 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) - { - merror(INVALID_IP, ARGV0, logr->rip[ip_id]); - return(OS_INVALID); + if (OS_IsValidIP(logr->rip[ip_id], NULL) != 1) { + merror(INVALID_IP, __local_name, logr->rip[ip_id]); + return (OS_INVALID); } logr->rip_id++; - } - else if(strcmp(node[i]->element,xml_client_hostname) == 0) - { - int ip_id = 0; + } else if (strcmp(node[i]->element, xml_server_hostname) == 0) { + unsigned int ip_id = 0; char *s_ip; - char f_ip[128]; - - /* Getting last ip. */ - if(logr->rip) - { - while(logr->rip[ip_id]) - { + /* Get last IP */ + if (logr->rip) { + while (logr->rip[ip_id]) { ip_id++; } } - - os_realloc(logr->rip, (ip_id + 2) * sizeof(char*), - logr->rip); - - + os_realloc(logr->rip, (ip_id + 2) * sizeof(char *), logr->rip); s_ip = OS_GetHost(node[i]->content, 5); - if(!s_ip) - { - merror("%s: WARN: Unable to get hostname for '%s'.", - ARGV0, node[i]->content); - merror(AG_INV_HOST, ARGV0, node[i]->content); - - os_strdup("invalid_ip", s_ip); + if (!s_ip) { + merror("%s: WARN: '%s' does not resolve to an address.", + __local_name, node[i]->content); + merror(AG_INV_HOST, __local_name, node[i]->content); } - - - f_ip[127] = '\0'; - snprintf(f_ip, 127, "%s/%s", node[i]->content, s_ip); - - os_strdup(f_ip, logr->rip[ip_id]); - logr->rip[ip_id +1] = NULL; - free(s_ip); + os_strdup(node[i]->content, logr->rip[ip_id]); + logr->rip[ip_id + 1] = NULL; logr->rip_id++; - } - else if(strcmp(node[i]->element,xml_client_port) == 0) - { - if(!OS_StrIsNum(node[i]->content)) - { - merror(XML_VALUEERR,ARGV0,node[i]->element,node[i]->content); - return(OS_INVALID); + } else if (strcmp(node[i]->element, xml_client_port) == 0) { + if (!OS_StrIsNum(node[i]->content)) { + merror(XML_VALUEERR, __local_name, node[i]->element, node[i]->content); + return (OS_INVALID); } - logr->port = atoi(node[i]->content); + os_strdup(node[i]->content, logr->port); + portnum = atoi(node[i]->content); - if(logr->port <= 0 || logr->port > 65535) + if(portnum <= 0 || portnum > 65535) { - merror(PORT_ERROR, ARGV0, logr->port); + merror(PORT_ERROR, __local_name, portnum); 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); + } else if (strcmp(node[i]->element, xml_notify_time) == 0) { + if (!OS_StrIsNum(node[i]->content)) { + merror(XML_VALUEERR, __local_name, 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); + } else if (strcmp(node[i]->element, xml_max_time_reconnect_try) == 0) { + if (!OS_StrIsNum(node[i]->content)) { + merror(XML_VALUEERR, __local_name, 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) + } else if (strcmp(node[i]->element, xml_ar_disabled) == 0) { + if (strcmp(node[i]->content, "yes") == 0) { logr->execdq = -1; - else if(strcmp(node[i]->content, "no") == 0) + } else if (strcmp(node[i]->content, "no") == 0) { logr->execdq = 0; - else - { - merror(XML_VALUEERR,ARGV0,node[i]->element,node[i]->content); - return(OS_INVALID); + } else { + merror(XML_VALUEERR, __local_name, node[i]->element, node[i]->content); + return (OS_INVALID); } - } - /* cmoraes */ - else if(strcmp(node[i]->element,xml_profile_name) == 0) - { - /* profile name can be anything hence no validation */ + } 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); - return(OS_INVALID); + } else { + merror(XML_INVELEM, __local_name, node[i]->element); + return (OS_INVALID); } i++; } - if(!logr->rip) - { - return(OS_INVALID); + if (!logr->rip) { + return (OS_INVALID); } - return(0); + return (0); } - -/* EOF */