}  cl_log(LOG_INFO,"trans=%d, nodes=%d, new=%d, lost=%d n_idx=%d, " "new_idx=%d, old_idx=%d", oc->m_instance, oc->m_n_member, oc->m_n_in, oc->m_n_out, oc->m_memb_idx, oc->m_in_idx, oc->m_out_idx);  dc_election_in_progress = TRUE; is_cluster_member=0; i_am_dc=FALSE; cl_log(LOG_INFO, "NODES IN THE PRIMARY MEMBERSHIP");  int lpc; int node_list_size = oc->m_n_member; for(lpc=0; lpc<node_list_size; lpc++) { cl_log(LOG_INFO,"\tnodeid=%d, born=%d", oc->m_array[oc->m_memb_idx+lpc].node_id, oc->m_array[oc->m_memb_idx+lpc].node_born_on); if (oc_ev_is_my_nodeid(ev_token, &(oc->m_array[lpc]))) { cl_log(LOG_INFO,"MY NODE ID IS %d", oc->m_array[oc->m_memb_idx+lpc].node_id); is_cluster_member = TRUE; if (lpc == 0) i_am_dc=TRUE; break; } }  if (lpc == node_list_size) { is_cluster_member = FALSE; cl_log(LOG_WARNING,"MY NODE IS NOT IN CCM THE MEMBERSHIP LIST"); }  if (is_cluster_member) { cl_log(LOG_INFO,"MY NODE IS A MEMBER OF THE MEMBERSHIP LIST"); if (i_am_dc) { cl_log(LOG_INFO,"MY NODE IS THE DESIGNATED CONTROLLER OF THE MEMBERSHIP LIST"); } }  cl_log(LOG_INFO, "NEW MEMBERS"); if (oc->m_n_in==0) cl_log(LOG_INFO, "\tNONE"); for(lpc=0; lpc<oc->m_n_in; lpc++) { cl_log(LOG_INFO,"\tnodeid=%d, born=%d", oc->m_array[oc->m_in_idx+lpc].node_id, oc->m_array[oc->m_in_idx+lpc].node_born_on); } cl_log(LOG_INFO, "MEMBERS LOST"); if (oc->m_n_out==0) cl_log(LOG_INFO, "\tNONE"); for(lpc=0; lpc<oc->m_n_out; lpc++) { cl_log(LOG_INFO,"\tnodeid=%d, born=%d", oc->m_array[oc->m_out_idx+lpc].node_id, oc->m_array[oc->m_out_idx+lpc].node_born_on); } cl_log(LOG_INFO, "-----------------------"); oc_ev_callback_done(cookie); FNOUT();
crmd_ccm_input_callback(oc_ed_t event, void *cookie, size_t size, const void *data){    FNIN();    (void)_ha_msg_h_Id; // keep the compiler happy    const oc_ev_membership_t *oc = (const oc_ev_membership_t *)data;        cl_log(LOG_INFO,"event=%s", 	   event==OC_EV_MS_NEW_MEMBERSHIP?"NEW MEMBERSHIP":	   event==OC_EV_MS_NOT_PRIMARY?"NOT PRIMARY":	   event==OC_EV_MS_PRIMARY_RESTORED?"PRIMARY RESTORED":	   event==OC_EV_MS_EVICTED?"EVICTED":	   "NO QUORUM MEMBERSHIP");        if (OC_EV_MS_EVICTED == event) {	oc_ev_callback_done(cookie);	FNOUT();    }        cl_log(LOG_INFO,"trans=%d, nodes=%d, new=%d, lost=%d n_idx=%d, "	   "new_idx=%d, old_idx=%d",	   oc->m_instance,	   oc->m_n_member,	   oc->m_n_in,	   oc->m_n_out,	   oc->m_memb_idx,	   oc->m_in_idx,	   oc->m_out_idx);        dc_election_in_progress = TRUE;    is_cluster_member=0;    i_am_dc=FALSE;    cl_log(LOG_INFO, "NODES IN THE PRIMARY MEMBERSHIP");        int lpc;    int node_list_size = oc->m_n_member;    for(lpc=0; lpc<node_list_size; lpc++)    {	cl_log(LOG_INFO,"\tnodeid=%d, born=%d",	       oc->m_array[oc->m_memb_idx+lpc].node_id,	       oc->m_array[oc->m_memb_idx+lpc].node_born_on);	if (oc_ev_is_my_nodeid(ev_token, &(oc->m_array[lpc])))	{	    cl_log(LOG_INFO,"MY NODE ID IS %d", oc->m_array[oc->m_memb_idx+lpc].node_id);	    is_cluster_member = TRUE;	    if (lpc == 0)		i_am_dc=TRUE;	    break;	}    }        if (lpc == node_list_size)    {	is_cluster_member = FALSE;	cl_log(LOG_WARNING,"MY NODE IS NOT IN CCM THE MEMBERSHIP LIST");    }	    if (is_cluster_member)    {	cl_log(LOG_INFO,"MY NODE IS A MEMBER OF THE MEMBERSHIP LIST");	if (i_am_dc) {	    cl_log(LOG_INFO,"MY NODE IS THE DESIGNATED CONTROLLER OF THE MEMBERSHIP LIST");	}    }        cl_log(LOG_INFO, "NEW MEMBERS");    if (oc->m_n_in==0) 	cl_log(LOG_INFO, "\tNONE");    for(lpc=0; lpc<oc->m_n_in; lpc++)    {	cl_log(LOG_INFO,"\tnodeid=%d, born=%d",	       oc->m_array[oc->m_in_idx+lpc].node_id,	       oc->m_array[oc->m_in_idx+lpc].node_born_on);    }    cl_log(LOG_INFO, "MEMBERS LOST");    if (oc->m_n_out==0) 	cl_log(LOG_INFO, "\tNONE");    for(lpc=0; lpc<oc->m_n_out; lpc++)    {	cl_log(LOG_INFO,"\tnodeid=%d, born=%d",	       oc->m_array[oc->m_out_idx+lpc].node_id,	       oc->m_array[oc->m_out_idx+lpc].node_born_on);    }    cl_log(LOG_INFO, "-----------------------");    oc_ev_callback_done(cookie);    FNOUT();}