const char *name  = NULL; const char *value = NULL;  xml_child_iter( attrs, attr, NULL, name  = crm_element_value(attr, XML_NVPAIR_ATTR_NAME); value = crm_element_value(attr, XML_NVPAIR_ATTR_VALUE);  if(name != NULL && value != NULL && safe_val(NULL, node, details) != NULL) { crm_verbose("Adding %s => %s", name, value);  /* this is frustrating... no way to pass in const *  keys or values yet docs say: *   Note: If keys and/or values are dynamically *   allocated, you should free them first. */ g_hash_table_insert(node->details->attrs, crm_strdup(name), crm_strdup(value)); } ); 
add_node_attrs(crm_data_t * attrs, node_t *node){	const char *name  = NULL;	const char *value = NULL;	xml_child_iter(		attrs, attr, NULL,		name  = crm_element_value(attr, XML_NVPAIR_ATTR_NAME);		value = crm_element_value(attr, XML_NVPAIR_ATTR_VALUE);					if(name != NULL		   && value != NULL		   && safe_val(NULL, node, details) != NULL) {			crm_verbose("Adding %s => %s", name, value);			/* this is frustrating... no way to pass in const			 *  keys or values yet docs say:			 *   Note: If keys and/or values are dynamically			 *   allocated, you should free them first.			 */			g_hash_table_insert(node->details->attrs,					    crm_strdup(name),					    crm_strdup(value));		}		); 	g_hash_table_insert(node->details->attrs,			    crm_strdup(XML_ATTR_UNAME),			    crm_strdup(node->details->uname)); 	g_hash_table_insert(node->details->attrs,			    crm_strdup(XML_ATTR_ID),			    crm_strdup(node->details->id));	if(safe_str_eq(node->details->id, dc_uuid)) {		node->details->is_dc = TRUE;		g_hash_table_insert(node->details->attrs,				    crm_strdup(XML_ATTR_DC),				    crm_strdup(XML_BOOLEAN_TRUE));	} else {		g_hash_table_insert(node->details->attrs,				    crm_strdup(XML_ATTR_DC),				    crm_strdup(XML_BOOLEAN_FALSE));	}					return TRUE;}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/044f03348ccab15b7a3b9ba6d635633adc6dd127/unpack.c/clean/crm/pengine/unpack.c