summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs/src')
-rw-r--r--libglusterfs/src/dict.c20
-rw-r--r--libglusterfs/src/dict.h1
2 files changed, 21 insertions, 0 deletions
diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c
index c8f43e3161c..66fe31bcd59 100644
--- a/libglusterfs/src/dict.c
+++ b/libglusterfs/src/dict.c
@@ -214,6 +214,26 @@ _dict_lookup (dict_t *this, char *key)
return NULL;
}
+int32_t
+dict_lookup (dict_t *this, char *key, data_pair_t **data)
+{
+ if (!this || !key || !data) {
+ gf_log_callingfn ("dict", GF_LOG_WARNING,
+ "!this || !key || !data");
+ return -1;
+ }
+
+ LOCK (&this->lock);
+ {
+ *data = _dict_lookup (this, key);
+ }
+ UNLOCK (&this->lock);
+ if (*data)
+ return 0;
+ else
+ return -1;
+
+}
static int32_t
_dict_set (dict_t *this,
diff --git a/libglusterfs/src/dict.h b/libglusterfs/src/dict.h
index 4ddea942202..240d7d2e65d 100644
--- a/libglusterfs/src/dict.h
+++ b/libglusterfs/src/dict.h
@@ -89,6 +89,7 @@ dict_t *dict_ref (dict_t *dict);
data_t *data_ref (data_t *data);
void data_unref (data_t *data);
+int32_t dict_lookup (dict_t *this, char *key, data_pair_t **data);
/*
TODO: provide converts for differnt byte sizes, signedness, and void *
*/