X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;ds=sidebyside;f=src%2Fconfig%2Flocalfile-config.c;fp=src%2Fconfig%2Flocalfile-config.c;h=9c95036521840ab34d58458bc79ace13b6828447;hb=789cbc8e52da68eba3517b920ef22e000cf3c9fd;hp=b9df5463219ea3e1efc0fdacbea4595ceb8243eb;hpb=ef70704f0b31b59bb719b884d6a99cb9e3e2044a;p=ossec-hids.git diff --git a/src/config/localfile-config.c b/src/config/localfile-config.c index b9df546..9c95036 100755 --- a/src/config/localfile-config.c +++ b/src/config/localfile-config.c @@ -34,6 +34,8 @@ int Read_Localfile(XML_NODE node, void *d1, void *d2) char *xml_localfile_logformat = "log_format"; char *xml_localfile_frequency = "frequency"; char *xml_localfile_alias = "alias"; + char *xml_localfile_future = "only-future-events"; + char *xml_localfile_query = "query"; logreader *logf; logreader_config *log_config; @@ -50,10 +52,14 @@ int Read_Localfile(XML_NODE node, void *d1, void *d2) logf[0].command = NULL; logf[0].alias = NULL; logf[0].logformat = NULL; + logf[0].future = 0; + logf[0].query = NULL; logf[1].file = NULL; logf[1].command = NULL; logf[1].alias = NULL; logf[1].logformat = NULL; + logf[1].future = 0; + logf[1].query = NULL; } else { @@ -70,12 +76,16 @@ int Read_Localfile(XML_NODE node, void *d1, void *d2) logf[pl +1].command = NULL; logf[pl +1].alias = NULL; logf[pl +1].logformat = NULL; + logf[pl +1].future = 0; + logf[pl +1].query = NULL; } logf[pl].file = NULL; logf[pl].command = NULL; logf[pl].alias = NULL; logf[pl].logformat = NULL; + logf[pl].future = 0; + logf[pl].query = NULL; logf[pl].fp = NULL; logf[pl].ffile = NULL; logf[pl].djb_program_name = NULL; @@ -96,6 +106,15 @@ int Read_Localfile(XML_NODE node, void *d1, void *d2) merror(XML_VALUENULL, ARGV0, node[i]->element); return(OS_INVALID); } + else if(strcmp(node[i]->element,xml_localfile_future) == 0) + { + if (strcmp(node[i]->content, "yes") == 0) + logf[pl].future = 1; + } + else if(strcmp(node[i]->element,xml_localfile_query) == 0) + { + os_strdup(node[i]->content, logf[pl].query); + } else if(strcmp(node[i]->element,xml_localfile_command) == 0) { /* We don't accept remote commands from the manager - just in case. */ @@ -250,13 +269,11 @@ int Read_Localfile(XML_NODE node, void *d1, void *d2) lfile[OS_FLSIZE] = '\0'; ret = strftime(lfile, OS_FLSIZE, node[i]->content, p); - if(ret == 0) + if(ret != 0) { - merror(PARSE_ERROR, ARGV0, node[i]->content); - return(OS_INVALID); + os_strdup(node[i]->content, logf[pl].ffile); } - os_strdup(node[i]->content, logf[pl].ffile); os_strdup(node[i]->content, logf[pl].file); } @@ -354,6 +371,9 @@ int Read_Localfile(XML_NODE node, void *d1, void *d2) else if(strcmp(logf[pl].logformat, EVENTLOG) == 0) { } + else if(strcmp(logf[pl].logformat, EVENTCHANNEL) == 0) + { + } else { merror(XML_VALUEERR,ARGV0,node[i]->element,node[i]->content);