-/* @(#) $Id$ */
+/* @(#) $Id: ./src/logcollector/main.c, 2012/03/28 dcid Exp $
+ */
/* Copyright (C) 2009 Trend Micro Inc.
* All right reserved.
/* v0.4 (2005/11/11): Some cleanup and bug fixes
- * v0.3 (2005/08/26): Reading all files in just one process
+ * v0.3 (2005/08/26): Reading all files in just one process
* v0.2 (2005/04/04):
- */
+ */
/* Logcollector daemon.
int main(int argc, char **argv)
{
int c;
- int debug_flag = 0;
+ int debug_level = 0;
int test_config = 0,run_foreground = 0;
+ int accept_manager_commands = 0;
char *cfg = DEFAULTCPATH;
- char *dir = DEFAULTDIR;
+ // TODO: delete or implement
+ char *dir __attribute__((unused)) = DEFAULTDIR;
/* Setuping up random */
/* Setting the name */
OS_SetName(ARGV0);
-
+
while((c = getopt(argc, argv, "VtdhfD:c:")) != -1)
{
break;
case 'd':
nowDebug();
+ debug_level = 1;
break;
case 'f':
run_foreground = 1;
break;
case 't':
test_config = 1;
- break;
+ break;
default:
help(ARGV0);
- break;
+ break;
}
}
+ /* Check current debug_level
+ * Command line setting takes precedence
+ */
+ if (debug_level == 0)
+ {
+ /* Getting debug level */
+ debug_level = getDefine_Int("logcollector", "debug", 0, 2);
+ while(debug_level != 0)
+ {
+ nowDebug();
+ debug_level--;
+ }
+ }
+
+
debug1(STARTED_MSG,ARGV0);
+ accept_manager_commands = getDefine_Int("logcollector", "remote_commands",
+ 0, 1);
+
+
/* Reading config file */
- if(LogCollectorConfig(cfg) < 0)
+ if(LogCollectorConfig(cfg, accept_manager_commands) < 0)
ErrorExit(CONFIG_ERROR, ARGV0, cfg);
-
-
+
+
/* Getting loop timeout */
loop_timeout = getDefine_Int("logcollector",
"loop_timeout",
1, 120);
-
+
open_file_attempts = getDefine_Int("logcollector", "open_attempts",
2, 998);
-
- debug_flag = getDefine_Int("logcollector",
- "debug",
- 0,2);
-
- /* Getting debug values */
- while(debug_flag != 0)
- {
- nowDebug();
- debug_flag--;
- }
+
+ accept_manager_commands = getDefine_Int("logcollector", "remote_commands",
+ 0, 1);
/* Exit if test config */
if(test_config)
exit(0);
-
+
/* No file available to monitor -- continue */
if(logff == NULL)
merror(NO_FILE, ARGV0);
}
-
+
/* Starting signal handler */
- StartSIG(ARGV0);
+ StartSIG(ARGV0);
- if (!run_foreground)
+ if (!run_foreground)
{
/* Going on daemon mode */
nowDaemon();
if(CreatePID(ARGV0, getpid()) < 0)
merror(PID_ERROR, ARGV0);
-
-
+
+
/* Waiting 6 seconds for the analysisd/agentd to settle */
debug1("%s: DEBUG: Waiting main daemons to settle.", ARGV0);
sleep(6);
-
-
+
+
/* Starting the queue. */
if((logr_queue = StartMQ(DEFAULTQPATH,WRITE)) < 0)
ErrorExit(QUEUE_FATAL, ARGV0, DEFAULTQPATH);
- /* Main loop */
+ /* Main loop */
LogCollectorStart();
-
+
return(0);
}