Add util-conf for config util

pull/467/head
Eric Leblond 12 years ago
parent 27752818c2
commit 2be7c8aea8

@ -263,6 +263,7 @@ util-byte.c util-byte.h \
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 \

@ -309,6 +309,7 @@ typedef enum PacketProfileDetectId_ {
#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);

@ -805,21 +805,6 @@ static int IsRuleReloadSet(int quiet)
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;
@ -1294,8 +1279,8 @@ int main(int argc, char **argv)
}
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) {
@ -1489,16 +1474,7 @@ int main(int argc, char **argv)
/* 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\" "

@ -0,0 +1,65 @@
/* 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);
}

@ -0,0 +1,32 @@
/* 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__ */
Loading…
Cancel
Save