-/* @(#) $Id: notify.c,v 1.23 2009/06/26 13:50:02 dcid Exp $ */
+/* @(#) $Id: ./src/client-agent/notify.c, 2011/09/08 dcid Exp $
+ */
/* Copyright (C) 2009 Trend Micro Inc.
* All right reserved.
*
* This program is a free software; you can redistribute it
* and/or modify it under the terms of the GNU General Public
- * License (version 3) as published by the FSF - Free Software
+ * License (version 2) as published by the FSF - Free Software
* Foundation
*/
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
*/
int m_size = 512;
char *ret;
-
+
os_md5 md5sum;
-
+
if(OS_MD5_File(SHAREDCFG_FILE, md5sum) != 0)
{
snprintf(ret, m_size, "%s merged.mg\n", md5sum);
-
+
return(ret);
}
/* 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;
curr_time = time(0);
+ #ifndef ONEWAY
/* Check if the server has responded */
if((curr_time - available_server) > (3*NOTIFY_TIME))
{
verbose(SERVER_UP, ARGV0);
os_delwait();
}
+ #endif
/* Check if time has elapsed */
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();
}
}
+ 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);
}