X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;ds=sidebyside;f=src%2Flogcollector%2Fread_command.c;h=b330c9404a31055f3cda31d25b89652a9565694c;hb=3f728675941dc69d4e544d3a880a56240a6e394a;hp=f1de982333c68f1a4571298548997b9b4fd1a60d;hpb=927951d1c1ad45ba9e7325f07d996154a91c911b;p=ossec-hids.git diff --git a/src/logcollector/read_command.c b/src/logcollector/read_command.c old mode 100755 new mode 100644 index f1de982..b330c94 --- a/src/logcollector/read_command.c +++ b/src/logcollector/read_command.c @@ -1,6 +1,3 @@ -/* @(#) $Id: ./src/logcollector/read_command.c, 2011/09/08 dcid Exp $ - */ - /* Copyright (C) 2009 Trend Micro Inc. * All right reserved. * @@ -10,81 +7,63 @@ * Foundation */ -/* Read the syslog */ - - #include "shared.h" #include "logcollector.h" - /* Read Output of commands */ void *read_command(int pos, int *rc, int drop_it) { - int cmd_size = 0; + size_t cmd_size = 0; char *p; - char str[OS_MAXSTR+1]; - + char str[OS_MAXSTR + 1]; FILE *cmd_output; - str[OS_MAXSTR]= '\0'; + str[OS_MAXSTR] = '\0'; *rc = 0; - debug2("%s: DEBUG: Running command '%s'", ARGV0, logff[pos].command); - cmd_output = popen(logff[pos].command, "r"); - if(!cmd_output) - { + if (!cmd_output) { merror("%s: ERROR: Unable to execute command: '%s'.", ARGV0, logff[pos].command); logff[pos].command = NULL; + return (NULL); } - snprintf(str, 256, "ossec: output: '%s': ", (NULL != logff[pos].alias) ? logff[pos].alias : logff[pos].command); cmd_size = strlen(str); - - while(fgets(str + cmd_size, OS_MAXSTR - OS_LOG_HEADER - 256, cmd_output) != NULL) - { - /* Getting the last occurence of \n */ - if ((p = strrchr(str, '\n')) != NULL) - { + while (fgets(str + cmd_size, OS_MAXSTR - OS_LOG_HEADER - 256, cmd_output) != NULL) { + /* Get the last occurrence of \n */ + if ((p = strrchr(str, '\n')) != NULL) { *p = '\0'; } - /* Removing empty lines. */ - #ifdef WIN32 - if(str[0] == '\r' && str[1] == '\0') - { + /* Remove empty lines */ +#ifdef WIN32 + if (str[0] == '\r' && str[1] == '\0') { continue; } - #endif - if(str[0] == '\0') - { +#endif + if (str[0] == '\0') { continue; } - debug2("%s: DEBUG: Reading command message: '%s'", ARGV0, str); - - /* Sending message to queue */ - if(drop_it == 0) - { - if(SendMSG(logr_queue,str, + /* Send message to queue */ + if (drop_it == 0) { + if (SendMSG(logr_queue, str, (NULL != logff[pos].alias) ? logff[pos].alias : logff[pos].command, - LOCALFILE_MQ) < 0) - { + LOCALFILE_MQ) < 0) { merror(QUEUE_SEND, ARGV0); - if((logr_queue = StartMQ(DEFAULTQPATH,WRITE)) < 0) - { + if ((logr_queue = StartMQ(DEFAULTQPATH, WRITE)) < 0) { ErrorExit(QUEUE_FATAL, ARGV0, DEFAULTQPATH); } } @@ -95,7 +74,6 @@ void *read_command(int pos, int *rc, int drop_it) pclose(cmd_output); - return(NULL); + return (NULL); } -/* EOF */