#include "common.h"
#include "plugin.h"
#include "configfile.h"
-#include "network.h"
-#include "utils_debug.h"
#define ESCAPE_NULL(str) ((str) == NULL ? "(null)" : (str))
static cf_global_option_t cf_global_options[] =
{
{"BaseDir", NULL, PKGLOCALSTATEDIR},
- {"LogFile", NULL, LOGFILE},
{"PIDFile", NULL, PIDFILE},
{"Hostname", NULL, NULL},
- {"Interval", NULL, "10"}
+ {"Interval", NULL, "10"},
+ {"ReadThreads", NULL, "5"},
+ {"TypesDB", NULL, PLUGINDIR"/types.db"} /* FIXME: Configure path */
};
static int cf_global_options_num = STATIC_ARRAY_LEN (cf_global_options);
int ret;
int i;
- DBG ("type = %s, key = %s, value = %s",
+ DEBUG ("type = %s, key = %s, value = %s",
ESCAPE_NULL(type),
ESCAPE_NULL(orig_key),
ESCAPE_NULL(orig_value));
if ((cf_cb = cf_search (type)) == NULL)
{
- syslog (LOG_WARNING, "Plugin `%s' did not register a callback.", type);
+ WARNING ("Plugin `%s' did not register a callback.", type);
return (-1);
}
}
if (i >= cf_cb->keys_num)
- syslog (LOG_WARNING, "Plugin `%s' did not register for value `%s'.", type, key);
+ WARNING ("Plugin `%s' did not register for value `%s'.", type, key);
free (key);
free (value);
- DBG ("return (%i)", ret);
+ DEBUG ("return (%i)", ret);
return (ret);
} /* int cf_dispatch */
{
if (ci->values_num != 1)
return (-1);
- if (ci->values[0].type != OCONFIG_TYPE_STRING)
- return (-1);
+ if (ci->values[0].type == OCONFIG_TYPE_STRING)
+ return (global_option_set (ci->key, ci->values[0].value.string));
+ else if (ci->values[0].type == OCONFIG_TYPE_NUMBER)
+ {
+ char tmp[128];
+ snprintf (tmp, sizeof (tmp), "%lf", ci->values[0].value.number);
+ tmp[127] = '\0';
+ return (global_option_set (ci->key, tmp));
+ }
- return (global_option_set (ci->key, ci->values[0].value.string));
-}
+ return (-1);
+} /* int dispatch_global_option */
static int dispatch_value_plugindir (const oconfig_item_t *ci)
{
if (ci->children[i].children == NULL)
dispatch_value_plugin (name, ci->children + i);
else
- {DBG ("No nested config blocks allow for plugins. Yet.");}
+ {DEBUG ("No nested config blocks allow for plugins. Yet.");}
}
return (0);
{
int i;
- DBG ("option = %s; value = %s;", option, value);
+ DEBUG ("option = %s; value = %s;", option, value);
for (i = 0; i < cf_global_options_num; i++)
if (strcasecmp (cf_global_options[i].key, option) == 0)
if (i >= cf_global_options_num)
return (-1);
- if (cf_global_options[i].value != NULL)
- free (cf_global_options[i].value);
+ sfree (cf_global_options[i].value);
if (value != NULL)
cf_global_options[i].value = strdup (value);
free (this);
break;
}
-}
+} /* void cf_unregister */
void cf_register (const char *type,
int (*callback) (const char *, const char *),
conf = oconfig_parse_file (filename);
if (conf == NULL)
{
- syslog (LOG_ERR, "Unable to read config file %s.", filename);
+ ERROR ("Unable to read config file %s.", filename);
return (-1);
}