X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fconfigfile.c;h=5472de4e3e18d3a927289f9d6c5425ee88b70386;hb=2cea8075c666a6c6c7d6e1b4f95e1bee6f3803ac;hp=39265868eac9dfb3eee7e2c79221c5be2c92c4d2;hpb=b1f49f80b6954c5761ac3bc6537c405d8c615833;p=collectd.git diff --git a/src/configfile.c b/src/configfile.c index 39265868..5472de4e 100644 --- a/src/configfile.c +++ b/src/configfile.c @@ -50,9 +50,9 @@ extern int operating_mode; typedef struct cf_callback { - char *type; - int (*callback) (char *, char *); - char **keys; + const char *type; + int (*callback) (const char *, const char *); + const char **keys; int keys_num; struct cf_callback *next; } cf_callback_t; @@ -152,7 +152,7 @@ static int cf_dispatch (char *type, const char *orig_key, const char *orig_value return (ret); } -void cf_unregister (char *type) +void cf_unregister (const char *type) { cf_callback_t *this, *prev; @@ -171,9 +171,9 @@ void cf_unregister (char *type) } } -void cf_register (char *type, - int (*callback) (char *, char *), - char **keys, int keys_num) +void cf_register (const char *type, + int (*callback) (const char *, const char *), + const char **keys, int keys_num) { cf_callback_t *cf_cb; char buf[64]; @@ -258,6 +258,27 @@ static int cf_callback_mode (const char *shortvar, const char *var, operating_mode = MODE_SERVER; else if (strcasecmp (value, "Local") == 0) operating_mode = MODE_LOCAL; +#else /* !HAVE_LIBRRD */ + else if (strcasecmp (value, "Server") == 0) + { + fprintf (stderr, "Invalid mode `Server': " + "You need to link against librrd for this " + "mode to be available.\n"); + syslog (LOG_ERR, "Invalid mode `Server': " + "You need to link against librrd for this " + "mode to be available."); + return (LC_CBRET_ERROR); + } + else if (strcasecmp (value, "Local") == 0) + { + fprintf (stderr, "Invalid mode `Local': " + "You need to link against librrd for this " + "mode to be available.\n"); + syslog (LOG_ERR, "Invalid mode `Local': " + "You need to link against librrd for this " + "mode to be available."); + return (LC_CBRET_ERROR); + } #endif else if (strcasecmp (value, "Log") == 0) operating_mode = MODE_LOG; @@ -354,48 +375,6 @@ static int cf_callback_mode_loadmodule (const char *shortvar, const char *var, return (LC_CBRET_OKAY); } -static int cf_callback_socket (const char *shortvar, const char *var, - const char *arguments, const char *value, lc_flags_t flags, - void *extra) -{ - char *buffer; - - char *fields[3]; - int numfields; - - char *node; - char *service = NET_DEFAULT_PORT; - - DEBUG_CALLBACK (shortvar, var, arguments, value); - - buffer = strdup (value); - if (buffer == NULL) - return (LC_CBRET_ERROR); - - numfields = strsplit (buffer, fields, 3); - - if ((numfields != 1) && (numfields != 2)) - { - syslog (LOG_ERR, "Invalid number of arguments to `%s'", - shortvar); - free (buffer); - return (LC_CBRET_ERROR); - } - - node = fields[0]; - if (numfields == 2) - service = fields[1]; - - /* Still return `LC_CBRET_OKAY' because this is not an syntax error */ - if (network_create_socket (node, service) < 1) - syslog (LOG_ERR, "network_create_socket (%s, %s) failed", - node, service); - - free (buffer); - - return (LC_CBRET_OKAY); -} - /* * `cf_callback_plugin' * Start/end section `plugin' @@ -502,11 +481,6 @@ static void cf_init (void) lc_register_callback ("LoadPlugin", SHORTOPT_NONE, LC_VAR_STRING, cf_callback_mode_loadmodule, NULL); - lc_register_callback ("Listen", SHORTOPT_NONE, - LC_VAR_STRING, cf_callback_socket, NULL); - lc_register_callback ("Server", SHORTOPT_NONE, - LC_VAR_STRING, cf_callback_socket, NULL); - for (i = 0; i < cf_mode_num; i++) { cf_mode_item_t *item;