diff options
Diffstat (limited to 'libglusterfs/src/dict.c')
| -rw-r--r-- | libglusterfs/src/dict.c | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c index 31867588def..81db64dfd40 100644 --- a/libglusterfs/src/dict.c +++ b/libglusterfs/src/dict.c @@ -2156,6 +2156,32 @@ err:          return ret;  } +int +dict_add_dynstr_with_alloc (dict_t *this, char *key, char *str) +{ +        data_t  *data = NULL; +        int      ret  = 0; +        char    *alloc_str = NULL; + +        alloc_str = gf_strdup (str); +        if (!alloc_str) +                goto out; + +        data = data_from_dynstr (alloc_str); +        if (!data) { +                GF_FREE (alloc_str); +                ret = -EINVAL; +                goto out; +        } + +        ret = dict_add (this, key, data); +        if (ret < 0) +                data_destroy (data); + +out: +        return ret; +} +  /*    for malloced strings we should do a free instead of GF_FREE  */  | 
