crm_trace("Setting type to new_obj->name");
cib_post_notify(	const char *op, xmlNodePtr update, enum cib_errors result, xmlNodePtr new_obj) {	struct ha_msg *update_msg = ha_msg_new(8);	const char *id = xmlGetProp(new_obj, XML_ATTR_ID);	const char *type = NULL;		ha_msg_add(update_msg, F_TYPE, T_CIB_NOTIFY);	ha_msg_add(update_msg, F_SUBTYPE, T_CIB_POST_NOTIFY);	ha_msg_add(update_msg, F_CIB_OPERATION, op);	ha_msg_add_int(update_msg, F_CIB_RC, result);		if(id != NULL) {		ha_msg_add(update_msg, F_CIB_OBJID, id);	}	if(update != NULL) {		ha_msg_add(update_msg, F_CIB_OBJTYPE, update->name);	} else if(new_obj != NULL) {		ha_msg_add(update_msg, F_CIB_OBJTYPE, new_obj->name);	}	type = cl_get_string(update_msg, F_CIB_OBJTYPE);		if(update != NULL) {		char *update_s = dump_xml_unformatted(update);		if(update_s != NULL) {			ha_msg_add(update_msg, F_CIB_UPDATE, update_s);		} else {			crm_debug("Update string was NULL (xml=%p)", update);		}		crm_free(update_s);	}	if(new_obj != NULL) {		char *new_obj_s = dump_xml_unformatted(new_obj);		if(new_obj_s != NULL) {			ha_msg_add(update_msg, F_CIB_UPDATE_RESULT, new_obj_s);		} else {			crm_debug("Update string was NULL (xml=%p)", new_obj);		}		crm_free(new_obj_s);	}		g_hash_table_foreach(client_list, cib_notify_client, update_msg);		pending_updates--;	if(pending_updates == 0) {		ha_msg_mod(update_msg, F_SUBTYPE, T_CIB_UPDATE_CONFIRM);		g_hash_table_foreach(client_list, cib_notify_client, update_msg);	}	ha_msg_del(update_msg);	if(update == NULL) {		if(result == cib_ok) {			crm_verbose("Operation %s (on section=%s) completed",				    op, type);					} else {			crm_warn("Operation %s (on section=%s) FAILED: (%d) %s",				 op, type, result, cib_error2string(result));		}			} else {		if(result == cib_ok) {			crm_verbose("Completed %s of <%s %s%s>",				    op, type, id?"id=":"", id);					} else {			crm_warn("%s of <%s %s%s> FAILED: %s", op, type,				 id?"id=":"", id, cib_error2string(result));		}	}}