in mlogc/mlogc.c [774:989]
static void init_configuration(void)
{
char errstr[1024];
apr_status_t rc = 0;
const char *s = NULL;
/* Other values may be based off the collector root. */
s = apr_table_get(conf, "CollectorRoot");
if (s != NULL) {
collector_root = s;
}
/* Error Log */
s = apr_table_get(conf, "ErrorLog");
if (s != NULL) {
error_log_path = file_path(s);
}
s = apr_table_get(conf, "ErrorLogLevel");
if (s != NULL) {
error_log_level = atoi(s);
}
if ((rc = apr_file_open(&error_log_fd, error_log_path,
APR_WRITE | APR_CREATE | APR_APPEND,
APR_OS_DEFAULT, pool)) != APR_SUCCESS)
{
error_log(LOG_ERROR, NULL, "Failed to open the error log %s: %s\n",
error_log_path, apr_strerror(rc, errstr, 1024));
logc_shutdown(1);
}
error_log(LOG_NOTICE, NULL,
"Configuring ModSecurity Audit Log Collector %s.", VERSION);
/* Startup Delay */
s = apr_table_get(conf, "StartupDelay");
if (s != NULL) {
startup_delay = atoi(s);
}
/* TLS Protocol - TLSv1(0) TLSv1.1(1) TLSv1.2(2) (SSLv3 not supported) */
s = apr_table_get(conf, "TLSProtocol");
if (s != NULL) {
int num = atoi(s);
switch (num) {
case 0:
tlsprotocol = 0;
break;
case 1:
tlsprotocol = 1;
break;
case 2:
tlsprotocol = 2;
break;
default:
tlsprotocol = 2; /* Default is TLSv1.2 */
}
}
curlversion = curl_version_info(CURLVERSION_NOW);
if ( startup_delay > 0 ) {
error_log(LOG_NOTICE, NULL,
"Delaying execution for %dms.", startup_delay);
apr_sleep(startup_delay * 1000);
error_log(LOG_DEBUG, NULL,
"Continuing execution after %dms delay.", startup_delay);
}
/* Remaining Configuration */
error_log(LOG_DEBUG2, NULL, "CollectorRoot=%s", collector_root);
error_log(LOG_DEBUG2, NULL, "ErrorLog=%s", error_log_path);
error_log(LOG_DEBUG2, NULL, "ErrorLogLevel=%d", error_log_level);
error_log(LOG_DEBUG2, NULL, "StartupDelay=%d", startup_delay);
error_log(LOG_DEBUG2, NULL, "TLSProtocol=%d", tlsprotocol);
error_log(LOG_DEBUG2, NULL, "cURL version=%s", curlversion->version);
s = apr_table_get(conf, "CheckpointInterval");
if (s != NULL) {
checkpoint_interval = atoi(s);
error_log(LOG_DEBUG2, NULL,
"CheckpointInterval=%d", checkpoint_interval);
}
s = apr_table_get(conf, "InsecureNoCheckCert");
if (s != NULL) {
int num = atoi(s);
if (num)
{
ssl_validation = 0;
}
else
{
ssl_validation = 1;
}
error_log(LOG_DEBUG2, NULL, "InsecureNoCheckCert=%d", num);
}
s = apr_table_get(conf, "QueuePath");
if (s != NULL) {
queue_path = file_path(s);
error_log(LOG_DEBUG2, NULL, "QueuePath=%s", queue_path);
}
else {
error_log(LOG_ERROR, NULL,
"QueuePath not defined in the configuration file.");
logc_shutdown(1);
}
s = apr_table_get(conf, "LockFile");
if (s != NULL) {
lockfile = file_path(s);
error_log(LOG_DEBUG2, NULL, "LockFile=%s", lockfile);
}
s = apr_table_get(conf, "ServerErrorTimeout");
if (s != NULL) {
server_error_timeout = atoi(s);
error_log(LOG_DEBUG2, NULL,
"ServerErrorTimeout=%d", server_error_timeout);
}
s = apr_table_get(conf, "TransactionDelay");
if (s != NULL) {
transaction_delay = atoi(s);
error_log(LOG_DEBUG2, NULL, "TransactionDelay=%d", transaction_delay);
}
s = apr_table_get(conf, "TransactionLog");
if (s != NULL) {
transaction_log_path = file_path(s);
error_log(LOG_DEBUG2, NULL, "TransactionLog=%s", transaction_log_path);
}
s = apr_table_get(conf, "MaxConnections");
if (s != NULL) {
int v = atoi(s);
if (v >= 0) max_connections = v;
error_log(LOG_DEBUG2, NULL, "MaxConnections=%d", max_connections);
}
s = apr_table_get(conf, "MaxWorkerRequests");
if (s != NULL) {
int v = atoi(s);
if (v >= 0) max_worker_requests = v;
error_log(LOG_DEBUG2, NULL,
"MaxWorkerRequests=%d", max_worker_requests);
}
s = apr_table_get(conf, "KeepAlive");
if (s != NULL) {
int v = atoi(s);
if (v >= 0) keep_alive = v;
error_log(LOG_DEBUG2, NULL, "KeepAlive=%d", keep_alive);
}
s = apr_table_get(conf, "KeepAliveTimeout");
if (s != NULL) {
int v = atoi(s);
if (v >= 0) keep_alive_timeout = v;
error_log(LOG_DEBUG2, NULL, "KeepAliveTimeout=%d", keep_alive_timeout);
}
s = apr_table_get(conf, "LogStorageDir");
if (s != NULL) {
log_repository = file_path(s);
error_log(LOG_DEBUG2, NULL, "LogStorageDir=%s", log_repository);
}
else {
error_log(LOG_ERROR, NULL,
"Missing mandatory parameter LogStorageDir.\n");
logc_shutdown(1);
}
s = apr_table_get(conf, "ConsoleURI");
if (s != NULL) {
console_uri = s;
error_log(LOG_DEBUG2, NULL, "ConsoleURI=%s", console_uri);
}
else {
error_log(LOG_ERROR, NULL, "Missing mandatory parameter ConsoleURI.\n");
logc_shutdown(1);
}
s = apr_table_get(conf, "SensorUsername");
if (s != NULL) {
sensor_username = s;
error_log(LOG_DEBUG2, NULL, "SensorUsername=%s", sensor_username);
}
else {
error_log(LOG_ERROR, NULL,
"Missing mandatory parameter SensorUsername.\n");
logc_shutdown(1);
}
s = apr_table_get(conf, "SensorPassword");
if (s != NULL) {
sensor_password = s;
error_log(LOG_DEBUG2, NULL, "SensorPassword=%s", sensor_password);
}
else {
error_log(LOG_ERROR, NULL,
"Missing mandatory parameter SensorPassword.\n");
logc_shutdown(1);
}
s = apr_table_get(conf, "KeepEntries");
if (s != NULL) {
keep_entries = atoi(s);
}
else {
keep_entries = 0;
}
error_log(LOG_DEBUG2, NULL, "KeepEntries=%d", keep_entries);
}