Internal type name cleanup: Rename client_property_t to client_kv_t

This is the first step to make key/value pairs more generic.

Here: Type rename for client properties
diff --git a/bindings/ruby/helpers.h b/bindings/ruby/helpers.h
index 82ccc0b..025b2de 100644
--- a/bindings/ruby/helpers.h
+++ b/bindings/ruby/helpers.h
@@ -125,7 +125,7 @@
 }
 
 
-/* add key,value VALUE pair to hash_t* as selector_entry*
+/* add key,value VALUE pair to hash_t* as kv_value_t*
  *  (used as callback for value2hash)
  */
 static int
@@ -134,13 +134,13 @@
     if (key != Qundef) {
 	const char *k = strdup( as_string( key ) );
 	if (!hash_lookup( h, k ) ) {
-            selector_entry *entry = u_malloc(sizeof(selector_entry));
+            kv_value_t *entry = u_malloc(sizeof(kv_value_t));
             entry->type = 0;
             if (TYPE(value) == T_ARRAY) {
               rb_raise( rb_eException, "Passing array parameter via invoke() still unsupported" );
             }
             else {
-              entry->entry.text = strdup(as_string( value ));
+              entry->value.text = strdup(as_string( value ));
             }
 	    if ( !hash_alloc_insert( h, k, entry ) ) {
 		rb_raise( rb_eException, "hash_alloc_insert failed" );
@@ -158,7 +158,7 @@
  *
  * valuetype - type of hash values
  *   0 - values are string (char *)
- *   1 - values are selector_entry *
+ *   1 - values are kv_value_t *
  * 
  */
 static hash_t *
diff --git a/bindings/wsman-client_opt.i b/bindings/wsman-client_opt.i
index cea7232..3d6fccf 100644
--- a/bindings/wsman-client_opt.i
+++ b/bindings/wsman-client_opt.i
@@ -490,12 +490,12 @@
       v = rb_hash_new();
       lnode_t *node = list_first($self->properties);
       while (node) {
-        client_property_t *property = (client_property_t *)node->list_data;
+        client_kv_t *property = (client_kv_t *)node->list_data;
         if (property->value.type == 0) {
-	  rb_hash_aset( v, makestring(property->key), makestring(property->value.entry.text));
+	  rb_hash_aset( v, makestring(property->key), makestring(property->value.value.text));
         }
         else {
-          rb_hash_aset( v, makestring(property->key), makestring(epr_to_string(property->value.entry.eprp)));
+          rb_hash_aset( v, makestring(property->key), makestring(epr_to_string(property->value.value.eprp)));
         }
         node = list_next($self->properties, node);
       }
diff --git a/include/wsman-client-api.h b/include/wsman-client-api.h
index 4ed1a7b..1630871 100644
--- a/include/wsman-client-api.h
+++ b/include/wsman-client-api.h
@@ -196,11 +196,6 @@
 		hash_t *options; /* for WSM_OPTION_SET */
 	} client_opt_t;
 
-        typedef struct {
-          char *key;
-          selector_entry value; /* either char* or epr_t */
-        } client_property_t;
-
 	struct _WsManFault {
 		const char *code;
 		const char *subcode;
@@ -210,7 +205,6 @@
 	typedef struct _WsManFault WsManFault;
 
 
-
 	/**
 	 * Create a client using an endpoint as the argument
 	 * @param endpoint an URI describing the endpoint, with user/pass, port and path
diff --git a/include/wsman-epr.h b/include/wsman-epr.h
index 1657cfd..0d4f6ac 100644
--- a/include/wsman-epr.h
+++ b/include/wsman-epr.h
@@ -62,20 +62,12 @@
 } ReferenceParameters;
 
 
-typedef struct {
+typedef struct epr_struct {
 	char * address;
 	ReferenceParameters refparams;
 	void * additionalParams;
 } epr_t;
 
-typedef struct {
-	int type;
-	union{
-		char *text;
-		epr_t *eprp;
-	} entry;
-} selector_entry;
-
 /* support for array values, all represented with the same key */	
 typedef struct {
 	char * key;
diff --git a/include/wsman-types.h b/include/wsman-types.h
index d3c0bed..cbd9c76 100644
--- a/include/wsman-types.h
+++ b/include/wsman-types.h
@@ -68,6 +68,26 @@
 };
 typedef struct __WsXmlNs* WsXmlNsH;
 
+/*-----------------------------------------------*/
+
+typedef struct epr_struct epr_t;
+
+/* value of a key/value pair (-> client_kv_t)
+ * to represent either a value or an epr_t
+ */
+typedef struct {
+  int type; /* 0: char*, else epr_t* */
+  union{
+    char *text;
+    epr_t *eprp;
+  } value;
+} kv_value_t;
+
+/* generic client key/value pair */
+typedef struct {
+  char *key;
+  kv_value_t value; /* either char* or epr_t */
+} client_kv_t;
 
 #ifdef __cplusplus
 }
diff --git a/src/lib/wsman-client.c b/src/lib/wsman-client.c
index a12e324..973d6e1 100644
--- a/src/lib/wsman-client.c
+++ b/src/lib/wsman-client.c
@@ -322,19 +322,19 @@
 {
   while (!list_isempty(properties)) {
     lnode_t *node;
-    client_property_t *prop;
+    client_kv_t *prop;
     
     node = list_del_last(properties);
     if (!node)
       break;
-    prop = (client_property_t *)node->list_data;
+    prop = (client_kv_t *)node->list_data;
     lnode_destroy(node);
     u_free(prop->key);
     if (prop->value.type == 0) {
-      u_free(prop->value.entry.text);
+      u_free(prop->value.value.text);
     }
     else {
-      epr_destroy(prop->value.entry.eprp);
+      epr_destroy(prop->value.value.eprp);
     }
     u_free(prop);
   }
@@ -388,7 +388,7 @@
 static int
 _property_key_compare(const void *node1, const void *key)
 {
-  const char *key1 = ((client_property_t *)node1)->key;
+  const char *key1 = ((client_kv_t *)node1)->key;
   const char *key2 = (const char *)key;
   return strcmp(key1, key2);
 }
@@ -406,7 +406,7 @@
 		const char *string,
 		const epr_t *epr)
 {
-  client_property_t *prop;
+  client_kv_t *prop;
   lnode_t *lnode;
   if ((string != NULL) && (epr != NULL)) {
     error("Ambiguous call to add_property");
@@ -423,7 +423,7 @@
     error("duplicate key not added to properties");
     return;
   }
-  prop = u_malloc(sizeof(client_property_t));
+  prop = u_malloc(sizeof(client_kv_t));
   if (!prop) {
     error("No memory for property");
     return;
@@ -431,10 +431,10 @@
   prop->key = u_strdup(key);
   if (string != NULL) {
     prop->value.type = 0;
-    prop->value.entry.text = u_strdup(string);
+    prop->value.value.text = u_strdup(string);
   } else if (epr != NULL) {
     prop->value.type = 1;
-    prop->value.entry.eprp = epr_copy(epr);
+    prop->value.value.eprp = epr_copy(epr);
   } else {
     error("Can't add NULL as property value");
     return;
@@ -918,14 +918,14 @@
 	if (!list_isempty(options->properties)) {
           lnode_t *node = list_first(options->properties);
           while (node) {
-            client_property_t *property = (client_property_t *)node->list_data;
+            client_kv_t *property = (client_kv_t *)node->list_data;
             WsXmlNodeH n = ws_xml_get_child(resource_node, 0,
                                             ns_uri, property->key);
             if (property->value.type == 0) {
-              ws_xml_set_node_text(n, property->value.entry.text);
+              ws_xml_set_node_text(n, property->value.value.text);
             }
             else {
-              epr_serialize(n, ns_uri, property->key, property->value.entry.eprp, 1);
+              epr_serialize(n, ns_uri, property->key, property->value.value.eprp, 1);
             }
             node = list_next(options->properties, node);
           }
@@ -1431,12 +1431,12 @@
                                   (char *)resource_uri, "%s_INPUT", method);
               lnode_t *lnode = list_first(options->properties);
               while (lnode) {
-                client_property_t *property = (client_property_t *)lnode->list_data;
+                client_kv_t *property = (client_kv_t *)lnode->list_data;
                 if (property->value.type == 0) {
-                  ws_xml_add_child(xnode, (char *)resource_uri, (char *)property->key, (char *)property->value.entry.text);
+                  ws_xml_add_child(xnode, (char *)resource_uri, (char *)property->key, (char *)property->value.value.text);
                 }
                 else {
-                  epr_serialize(xnode, (char *)resource_uri, property->key, property->value.entry.eprp, 1);
+                  epr_serialize(xnode, (char *)resource_uri, property->key, property->value.value.eprp, 1);
                 }
                 lnode = list_next(options->properties, lnode);
               }
diff --git a/src/lib/wsman-epr.c b/src/lib/wsman-epr.c
index 8fcc3bf..59cbaeb 100644
--- a/src/lib/wsman-epr.c
+++ b/src/lib/wsman-epr.c
@@ -122,7 +122,7 @@
 		hnode_t        *hn;
 		hscan_t         hs;
 		Selector *p;
-		selector_entry *entry;
+		kv_value_t *entry;
 		epr->refparams.selectorset.count = hash_count(selectors);
 		epr->refparams.selectorset.selectors = u_malloc(sizeof(Selector)*
 			epr->refparams.selectorset.count);
@@ -131,16 +131,16 @@
 		hash_scan_begin(&hs, selectors);
 		while ((hn = hash_scan_next(&hs))) {
 			p->name = u_strdup((char *)hnode_getkey(hn));
-			entry = (selector_entry *)hnode_get(hn);
+			entry = (kv_value_t *)hnode_get(hn);
 			if(entry->type == 0) {
 				p->type = 0;
-				p->value = u_strdup(entry->entry.text);
+				p->value = u_strdup(entry->value.text);
 				debug("key=%s value=%s",
 					(char *) hnode_getkey(hn), p->value);
 			}
 			else {
 				p->type = 1;
-				p->value = (char *)epr_copy(entry->entry.eprp);
+				p->value = (char *)epr_copy(entry->value.eprp);
 				debug("key=%s value=%p(nested epr)",
 					(char *) hnode_getkey(hn), p->value);
 			}
@@ -161,7 +161,7 @@
 	hash_t *selectors_new = NULL;
 	hnode_t        *hn;
 	hscan_t         hs;
-	selector_entry *entry;
+	kv_value_t *entry;
 	epr_t *epr;
 
 	p = strchr(str, '?');
@@ -171,9 +171,9 @@
           selectors_new = hash_create2(HASHCOUNT_T_MAX, 0, 0);
 	  hash_scan_begin(&hs, selectors);
 	  while ((hn = hash_scan_next(&hs))) {
-		entry = u_malloc(sizeof(selector_entry));
+		entry = u_malloc(sizeof(kv_value_t));
 		entry->type = 0;
-		entry->entry.text = (char *)hnode_get(hn);
+		entry->value.text = (char *)hnode_get(hn);
 		hash_alloc_insert(selectors_new, hnode_getkey(hn), entry);
 	  }
         }
@@ -190,7 +190,7 @@
 	return epr;
  }
 
-static int epr_add_selector(epr_t *epr, const char *name, selector_entry *selector)
+static int epr_add_selector(epr_t *epr, const char *name, kv_value_t *selector)
 {
 	int i;
 	Selector *p;
@@ -208,11 +208,11 @@
 	p[epr->refparams.selectorset.count].name = u_strdup(name);
 	p[epr->refparams.selectorset.count].type = selector->type;
 	if(selector->type == 0) {
-		if (selector->entry.text) {
-			p[epr->refparams.selectorset.count].value = u_strdup(selector->entry.text);
+		if (selector->value.text) {
+			p[epr->refparams.selectorset.count].value = u_strdup(selector->value.text);
 		}
 	} else {
-		p[epr->refparams.selectorset.count].value = (char *)epr_copy(selector->entry.eprp);
+		p[epr->refparams.selectorset.count].value = (char *)epr_copy(selector->value.eprp);
 	}
 
 	epr->refparams.selectorset.selectors = p;
@@ -228,10 +228,10 @@
 int epr_add_selector_text(epr_t *epr, const char *name, const char *text)
 {
 	int r;
-	selector_entry *entry;
-	entry = u_malloc(sizeof(selector_entry));
+	kv_value_t *entry;
+	entry = u_malloc(sizeof(kv_value_t));
 	entry->type = 0;
-	entry->entry.text = (char *)text;
+	entry->value.text = (char *)text;
 	r = epr_add_selector(epr, name, entry);
 	u_free(entry);
 	return r;
@@ -240,10 +240,10 @@
 int epr_add_selector_epr(epr_t *epr, const char *name, epr_t *added_epr)
 {
 	int r;
-	selector_entry *entry;
-	entry = u_malloc(sizeof(selector_entry));
+	kv_value_t *entry;
+	entry = u_malloc(sizeof(kv_value_t));
 	entry->type = 1;
-	entry->entry.eprp = added_epr;
+	entry->value.eprp = added_epr;
 	r = epr_add_selector(epr, name, entry);
 	u_free(entry);
 	return r;
diff --git a/src/lib/wsman-filter.c b/src/lib/wsman-filter.c
index 6118d2a..af41ad6 100644
--- a/src/lib/wsman-filter.c
+++ b/src/lib/wsman-filter.c
@@ -81,7 +81,7 @@
 		hnode_t        *hn;
 		hscan_t         hs;
 		Selector *p;
-		selector_entry *entry;
+		kv_value_t *entry;
 		filter->selectorset.count = hash_count(selectors);
 		filter->selectorset.selectors = u_malloc(sizeof(Selector)*
 			filter->selectorset.count);
@@ -90,15 +90,15 @@
 		hash_scan_begin(&hs, selectors);
 		while ((hn = hash_scan_next(&hs))) {
 			p->name = u_strdup((char *)hnode_getkey(hn));
-			entry = (selector_entry *)hnode_get(hn);
+			entry = (kv_value_t *)hnode_get(hn);
 			if(entry->type == 1) {
 				p->type = 1;
-				p->value = (char *)epr_copy(entry->entry.eprp);
+				p->value = (char *)epr_copy(entry->value.eprp);
 				debug("key=%s value=%p(nested epr)",
 					(char *) hnode_getkey(hn), p->value);
 			} else {
 				p->type = 0;
-				p->value = u_strdup(entry->entry.text);
+				p->value = u_strdup(entry->value.text);
 				debug("key=%s value=%s",
 					(char *) hnode_getkey(hn), p->value);
 			}
diff --git a/src/lib/wsman-soap-envelope.c b/src/lib/wsman-soap-envelope.c
index 33c3df4..39106c6 100644
--- a/src/lib/wsman-soap-envelope.c
+++ b/src/lib/wsman-soap-envelope.c
@@ -955,11 +955,11 @@
 	debug("wsman_free_method_list:");
 	while (node) {
 		methodarglist_t *node_val = (methodarglist_t *)node->list_data;
-		selector_entry *sentry = (selector_entry *)node_val->data;
+		kv_value_t *sentry = (kv_value_t *)node_val->data;
 		debug("freeing list entry key: %s", node_val->key);
 		switch (sentry->type) {
-			case 0: u_free(sentry->entry.text); break;
-			case 1: u_free(sentry->entry.eprp); break;
+			case 0: u_free(sentry->value.text); break;
+			case 1: u_free(sentry->value.eprp); break;
 		}
 		u_free(sentry);
 		u_free(node_val->key);
@@ -1017,7 +1017,7 @@
 			lnode_t *argnode;
 			while ((arg = ws_xml_get_child(in_node, index++, NULL, NULL))) {
 				char *key = ws_xml_get_node_local_name(arg);
-				selector_entry *sentry = u_malloc(sizeof(*sentry));
+				kv_value_t *sentry = u_malloc(sizeof(*sentry));
 				methodarglist_t *nodeval = u_malloc(sizeof(methodarglist_t));
 				epr = ws_xml_get_child(arg, 0, XML_NS_ADDRESSING,
 					WSA_REFERENCE_PARAMETERS);
@@ -1027,12 +1027,12 @@
 				if (epr) {
 					debug("epr: %s", key);
 					sentry->type = 1;
-					sentry->entry.eprp = epr_deserialize(arg, NULL, NULL, 1); 
+					sentry->value.eprp = epr_deserialize(arg, NULL, NULL, 1); 
 					//wsman_get_epr(cntx, arg, key, XML_NS_CIM_CLASS);
 				} else {
 					debug("text: %s", key);
 					sentry->type = 0;
-					sentry->entry.text = u_strdup(ws_xml_get_node_text(arg));
+					sentry->value.text = u_strdup(ws_xml_get_node_text(arg));
 				}
 				nodeval->data = sentry;
 				list_append(arglist, argnode);
@@ -1060,7 +1060,7 @@
 wsman_get_selectors_from_epr(WsContextH cntx, WsXmlNodeH epr_node)
 {
 	WsXmlNodeH selector, node, epr;
-	selector_entry *sentry;
+	kv_value_t *sentry;
 	int index = 0;
 	hash_t *h = hash_create2(HASHCOUNT_T_MAX, 0, 0);
 
@@ -1087,7 +1087,7 @@
 			if (epr) {
 				debug("epr: %s", attrVal);
 				sentry->type = 1;
-				sentry->entry.eprp = epr_deserialize(selector, XML_NS_ADDRESSING,
+				sentry->value.eprp = epr_deserialize(selector, XML_NS_ADDRESSING,
 					WSA_EPR, 1);
 				if (!hash_alloc_insert(h, attrVal, sentry)) {
 					error("hash_alloc_insert failed");
@@ -1095,7 +1095,7 @@
 			} else {
 				debug("text: %s", attrVal);
 				sentry->type = 0;
-				sentry->entry.text = ws_xml_get_node_text(selector);
+				sentry->value.text = ws_xml_get_node_text(selector);
 				if (!hash_alloc_insert(h, attrVal,
 						sentry)) {
 					error("hash_alloc_insert failed");
diff --git a/src/plugins/cim/sfcc-interface.c b/src/plugins/cim/sfcc-interface.c
index f356c7a..41b5d5f 100644
--- a/src/plugins/cim/sfcc-interface.c
+++ b/src/plugins/cim/sfcc-interface.c
@@ -506,12 +506,12 @@
 cim_get_namespace_selector(hash_t * keys)
 {
 	char *cim_namespace = NULL;
-	selector_entry *sentry = NULL;
+	kv_value_t *sentry = NULL;
 	hnode_t *hn = hash_lookup(keys, (char *) CIM_NAMESPACE_SELECTOR);
 	if (hn) {
-		sentry = (selector_entry *) hnode_get(hn);
+		sentry = (kv_value_t *) hnode_get(hn);
 		if(sentry->type == 1) return NULL;
-		cim_namespace = sentry->entry.text;
+		cim_namespace = sentry->value.text;
 		hash_delete(keys, hn);
 		hnode_destroy(hn);
 		u_free(sentry);
@@ -611,9 +611,9 @@
 		argnode = list_first(arglist);
 		for (ii = 0; ii < listcount; ii++) {
 			CMPIValue value;
-			selector_entry *sentry;
+			kv_value_t *sentry;
 			node_val = (methodarglist_t *)argnode->list_data;
-			sentry = (selector_entry *)node_val->data;
+			sentry = (kv_value_t *)node_val->data;
 			if (0 < node_val->arraycount) {
 				CMPIArray *arraydata = NULL;
 				lnode_t *t_anode = argnode;
@@ -625,7 +625,7 @@
 				for (kk = 1; kk < node_val->arraycount; kk++) {
 					t_anode = list_next(arglist, t_anode);
 					if (NULL != t_anode) {
-						selector_entry *t_sentry = (selector_entry *)((methodarglist_t *)t_anode->list_data)->data;
+						kv_value_t *t_sentry = (kv_value_t *)((methodarglist_t *)t_anode->list_data)->data;
 						char *key = ((methodarglist_t *)t_anode->list_data)->key;
 						debug(" %s[0] = %d, %s[%d] = %d", key, sentry->type, key, kk, t_sentry->type);	
 						if (sentry->type != t_sentry->type) {
@@ -642,19 +642,19 @@
 				for (jj = 0; jj < node_val->arraycount; jj++) {
 					debug("cim_add_args: array %u object: %p", jj, sentry);
 					if (0 != arraytype) {
-						value.ref = cim_epr_to_objectpath(client, sentry->entry.eprp);
+						value.ref = cim_epr_to_objectpath(client, sentry->value.eprp);
 						if (value.ref == NULL) {
 						        res = 1;
 							goto error;
 						}
 						CMSetArrayElementAt(arraydata, jj, &value, CMPI_ref);
 					} else {
-						value.string = native_new_CMPIString((char *)sentry->entry.text, NULL);
+						value.string = native_new_CMPIString((char *)sentry->value.text, NULL);
 						CMSetArrayElementAt(arraydata, jj, &value, CMPI_string);
 					}
 					argnode = list_next(arglist, argnode);
 					if (NULL != argnode)
-						sentry = (selector_entry *)((methodarglist_t *)argnode->list_data)->data;
+						sentry = (kv_value_t *)((methodarglist_t *)argnode->list_data)->data;
 				}
 				value.array = arraydata;
 				if (0 != arraytype)
@@ -665,17 +665,17 @@
 			} else {
 				debug("cim_add_args: single key: %s type: %u", node_val->key, sentry->type);
 				if (0 != sentry->type) {
-					epr_t *eprp = sentry->entry.eprp;
+					epr_t *eprp = sentry->value.eprp;
 					if (eprp == NULL) {
 						res = 1;
 						break;
 					}
 					debug("epr_t: selectorcount: %u", eprp->refparams.selectorset.count);
-					value.ref = cim_epr_to_objectpath(client, sentry->entry.eprp);
+					value.ref = cim_epr_to_objectpath(client, sentry->value.eprp);
 					CMAddArg(argsin, node_val->key, &value, CMPI_ref);
 				} else {
-					debug("text: %s", sentry->entry.text);
-					CMAddArg(argsin, node_val->key, sentry->entry.text, CMPI_chars);
+					debug("text: %s", sentry->value.text);
+					CMAddArg(argsin, node_val->key, sentry->value.text, CMPI_chars);
 				}
 				argnode = list_next(arglist, argnode);
 			}
@@ -694,20 +694,20 @@
 {
 	hscan_t hs;
 	hnode_t *hn;
-	selector_entry *sentry;
+	kv_value_t *sentry;
 	if (keys == NULL) {
 		return;
 	}
 	hash_scan_begin(&hs, keys);
 	while ((hn = hash_scan_next(&hs))) {
-		sentry = (selector_entry *)hnode_get(hn);
-		debug("in cim_add_keys: key: %s, text: %s", hnode_getkey(hn), sentry->entry.text);
+		sentry = (kv_value_t *)hnode_get(hn);
+		debug("in cim_add_keys: key: %s, text: %s", hnode_getkey(hn), sentry->value.text);
 		if(sentry->type == 0)
 			CMAddKey(objectpath, (char *) hnode_getkey(hn),
-					sentry->entry.text, CMPI_chars);
+					sentry->value.text, CMPI_chars);
 		else {
 			CMPIValue value;
-			value.ref = cim_epr_to_objectpath(NULL, sentry->entry.eprp);;
+			value.ref = cim_epr_to_objectpath(NULL, sentry->value.eprp);;
 			if (NULL != value.ref) {
 				CMAddKey(objectpath, (char *) hnode_getkey(hn),
 					&value, CMPI_ref);
@@ -843,10 +843,10 @@
 			debug("unexpected selectors");
 			break;
 		}
-		selector_entry *sentry = (selector_entry*)hnode_get(hn);
+		kv_value_t *sentry = (kv_value_t*)hnode_get(hn);
 		if(sentry->type == 0) {
 			cv = value2Chars(data.type, &data.value);
-			if(cv != NULL && strcmp(cv, sentry->entry.text) == 0) {
+			if(cv != NULL && strcmp(cv, sentry->value.text) == 0) {
 				statusP->fault_code = WSMAN_RC_OK;
 				statusP->fault_detail_code = WSMAN_DETAIL_OK;
 				u_free(cv);
@@ -854,14 +854,14 @@
 			else {
 				statusP->fault_code = WSA_DESTINATION_UNREACHABLE;
 				statusP->fault_detail_code = WSMAN_DETAIL_INVALID_RESOURCEURI;
-				debug("selector '%s', value: [ %s ] not matched", hnode_getkey(hn), sentry->entry.text);
+				debug("selector '%s', value: [ %s ] not matched", hnode_getkey(hn), sentry->value.text);
 			        debug("data.type 0x%04x, cv '%s'", data.type, cv?cv:"<NULL>");
 				u_free(cv);
 				break;
 			}
 		}
 		else {
-			CMPIObjectPath *objectpath_epr = cim_epr_to_objectpath(NULL, sentry->entry.eprp);
+			CMPIObjectPath *objectpath_epr = cim_epr_to_objectpath(NULL, sentry->value.eprp);
 			CMPIObjectPath *objectpath_epr2 = CMClone(data.value.ref, NULL);
 			if (cim_opcmp(objectpath_epr2, objectpath_epr) == 0) {
 				statusP->fault_code = WSMAN_RC_OK;
diff --git a/tests/client/test_selectorfilter.c b/tests/client/test_selectorfilter.c
index 74666e4..68cf827 100644
--- a/tests/client/test_selectorfilter.c
+++ b/tests/client/test_selectorfilter.c
@@ -87,12 +87,12 @@
 	hash_t *selectors_new = hash_create2(HASHCOUNT_T_MAX, 0, 0);
 	hnode_t        *hn;
 	hscan_t         hs;
-	selector_entry *entry;
+	kv_value_t     *entry;
 	hash_scan_begin(&hs, selectors);
 	while ((hn = hash_scan_next(&hs))) {
-		entry = u_malloc(sizeof(selector_entry));
+		entry = u_malloc(sizeof(kv_value_t));
 		entry->type = 0;
-		entry->entry.text = (char *)hnode_get(hn);
+		entry->value.text = (char *)hnode_get(hn);
 		hash_alloc_insert(selectors_new, hnode_getkey(hn), entry);
 	}
 	filter_t *filter = filter_create_selector(selectors_new);
diff --git a/tests/epr/test_epr.c b/tests/epr/test_epr.c
index 8dd6b5e..142ae34 100644
--- a/tests/epr/test_epr.c
+++ b/tests/epr/test_epr.c
@@ -8,16 +8,16 @@
 static void test_serialize1(void)
 {
 	hash_t *selectors_filter = hash_create(HASHCOUNT_T_MAX, 0, 0);
-	selector_entry *entry1 = NULL;
-	entry1 = u_malloc(sizeof(selector_entry)*4);
+	kv_value_t *entry1 = NULL;
+	entry1 = u_malloc(sizeof(kv_value_t)*4);
 	entry1[0].type = 0;
-	entry1[0].entry.text = "OperatingSystemFilter0";
+	entry1[0].value.text = "OperatingSystemFilter0";
 	entry1[1].type = 0;
-        entry1[1].entry.text = "localhost.localdomain";
+        entry1[1].value.text = "localhost.localdomain";
 	entry1[2].type = 0;
-        entry1[2].entry.text = "CIM_IndicationFilter";
+        entry1[2].value.text = "CIM_IndicationFilter";
 	entry1[3].type = 0;
-        entry1[3].entry.text = "CIM_ComputerSystem";
+        entry1[3].value.text = "CIM_ComputerSystem";
 	hash_alloc_insert(selectors_filter, "Name", &entry1[0]);
 	hash_alloc_insert(selectors_filter, "SystemName", &entry1[1]);
 	hash_alloc_insert(selectors_filter, "CreationClassName", &entry1[2]);
@@ -29,15 +29,15 @@
         }
 
 	hash_t *selectors_handler = hash_create(HASHCOUNT_T_MAX, 0, 0);
-	selector_entry *entry2 = u_malloc(sizeof(selector_entry)*4);
+	kv_value_t *entry2 = u_malloc(sizeof(kv_value_t)*4);
 	entry2[0].type = 0;
-        entry2[0].entry.text = "OperatingSystemHandler0";
+        entry2[0].value.text = "OperatingSystemHandler0";
         entry2[1].type = 0;
-        entry2[1].entry.text = "localhost.localdomain";
+        entry2[1].value.text = "localhost.localdomain";
         entry2[2].type = 0;
-        entry2[2].entry.text = "CIM_IndicationHandlerCIMXML";
+        entry2[2].value.text = "CIM_IndicationHandlerCIMXML";
         entry2[3].type = 0;
-        entry2[3].entry.text = "CIM_ComputerSystem";
+        entry2[3].value.text = "CIM_ComputerSystem";
 	hash_alloc_insert(selectors_handler, "Name", &entry2[0]);
         hash_alloc_insert(selectors_handler, "SystemName", &entry2[1]);
         hash_alloc_insert(selectors_handler, "CreationClassName", &entry2[2]);
@@ -49,12 +49,12 @@
 	}
 
 	hash_t *selectors_subscription =  hash_create(HASHCOUNT_T_MAX, 0, 0);
-        selector_entry *entry3 = NULL;
-        entry3 = u_malloc(sizeof(selector_entry)*2);
+        kv_value_t *entry3 = NULL;
+        entry3 = u_malloc(sizeof(kv_value_t)*2);
         entry3[0].type = 1;
-        entry3[0].entry.eprp = epr_filter;
+        entry3[0].value.eprp = epr_filter;
         entry3[1].type = 1;
-        entry3[1].entry.eprp = epr_handler;
+        entry3[1].value.eprp = epr_handler;
         hash_alloc_insert(selectors_subscription, "Filter", &entry3[1]);
 	hash_alloc_insert(selectors_subscription, "Handler", &entry3[1]);
 	epr_t *epr_subscription = epr_create("http://schema.omc-project.org/wbem/wscim/1/cim-schema/2/CIM_IndicationSubscription", selectors_subscription, NULL);
diff --git a/tests/filter/test_filter.c b/tests/filter/test_filter.c
index 57581b4..929b549 100644
--- a/tests/filter/test_filter.c
+++ b/tests/filter/test_filter.c
@@ -7,18 +7,18 @@
 static void serialize_filter1(void)
 {
 	hash_t *selectors = hash_create(HASHCOUNT_T_MAX, 0, 0);
-	selector_entry *entry1 = NULL;
-	entry1 = u_malloc(sizeof(selector_entry)*5);
+	kv_value_t *entry1 = NULL;
+	entry1 = u_malloc(sizeof(kv_value_t)*5);
 	entry1[0].type = 0;
-	entry1[0].entry.text = "OperatingSystemFilter0";
+	entry1[0].value.text = "OperatingSystemFilter0";
 	entry1[1].type = 0;
-        entry1[1].entry.text = "localhost.localdomain";
+        entry1[1].value.text = "localhost.localdomain";
 	entry1[2].type = 0;
-        entry1[2].entry.text = "CIM_IndicationFilter";
+        entry1[2].value.text = "CIM_IndicationFilter";
 	entry1[3].type = 0;
-        entry1[3].entry.text = "CIM_ComputerSystem";
+        entry1[3].value.text = "CIM_ComputerSystem";
 	entry1[4].type = 0;
-	entry1[4].entry.text = "root/interop";
+	entry1[4].value.text = "root/interop";
 	hash_alloc_insert(selectors, "Name", &entry1[0]);
 	hash_alloc_insert(selectors, "SystemName", &entry1[1]);
 	hash_alloc_insert(selectors, "CreationClassName", &entry1[2]);
@@ -71,16 +71,16 @@
 static void serialize_filter3(void)
 {
 	hash_t *selectors = hash_create(HASHCOUNT_T_MAX, 0, 0);
-        selector_entry *entry1 = NULL;
-        entry1 = u_malloc(sizeof(selector_entry)*4);
+        kv_value_t *entry1 = NULL;
+        entry1 = u_malloc(sizeof(kv_value_t)*4);
         entry1[0].type = 0;
-        entry1[0].entry.text = "OperatingSystemFilter0";
+        entry1[0].value.text = "OperatingSystemFilter0";
         entry1[1].type = 0;
-        entry1[1].entry.text = "localhost.localdomain";
+        entry1[1].value.text = "localhost.localdomain";
         entry1[2].type = 0;
-        entry1[2].entry.text = "CIM_IndicationFilter";
+        entry1[2].value.text = "CIM_IndicationFilter";
         entry1[3].type = 0;
-        entry1[3].entry.text = "CIM_ComputerSystem";
+        entry1[3].value.text = "CIM_ComputerSystem";
         hash_alloc_insert(selectors, "Name", &entry1[0]);
         hash_alloc_insert(selectors, "SystemName", &entry1[1]);
         hash_alloc_insert(selectors, "CreationClassName", &entry1[2]);