diff options
author | Yaniv Kaul <ykaul@redhat.com> | 2018-09-03 13:55:01 +0300 |
---|---|---|
committer | Atin Mukherjee <amukherj@redhat.com> | 2018-09-09 01:53:59 +0000 |
commit | 09198e203ece6925791a8a3a6121c5f808e4e873 (patch) | |
tree | 152f83348592c21fa697aeb0fc606e824ab7c993 /libglusterfs/src/dict.c | |
parent | 44e4db05a953a6f231c62225b462470cacb16bd4 (diff) |
Some (mgmt) xlators: use dict_{setn|getn|deln|get_int32n|set_int32n|set_strn}
In a previous patch (https://review.gluster.org/20769) we've
added the key length to be passed to dict_* funcs, to remove the need
to strlen() it. This patch moves some xlators to use it.
- It also adds dict_get_int32n which was missing.
- It also reduces the size of some key variables.
They were set to 1024b or PATH_MAX, where sometimes 64 bytes were
really enough.
Please review carefully:
1. That I did not reduce some the size of the key variables too much.
2. That I did not mix up some keys.
Compile-tested only!
Change-Id: Ic729baf179f40e8d02bc2350491d4bb9b6934266
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
Diffstat (limited to 'libglusterfs/src/dict.c')
-rw-r--r-- | libglusterfs/src/dict.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c index a3998c463eb..b7cf2b0c8fe 100644 --- a/libglusterfs/src/dict.c +++ b/libglusterfs/src/dict.c @@ -1810,6 +1810,32 @@ err: } int +dict_get_int32n (dict_t *this, char *key, const int keylen, int32_t *val) +{ + data_t * data = NULL; + int ret = 0; + + if (!this || !key || !val) { + ret = -EINVAL; + goto err; + } + + ret = dict_get_with_refn (this, key, keylen, &data); + if (ret != 0) { + goto err; + } + + VALIDATE_DATA_AND_LOG(data, GF_DATA_TYPE_INT, key, -EINVAL); + + ret = data_to_int32_ptr (data, val); + +err: + if (data) + data_unref (data); + return ret; +} + +int dict_get_int32 (dict_t *this, char *key, int32_t *val) { data_t * data = NULL; @@ -1835,6 +1861,25 @@ err: return ret; } +int +dict_set_int32n (dict_t *this, char *key, const int keylen, int32_t val) +{ + data_t * data = NULL; + int ret = 0; + + data = data_from_int32 (val); + if (!data) { + ret = -EINVAL; + goto err; + } + + ret = dict_setn (this, key, keylen, data); + if (ret < 0) + data_destroy (data); + +err: + return ret; +} int dict_set_int32 (dict_t *this, char *key, int32_t val) |