From: Florian Forster Date: Wed, 27 Aug 2008 13:59:22 +0000 (+0200) Subject: src/utils_cmd_listval.[ch]: Use the new parsing mechanism here, too. X-Git-Tag: collectd-4.5.0~15 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=d9420312e469983a6babad898e02b6ed4a468150;p=collectd.git src/utils_cmd_listval.[ch]: Use the new parsing mechanism here, too. --- diff --git a/src/unixsock.c b/src/unixsock.c index 6a8628a5..02f329f6 100644 --- a/src/unixsock.c +++ b/src/unixsock.c @@ -247,7 +247,7 @@ static void *us_handle_client (void *arg) } else if (strcasecmp (fields[0], "listval") == 0) { - handle_listval (fhout, fields, fields_num); + handle_listval (fhout, buffer); } else if (strcasecmp (fields[0], "putnotif") == 0) { diff --git a/src/utils_cmd_listval.c b/src/utils_cmd_listval.c index 6f03e757..bca83a99 100644 --- a/src/utils_cmd_listval.c +++ b/src/utils_cmd_listval.c @@ -25,6 +25,7 @@ #include "utils_cmd_listval.h" #include "utils_cache.h" +#include "utils_parse_option.h" #define print_to_socket(fh, ...) \ if (fprintf (fh, __VA_ARGS__) < 0) { \ @@ -34,20 +35,36 @@ return -1; \ } -int handle_listval (FILE *fh, char **fields, int fields_num) +int handle_listval (FILE *fh, char *buffer) { + char *command; char **names = NULL; time_t *times = NULL; size_t number = 0; size_t i; int status; - if (fields_num != 1) + DEBUG ("utils_cmd_listval: handle_listval (fh = %p, buffer = %s);", + (void *) fh, buffer); + + command = NULL; + status = parse_string (&buffer, &command); + if (status != 0) + { + print_to_socket (fh, "-1 Cannot parse command.\n"); + return (-1); + } + assert (command != NULL); + + if (strcasecmp ("LISTVAL", command) != 0) + { + print_to_socket (fh, "-1 Unexpected command: `%s'.\n", command); + return (-1); + } + + if (*buffer != 0) { - DEBUG ("command listval: us_handle_listval: Wrong number of fields: %i", - fields_num); - print_to_socket (fh, "-1 Wrong number of fields: Got %i, expected 1.\n", - fields_num); + print_to_socket (fh, "-1 Garbage after end of command: %s\n", buffer); return (-1); } diff --git a/src/utils_cmd_listval.h b/src/utils_cmd_listval.h index c9187962..73146e78 100644 --- a/src/utils_cmd_listval.h +++ b/src/utils_cmd_listval.h @@ -22,7 +22,7 @@ #ifndef UTILS_CMD_LISTVAL_H #define UTILS_CMD_LISTVAL_H 1 -int handle_listval (FILE *fh, char **fields, int fields_num); +int handle_listval (FILE *fh, char *buffer); #endif /* UTILS_CMD_LISTVAL_H */