s3:registry: add a new function regval_ctr_value_byname()
authorMichael Adam <obnox@samba.org>
Fri, 30 Mar 2012 12:39:50 +0000 (14:39 +0200)
committerAndreas Schneider <asn@samba.org>
Wed, 25 Apr 2012 12:31:01 +0000 (14:31 +0200)
This is like regval_ctr_key_exists() but does not return bool,
but the regval_blob instead, if found, and NULL if not found.

Signed-off-by: Andreas Schneider <asn@samba.org>
source3/registry/reg_objects.c
source3/registry/reg_objects.h

index 6336d0065724f947693d779c5a1eacdccbd47edd..baa3000eb6739b23661af9558ca8de55fc0d3aca 100644 (file)
@@ -407,6 +407,24 @@ bool regval_ctr_value_exists(struct regval_ctr *ctr, const char *value)
        return False;
 }
 
+/**
+ * Get a value by its name
+ */
+struct regval_blob *regval_ctr_value_byname(struct regval_ctr *ctr,
+                                           const char *value)
+{
+       int i;
+
+       for (i = 0; i < ctr->num_values; i++) {
+               if (strequal(ctr->values[i]->valuename, value)) {
+                       return ctr->values[i];
+               }
+       }
+
+       return NULL;
+}
+
+
 /***********************************************************************
  * compose a struct regval_blob from input data
  **********************************************************************/
index 52d078e678a63e35a0fff8076020a00d9fc88e65..9e1c1d1795d020dab64c20676a12f052e1858c52 100644 (file)
@@ -53,6 +53,8 @@ char* regval_name(struct regval_blob *val);
 uint32_t regval_type(struct regval_blob *val);
 struct regval_blob* regval_ctr_specific_value(struct regval_ctr *ctr,
                                              uint32_t idx);
+struct regval_blob *regval_ctr_value_byname(struct regval_ctr *ctr,
+                                           const char *value);
 bool regval_ctr_value_exists(struct regval_ctr *ctr, const char *value);
 struct regval_blob *regval_compose(TALLOC_CTX *ctx, const char *name,
                                   uint32_t type,