util-checksum.c util-checksum.h \
util-cidr.c util-cidr.h \
util-classification-config.c util-classification-config.h \
+util-conf.c util-conf.h \
util-coredump-config.c util-coredump-config.h \
util-cpu.c util-cpu.h \
util-crypt.c util-crypt.h \
#include "detect-engine-alert.h"
#include "util-optimize.h"
#include "util-path.h"
+#include "util-conf.h"
size_t strlcat(char *, const char *src, size_t siz);
size_t strlcpy(char *dst, const char *src, size_t siz);
return rule_reload;
}
-static TmEcode CheckLogDirectory(char *log_dir)
-{
- SCEnter();
-#ifdef OS_WIN32
- struct _stat buf;
- if (_stat(log_dir, &buf) != 0) {
-#else
- struct stat buf;
- if (stat(log_dir, &buf) != 0) {
-#endif /* OS_WIN32 */
- SCReturn(TM_ECODE_FAILED);
- }
- SCReturn(TM_ECODE_OK);
-}
-
int main(int argc, char **argv)
{
int opt;
}
break;
case 'l':
- if (ConfSet("default-log-dir", optarg, 0) != 1) {
- fprintf(stderr, "ERROR: Failed to set log directory.\n");
+ if (SetLogDirectory(optarg) != TM_ECODE_OK) {
+ SCLogError(SC_ERR_FATAL, "Failed to set log directory.\n");
exit(EXIT_FAILURE);
}
if (CheckLogDirectory(optarg) != TM_ECODE_OK) {
/* Check for the existance of the default logging directory which we pick
* from suricata.yaml. If not found, shut the engine down */
- if (ConfGet("default-log-dir", &log_dir) != 1) {
-#ifdef OS_WIN32
- log_dir = _getcwd(NULL, 0);
- if (log_dir == NULL) {
- log_dir = DEFAULT_LOG_DIR;
- }
-#else
- log_dir = DEFAULT_LOG_DIR;
-#endif /* OS_WIN32 */
- }
+ log_dir = GetLogDirectory();
if (CheckLogDirectory(log_dir) != TM_ECODE_OK) {
SCLogError(SC_ERR_LOGDIR_CONFIG, "The logging directory \"%s\" "
--- /dev/null
+/* Copyright (C) 2013 Open Information Security Foundation
+ *
+ * You can copy, redistribute or modify this Program under the terms of
+ * the GNU General Public License version 2 as published by the Free
+ * Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * version 2 along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+
+/**
+ * \file
+ *
+ * \author Eric Leblond <eric@regit.org>
+ *
+ */
+
+#include "suricata-common.h"
+#include "config.h"
+#include "conf.h"
+
+TmEcode SetLogDirectory(char *name)
+{
+ return ConfSet("default-log-dir", name, 0) ? TM_ECODE_OK : TM_ECODE_FAILED;
+}
+
+char *GetLogDirectory()
+{
+ char *log_dir = NULL;
+
+ if (ConfGet("default-log-dir", &log_dir) != 1) {
+#ifdef OS_WIN32
+ log_dir = _getcwd(NULL, 0);
+ if (log_dir == NULL) {
+ log_dir = DEFAULT_LOG_DIR;
+ }
+#else
+ log_dir = DEFAULT_LOG_DIR;
+#endif /* OS_WIN32 */
+ }
+
+ return log_dir;
+}
+
+TmEcode CheckLogDirectory(char *log_dir)
+{
+ SCEnter();
+#ifdef OS_WIN32
+ struct _stat buf;
+ if (_stat(log_dir, &buf) != 0) {
+#else
+ struct stat buf;
+ if (stat(log_dir, &buf) != 0) {
+#endif /* OS_WIN32 */
+ SCReturnInt(TM_ECODE_FAILED);
+ }
+ SCReturnInt(TM_ECODE_OK);
+}
--- /dev/null
+/* Copyright (C) 2013 Open Information Security Foundation
+ *
+ * You can copy, redistribute or modify this Program under the terms of
+ * the GNU General Public License version 2 as published by the Free
+ * Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * version 2 along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+
+/**
+ * \file
+ *
+ * \author Eric Leblond <eric@regit.org>
+ *
+ */
+
+#ifndef __UTIL_UTIL_CONF_H__
+#define __UTIL_UTIL_CONF_H__
+
+TmEcode SetLogDirectory(char *name);
+char *GetLogDirectory();
+TmEcode CheckLogDirectory(char *log_dir);
+
+#endif /* __UTIL_UTIL_CONF_H__ */