From 412482f6b131b196824e585a92b7fcaa39db6d1b Mon Sep 17 00:00:00 2001 From: Eric Leblond Date: Tue, 9 Oct 2012 12:56:17 +0200 Subject: [PATCH] filestore: create file store directory if needed This patch modifies the file store system to have it create the file store directory if needed. It dos not create the full directory tree as the parent directory must have already been created. --- src/log-filestore.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/log-filestore.c b/src/log-filestore.c index 645063a0bd..c6ea732008 100644 --- a/src/log-filestore.c +++ b/src/log-filestore.c @@ -440,10 +440,21 @@ TmEcode LogFilestoreLogThreadInit(ThreadVars *t, void *initdata, void **data) struct stat stat_buf; if (stat(g_logfile_base_dir, &stat_buf) != 0) { - SCLogError(SC_ERR_LOGDIR_CONFIG, "The file drop directory \"%s\" " - "supplied doesn't exist. Shutting down the engine", - g_logfile_base_dir); - exit(EXIT_FAILURE); + int ret; + ret = mkdir(g_logfile_base_dir, S_IRWXU|S_IXGRP|S_IRGRP); + if (ret != 0) { + int err = errno; + if (err != EEXIST) { + SCLogError(SC_ERR_LOGDIR_CONFIG, + "Cannot create file drop directory %s: %s", + g_logfile_base_dir, strerror(err)); + exit(EXIT_FAILURE); + } + } else { + SCLogInfo("Created file drop directory %s", + g_logfile_base_dir); + } + } *data = (void *)aft;