X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?p=ossec-hids.git;a=blobdiff_plain;f=src%2Fclient-agent%2Fnotify.c;h=1b239f26cb24aebd963baaadfba4ce4b175b5fe6;hp=bfd43411980e1bf3c245180ad08006e9167e7166;hb=3f728675941dc69d4e544d3a880a56240a6e394a;hpb=927951d1c1ad45ba9e7325f07d996154a91c911b diff --git a/src/client-agent/notify.c b/src/client-agent/notify.c old mode 100755 new mode 100644 index bfd4341..1b239f2 --- a/src/client-agent/notify.c +++ b/src/client-agent/notify.c @@ -1,6 +1,3 @@ -/* @(#) $Id: ./src/client-agent/notify.c, 2011/09/08 dcid Exp $ - */ - /* Copyright (C) 2009 Trend Micro Inc. * All right reserved. * @@ -10,91 +7,74 @@ * Foundation */ - #include "shared.h" - #include "os_crypto/md5/md5_op.h" #include "os_net/os_net.h" #include "agentd.h" -time_t g_saved_time = 0; +#ifndef WIN32 +static time_t g_saved_time = 0; +static char *rand_keepalive_str2(char *dst, int size); -char *rand_keepalive_str2(char *dst, int size) +static char *rand_keepalive_str2(char *dst, int size) { static const char text[] = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789" "!@#$%^&*()_+-=;'[],./?"; int i, len = rand() % (size - 1); - for ( i = 0; i < len; ++i ) - { - dst[i] = text[rand() % (sizeof text - 1)]; + for ( i = 0; i < len; ++i ) { + dst[i] = text[(unsigned)rand() % (sizeof text - 1)]; } dst[i] = '\0'; return dst; } +#endif -/* getfiles: Return the name of the files in a directory - */ +/* Return the names of the files in a directory */ char *getsharedfiles() { - int m_size = 512; - + unsigned int m_size = 512; char *ret; - os_md5 md5sum; - - if(OS_MD5_File(SHAREDCFG_FILE, md5sum) != 0) - { + if (OS_MD5_File(SHAREDCFG_FILE, md5sum, OS_TEXT) != 0) { md5sum[0] = 'x'; - md5sum[1] = 'x'; md5sum[1] = '\0'; } - - /* we control these files, max size is m_size */ - ret = (char *)calloc(m_size +1, sizeof(char)); - if(!ret) - { - merror(MEM_ERROR, ARGV0); - return(NULL); + /* We control these files, max size is m_size */ + ret = (char *)calloc(m_size + 1, sizeof(char)); + if (!ret) { + merror(MEM_ERROR, ARGV0, errno, strerror(errno)); + return (NULL); } - snprintf(ret, m_size, "%s merged.mg\n", md5sum); - - return(ret); + return (ret); } #ifndef WIN32 -/* run_notify: Send periodically notification to server */ +/* Periodically send notification to server */ void run_notify() { char keep_alive_random[1024]; - char tmp_msg[OS_SIZE_1024 +1]; + char tmp_msg[OS_SIZE_1024 + 1]; char *uname; char *shared_files; os_md5 md5sum; - - - keep_alive_random[0] = '\0'; - time_t curr_time; + keep_alive_random[0] = '\0'; curr_time = time(0); - - #ifndef ONEWAY +#ifndef ONEWAY_ENABLED /* Check if the server has responded */ - if((curr_time - available_server) > agt->max_time_reconnect_try) - { - /* If response is not available, set lock and - * wait for it. - */ + if ((curr_time - available_server) > agt->max_time_reconnect_try) { + /* If response is not available, set lock and wait for it */ verbose(SERVER_UNAV, ARGV0); os_setwait(); @@ -104,73 +84,57 @@ void run_notify() verbose(SERVER_UP, ARGV0); os_delwait(); } - #endif - +#endif /* Check if time has elapsed */ - if((curr_time - g_saved_time) < agt->notify_time) - { + if ((curr_time - g_saved_time) < agt->notify_time) { return; } g_saved_time = curr_time; debug1("%s: DEBUG: Sending agent notification.", ARGV0); - - /* Send the message. - * Message is going to be the - * uname\n checksum file\n checksum file\n + /* Send the message + * Message is going to be the uname\n checksum file\n checksum file\n */ - /* Getting uname */ + /* Get uname */ uname = getuname(); - if(!uname) - { - merror(MEM_ERROR,ARGV0); + if (!uname) { + merror(MEM_ERROR, ARGV0, errno, strerror(errno)); return; } - - /* get shared files */ + /* Get shared files */ shared_files = getsharedfiles(); - if(!shared_files) - { + if (!shared_files) { shared_files = strdup("\0"); - if(!shared_files) - { + if (!shared_files) { free(uname); - merror(MEM_ERROR,ARGV0); + merror(MEM_ERROR, ARGV0, errno, strerror(errno)); return; } } rand_keepalive_str2(keep_alive_random, 700); - - /* creating message */ - if((File_DateofChange(AGENTCONFIGINT) > 0 ) && - (OS_MD5_File(AGENTCONFIGINT, md5sum) == 0)) - { + /* Create message */ + if ((File_DateofChange(AGENTCONFIGINT) > 0 ) && + (OS_MD5_File(AGENTCONFIGINT, md5sum, OS_TEXT) == 0)) { snprintf(tmp_msg, OS_SIZE_1024, "#!-%s / %s\n%s\n%s", uname, md5sum, shared_files, keep_alive_random); - } - else - { + } else { snprintf(tmp_msg, OS_SIZE_1024, "#!-%s\n%s\n%s", uname, shared_files, keep_alive_random); } - - /* Sending status message */ + /* Send status message */ send_msg(0, tmp_msg); - free(uname); free(shared_files); return; } -#endif - +#endif /* !WIN32 */ -/* EOF */