X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Futils_cmd_putval.c;h=691f1f806b2bfc83b176b850159c8ef345173fab;hb=dc57f6e8f2394b51dd35d1d8231ef110c075b831;hp=af6b484d29f126f0a6badbe3adbf7c2a1d701697;hpb=87347b871a0bcf4e51046299ed0e59b151ef3c0b;p=collectd.git diff --git a/src/utils_cmd_putval.c b/src/utils_cmd_putval.c index af6b484d..691f1f80 100644 --- a/src/utils_cmd_putval.c +++ b/src/utils_cmd_putval.c @@ -69,7 +69,8 @@ static int set_option (value_list_t *vl, const char *key, const char *value) */ cmd_status_t cmd_parse_putval (size_t argc, char **argv, - cmd_putval_t *ret_putval, cmd_error_handler_t *err) + cmd_putval_t *ret_putval, const cmd_options_t *opts, + cmd_error_handler_t *err) { cmd_status_t result; @@ -85,7 +86,13 @@ cmd_status_t cmd_parse_putval (size_t argc, char **argv, const data_set_t *ds; value_list_t vl = VALUE_LIST_INIT; - size_t i; + + if ((ret_putval == NULL) || (opts == NULL)) + { + errno = EINVAL; + cmd_error (CMD_ERROR, err, "Invalid arguments to cmd_parse_putval."); + return (CMD_ERROR); + } if (argc < 2) { @@ -102,7 +109,8 @@ cmd_status_t cmd_parse_putval (size_t argc, char **argv, status = parse_identifier (identifier, &hostname, &plugin, &plugin_instance, - &type, &type_instance); + &type, &type_instance, + opts->identifier_default_host); if (status != 0) { DEBUG ("cmd_handle_putval: Cannot parse identifier `%s'.", @@ -165,7 +173,7 @@ cmd_status_t cmd_parse_putval (size_t argc, char **argv, /* All the remaining fields are part of the option list. */ result = CMD_OK; - for (i = 1; i < argc; ++i) + for (size_t i = 1; i < argc; ++i) { value_list_t *tmp; @@ -226,14 +234,12 @@ cmd_status_t cmd_parse_putval (size_t argc, char **argv, void cmd_destroy_putval (cmd_putval_t *putval) { - size_t i; - if (putval == NULL) return; sfree (putval->raw_identifier); - for (i = 0; i < putval->vl_num; ++i) + for (size_t i = 0; i < putval->vl_num; ++i) { if (i == 0) /* values is shared between all entries */ sfree (putval->vl[i].values); @@ -249,14 +255,13 @@ cmd_status_t cmd_handle_putval (FILE *fh, char *buffer) { cmd_error_handler_t err = { cmd_error_fh, fh }; cmd_t cmd; - size_t i; int status; DEBUG ("utils_cmd_putval: cmd_handle_putval (fh = %p, buffer = %s);", (void *) fh, buffer); - if ((status = cmd_parse (buffer, &cmd, &err)) != CMD_OK) + if ((status = cmd_parse (buffer, &cmd, NULL, &err)) != CMD_OK) return (status); if (cmd.type != CMD_PUTVAL) { @@ -266,7 +271,7 @@ cmd_status_t cmd_handle_putval (FILE *fh, char *buffer) return (CMD_UNKNOWN_COMMAND); } - for (i = 0; i < cmd.cmd.putval.vl_num; ++i) + for (size_t i = 0; i < cmd.cmd.putval.vl_num; ++i) plugin_dispatch_values (&cmd.cmd.putval.vl[i]); if (fh != stdout)