X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?p=ossec-hids.git;a=blobdiff_plain;f=src%2Fclient-agent%2Fnotify.c;h=e698380e6e3b6d88af426b88b2ece8cfb7e2d61d;hp=39c332c1cc8bb7c884739fc95f55fa6d4be12e43;hb=6ef2f786c6c8ead94841b5f93baf9f43421f08c8;hpb=301048b51990573e58a30dc4a5bb4ec285cad554 diff --git a/src/client-agent/notify.c b/src/client-agent/notify.c index 39c332c..e698380 100755 --- a/src/client-agent/notify.c +++ b/src/client-agent/notify.c @@ -1,4 +1,5 @@ -/* @(#) $Id$ */ +/* @(#) $Id: ./src/client-agent/notify.c, 2011/09/08 dcid Exp $ + */ /* Copyright (C) 2009 Trend Micro Inc. * All right reserved. @@ -19,6 +20,20 @@ time_t g_saved_time = 0; +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)]; + } + dst[i] = '\0'; + return dst; +} /* getfiles: Return the name of the files in a directory */ @@ -27,9 +42,9 @@ char *getsharedfiles() int m_size = 512; char *ret; - + os_md5 md5sum; - + if(OS_MD5_File(SHAREDCFG_FILE, md5sum) != 0) { @@ -49,7 +64,7 @@ char *getsharedfiles() snprintf(ret, m_size, "%s merged.mg\n", md5sum); - + return(ret); } @@ -59,9 +74,14 @@ char *getsharedfiles() /* run_notify: Send periodically notification to server */ void run_notify() { + char keep_alive_random[1024]; char tmp_msg[OS_SIZE_1024 +1]; char *uname; char *shared_files; + os_md5 md5sum; + + + keep_alive_random[0] = '\0'; time_t curr_time; @@ -93,14 +113,14 @@ void run_notify() 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 - */ + * Message is going to be the + * uname\n checksum file\n checksum file\n + */ /* Getting uname */ uname = getuname(); @@ -124,23 +144,20 @@ void run_notify() } } + rand_keepalive_str2(keep_alive_random, 700); + /* creating message */ - if(File_DateofChange(AGENTCONFIGINT) > 0) + if((File_DateofChange(AGENTCONFIGINT) > 0 ) && + (OS_MD5_File(AGENTCONFIGINT, md5sum) == 0)) { - os_md5 md5sum; - if(OS_MD5_File(AGENTCONFIGINT, md5sum) != 0) - { - snprintf(tmp_msg, OS_SIZE_1024, "#!-%s\n%s",uname, shared_files); - } - else - { - snprintf(tmp_msg, OS_SIZE_1024, "#!-%s / %s\n%s",uname, md5sum, shared_files); - } + snprintf(tmp_msg, OS_SIZE_1024, "#!-%s / %s\n%s\n%s", + uname, md5sum, shared_files, keep_alive_random); } else { - snprintf(tmp_msg, OS_SIZE_1024, "#!-%s\n%s",uname, shared_files); + snprintf(tmp_msg, OS_SIZE_1024, "#!-%s\n%s\n%s", + uname, shared_files, keep_alive_random); }