if(ccm_transition_id != NULL) { crm_free(ccm_transition_id); ccm_transition_id = NULL; 
if(membership != NULL) { instance = membership->m_instance; }  crm_info("Quorum %s after event=%s (id=%d)", cib_have_quorum?"(re)attained":"lost", ccm_event_name(event), instance);  switch(event) { case OC_EV_MS_NEW_MEMBERSHIP: case OC_EV_MS_INVALID: update_id = TRUE; update_quorum = TRUE; break; case OC_EV_MS_PRIMARY_RESTORED: update_id = TRUE; break; case OC_EV_MS_NOT_PRIMARY: crm_debug("Ignoring transitional CCM event: %s", ccm_event_name(event)); break; case OC_EV_MS_EVICTED: crm_err("Evicted from CCM: %s", ccm_event_name(event)); update_quorum = TRUE; break; default: crm_err("Unknown CCM event: %d", event); 
cib_ccm_msg_callback(	oc_ed_t event, void *cookie, size_t size, const void *data){	unsigned lpc = 0;	int offset = 0;	const oc_ev_membership_t *membership = data;	crm_verbose("received callback");		if(ccm_transition_id != NULL) {		crm_free(ccm_transition_id);		ccm_transition_id = NULL;	}		cib_have_quorum = ccm_have_quorum(event);	ccm_transition_id = crm_itoa(membership->m_instance);	set_xml_property_copy(		the_cib, XML_ATTR_CCM_TRANSITION, ccm_transition_id);		crm_info("Quorum %s after event=%s (id=%s/%d)", 		 cib_have_quorum?"(re)attained":"lost",		 ccm_event_name(event), ccm_transition_id,		 membership->m_instance);	if(data == NULL) {		return;	}		if(ccm_membership != NULL) {		g_hash_table_foreach_remove(			ccm_membership, ghash_str_clfree, NULL);	}	ccm_membership = g_hash_table_new(g_str_hash, g_str_equal);	offset = membership->m_memb_idx;		for(lpc = 0; lpc < membership->m_n_member; lpc++) {		oc_node_t a_node = membership->m_array[lpc+offset];		char *uname = crm_strdup(a_node.node_uname);		crm_devel("Copying ccm member node %d:%s", lpc, uname);		g_hash_table_insert(ccm_membership, uname, uname);		}		oc_ev_callback_done(cookie);		return;}
8182	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8182/24dc5dcc9431338db2a9a3827691eb71d933206c/callbacks.c/clean/crm/cib/callbacks.c