From 7eed1d5ba51b65e865f79a392aff70048c702bf0 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 2 Dec 2011 16:58:14 -0800 Subject: transport/rdma: Add attr_timeout, attr_retry_cnt, attr_rnr_retry as configurable options Change-Id: Ifc4710f149be35979746ddfbfb4181638601bc64 BUG: 766040 Signed-off-by: Harshavardhana Reviewed-on: http://review.gluster.com/766 Tested-by: Gluster Build System Reviewed-by: Jeff Darcy Reviewed-by: Vijay Bellur --- libglusterfs/src/dict.c | 30 ++++++++++++++++++++++++++++++ libglusterfs/src/dict.h | 1 + 2 files changed, 31 insertions(+) (limited to 'libglusterfs') diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c index 40f575d52d0..2ad1ae1abff 100644 --- a/libglusterfs/src/dict.c +++ b/libglusterfs/src/dict.c @@ -22,6 +22,7 @@ #include #include #include +#include #ifndef _CONFIG_H #define _CONFIG_H @@ -1166,6 +1167,35 @@ data_to_uint16 (data_t *data) return strtol (str, NULL, 0); } +uint8_t +data_to_uint8 (data_t *data) +{ + uint32_t value = 0; + + if (!data) { + gf_log_callingfn ("dict", GF_LOG_WARNING, "data is NULL"); + return -1; + } + + char *str = alloca (data->len + 1); + if (!str) + return -1; + + memcpy (str, data->data, data->len); + str[data->len] = '\0'; + + errno = 0; + value = strtol (str, NULL, 0); + + if ((UCHAR_MAX - value) < 0) { + errno = ERANGE; + gf_log_callingfn ("dict", GF_LOG_WARNING, "data conversion overflow detected (%s)", strerror(errno)); + return -1; + } + + return (uint8_t) value; +} + char * data_to_str (data_t *data) { diff --git a/libglusterfs/src/dict.h b/libglusterfs/src/dict.h index 121f84be5a6..c68c3af873b 100644 --- a/libglusterfs/src/dict.h +++ b/libglusterfs/src/dict.h @@ -110,6 +110,7 @@ int8_t data_to_int8 (data_t *data); uint64_t data_to_uint64 (data_t *data); uint32_t data_to_uint32 (data_t *data); uint16_t data_to_uint16 (data_t *data); +uint8_t data_to_uint8 (data_t *data); data_t *data_from_ptr (void *value); data_t *data_from_static_ptr (void *value); -- cgit