const char *revision = xmlGetProp(cib_update, XML_ATTR_CIB_REVISION); const char *cur_revision = xmlGetProp(cib_copy, XML_ATTR_CIB_REVISION);
const char *revision = crm_element_value(cib_update, XML_ATTR_CIB_REVISION); const char *cur_revision = crm_element_value(cib_copy, XML_ATTR_CIB_REVISION);
revision_check(xmlNodePtr cib_update, xmlNodePtr cib_copy, int flags){	const char *revision = xmlGetProp(cib_update, XML_ATTR_CIB_REVISION);	const char *cur_revision = xmlGetProp(cib_copy, XML_ATTR_CIB_REVISION);	if(revision == NULL) {		return cib_ok;	} else if(cur_revision == NULL || strcmp(revision, cur_revision) > 0) {		crm_info("Updating CIB revision to %s", revision);		set_xml_property_copy(			cib_copy, XML_ATTR_CIB_REVISION, revision);	} else {		/* make sure we end up with the right value in the end */		set_xml_property_copy(			cib_update, XML_ATTR_CIB_REVISION, cur_revision);	}		if(strcmp(revision, cib_feature_revision_s) > 0) {		if(cib_is_master) {			crm_err("Update uses an unsupported tag/feature");			return cib_revision_unsupported;		} else if(flags & cib_scope_local) {			 /* an admin has forced a local change using a tag we			  * dont understand... ERROR			  */			crm_err("Update uses an unknown tag/feature");			return cib_revision_unsupported;		}	}		return cib_ok;}