[rrd-developers] [PATCH] Avoid hard coded buffer lengths in rrd_client.c.
Tobias Oetiker
tobi at oetiker.ch
Tue Dec 21 17:51:45 CET 2010
Hi Kevin,
Nov 16 kevin brintnall wrote:
> The buffer length for command buffers should be controlled by a single
> #define.
>
> I put this into "rrd_client.h".. Since that header is exposed as part of
> the API perhaps we should consider renaming it to "RRD_CMD_MAX" or
> somesuch? Or we could put it into "rrd_tool.h". Thoughts?
I have added the patch and renamed CMD_MAX to RRD_CMD_MAX. I think
rrd_client.h is a good place as it will be primarily useful to
people using the rrd_client.c ..
cheers
tobi
>
> ---
> src/rrd_client.c | 20 ++++++++++----------
> src/rrd_client.h | 2 ++
> src/rrd_daemon.c | 2 --
> 3 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/src/rrd_client.c b/src/rrd_client.c
> index 870a27b..893e526 100644
> --- a/src/rrd_client.c
> +++ b/src/rrd_client.c
> @@ -304,7 +304,7 @@ static int buffer_add_string (const char *str, /* {{{ */
> static int buffer_add_value (const char *value, /* {{{ */
> char **buffer_ret, size_t *buffer_size_ret)
> {
> - char temp[4096];
> + char temp[CMD_MAX];
>
> if (strncmp (value, "N:", 2) == 0)
> snprintf (temp, sizeof (temp), "%lu:%s",
> @@ -319,7 +319,7 @@ static int buffer_add_value (const char *value, /* {{{ */
> static int buffer_add_ulong (const unsigned long value, /* {{{ */
> char **buffer_ret, size_t *buffer_size_ret)
> {
> - char temp[4096];
> + char temp[CMD_MAX];
>
> snprintf (temp, sizeof (temp), "%lu", value);
> temp[sizeof (temp) - 1] = 0;
> @@ -372,7 +372,7 @@ static int response_read (rrdc_response_t **ret_response) /* {{{ */
> rrdc_response_t *ret = NULL;
> int status = 0;
>
> - char buffer[4096];
> + char buffer[CMD_MAX];
> char *buffer_ptr;
>
> size_t i;
> @@ -713,7 +713,7 @@ int rrdc_disconnect (void) /* {{{ */
> int rrdc_update (const char *filename, int values_num, /* {{{ */
> const char * const *values)
> {
> - char buffer[4096];
> + char buffer[CMD_MAX];
> char *buffer_ptr;
> size_t buffer_free;
> size_t buffer_size;
> @@ -775,7 +775,7 @@ int rrdc_update (const char *filename, int values_num, /* {{{ */
>
> int rrdc_flush (const char *filename) /* {{{ */
> {
> - char buffer[4096];
> + char buffer[CMD_MAX];
> char *buffer_ptr;
> size_t buffer_free;
> size_t buffer_size;
> @@ -829,7 +829,7 @@ int rrdc_flush (const char *filename) /* {{{ */
>
> rrd_info_t * rrdc_info (const char *filename) /* {{{ */
> {
> - char buffer[4096];
> + char buffer[CMD_MAX];
> char *buffer_ptr;
> size_t buffer_free;
> size_t buffer_size;
> @@ -930,7 +930,7 @@ rrd_info_t * rrdc_info (const char *filename) /* {{{ */
>
> time_t rrdc_last (const char *filename) /* {{{ */
> {
> - char buffer[4096];
> + char buffer[CMD_MAX];
> char *buffer_ptr;
> size_t buffer_free;
> size_t buffer_size;
> @@ -991,7 +991,7 @@ time_t rrdc_last (const char *filename) /* {{{ */
>
> time_t rrdc_first (const char *filename, int rraindex) /* {{{ */
> {
> - char buffer[4096];
> + char buffer[CMD_MAX];
> char *buffer_ptr;
> size_t buffer_free;
> size_t buffer_size;
> @@ -1064,7 +1064,7 @@ int rrdc_create (const char *filename, /* {{{ */
> int argc,
> const char **argv)
> {
> - char buffer[4096];
> + char buffer[CMD_MAX];
> char *buffer_ptr;
> size_t buffer_free;
> size_t buffer_size;
> @@ -1149,7 +1149,7 @@ int rrdc_fetch (const char *filename, /* {{{ */
> char ***ret_ds_names,
> rrd_value_t **ret_data)
> {
> - char buffer[4096];
> + char buffer[CMD_MAX];
> char *buffer_ptr;
> size_t buffer_free;
> size_t buffer_size;
> diff --git a/src/rrd_client.h b/src/rrd_client.h
> index e203d7c..b6e0af0 100644
> --- a/src/rrd_client.h
> +++ b/src/rrd_client.h
> @@ -49,6 +49,8 @@
> typedef unsigned long long int uint64_t;
> #endif
>
> +/* max length of socket command or response */
> +#define CMD_MAX 4096
>
> #ifndef RRDCACHED_DEFAULT_ADDRESS
> # define RRDCACHED_DEFAULT_ADDRESS "unix:/tmp/rrdcached.sock"
> diff --git a/src/rrd_daemon.c b/src/rrd_daemon.c
> index 0586a8d..18d00c8 100644
> --- a/src/rrd_daemon.c
> +++ b/src/rrd_daemon.c
> @@ -219,8 +219,6 @@ typedef struct {
> size_t files_num;
> } journal_set;
>
> -/* max length of socket command or response */
> -#define CMD_MAX 4096
> #define RBUF_SIZE (CMD_MAX*2)
>
> /*
>
--
Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland
http://it.oetiker.ch tobi at oetiker.ch ++41 62 775 9902 / sb: -9900
More information about the rrd-developers
mailing list