X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Fdaemon%2Fconfig.c;fp=src%2Fdaemon%2Fconfig.c;h=beb0217baa323d5bbd17aff02891aeaed73a5ea7;hp=91746b10267cab4e304f0f1eb3a98b64a6c8eb0d;hb=f28c4b0fa75eb288b49a1ee6222693cac7e9c4c0;hpb=1e227f75832c867d9174132dc7b9ffe0a4d9f96b diff --git a/src/daemon/config.c b/src/daemon/config.c index 91746b1..beb0217 100644 --- a/src/daemon/config.c +++ b/src/daemon/config.c @@ -36,6 +36,10 @@ #include "liboconfig/utils.h" #include +#include + +#include +#include #include /* @@ -87,6 +91,13 @@ config_get_interval(oconfig_item_t *ci, sdb_time_t *interval) return 0; } /* config_get_interval */ +/* + * public parse results + */ + +char **listen_addresses = NULL; +size_t listen_addresses_num = 0; + /* * token parser */ @@ -96,6 +107,41 @@ typedef struct { int (*dispatcher)(oconfig_item_t *); } token_parser_t; +static int +daemon_add_listener(oconfig_item_t *ci) +{ + char **tmp; + char *address; + + if (oconfig_get_string(ci, &address)) { + sdb_log(SDB_LOG_ERR, "config: Listen requires a single " + "string argument\n" + "\tUsage: Listen ADDRESS"); + return ERR_INVALID_ARG; + } + + tmp = realloc(listen_addresses, + (listen_addresses_num + 1) * sizeof(*listen_addresses)); + if (! tmp) { + char buf[1024]; + sdb_log(SDB_LOG_ERR, "config: Failed to allocate memory: %s", + sdb_strerror(errno, buf, sizeof(buf))); + return -1; + } + + tmp[listen_addresses_num] = strdup(address); + if (! tmp[listen_addresses_num]) { + char buf[1024]; + sdb_log(SDB_LOG_ERR, "config: Failed to allocate memory: %s", + sdb_strerror(errno, buf, sizeof(buf))); + return -1; + } + + listen_addresses = tmp; + ++listen_addresses_num; + return 0; +} /* daemon_add_listener */ + static int daemon_set_interval(oconfig_item_t *ci) { @@ -187,6 +233,7 @@ daemon_configure_plugin(oconfig_item_t *ci) } /* daemon_configure_backend */ static token_parser_t token_parser_list[] = { + { "Listen", daemon_add_listener }, { "Interval", daemon_set_interval }, { "LoadPlugin", daemon_load_plugin }, { "LoadBackend", daemon_load_backend },