crm_log_message_adv(LOG_MSG, "inbound.ha.log", msg);
crm_log_message_adv(LOG_DEBUG, "HA[inbound]", msg);
crmd_ha_msg_callback(const HA_Message * msg, void* private_data){	ha_msg_input_t *new_input = NULL;	oc_node_t *from_node = NULL;		const char *from = ha_msg_value(msg, F_ORIG);	const char *seq  = ha_msg_value(msg, F_SEQ);	const char *op   = ha_msg_value(msg, F_CRM_TASK);	const char *sys_to   = ha_msg_value(msg, F_CRM_SYS_TO);	const char *sys_from = ha_msg_value(msg, F_CRM_SYS_FROM);	CRM_DEV_ASSERT(from != NULL);	if(fsa_membership_copy == NULL) {		crm_devel("Ignoring HA messages until we are"			  " connected to the CCM");		return;	}		from_node = g_hash_table_lookup(fsa_membership_copy->members, from);	if(from_node == NULL) {		crm_devel("Ignoring HA messages from %s: not in our"			  " membership list", from);			} else if(AM_I_DC	   && safe_str_eq(sys_from, CRM_SYSTEM_DC)	   && safe_str_neq(from, fsa_our_uname)) {		crm_err("Another DC detected");		crm_log_message_adv(LOG_ERR, "inbound.ha.log", msg);		new_input = new_ha_msg_input(msg);		register_fsa_input(C_HA_MESSAGE, I_ELECTION, new_input);#if 0		/* still thinking about this one...		 * could create a timing issue if we dont notice the		 * election before a new DC is elected.		 */	} else if(fsa_our_dc != NULL		  && safe_str_eq(sys_from, CRM_SYSTEM_DC)		  && safe_str_neq(from, fsa_our_dc)) {		crm_warn("Ignoring message from wrong DC: %s vs. %s ",			 from, fsa_our_dc);		crm_log_message_adv(LOG_WARNING, "inbound.ha.log", msg);#endif	} else if(safe_str_eq(sys_to, CRM_SYSTEM_DC) && AM_I_DC == FALSE) {		crm_verbose("Ignoring message for the DC [F_SEQ=%s]", seq);		crm_log_message_adv(LOG_TRACE, "inbound.ha.log", msg);		return;	} else if(safe_str_eq(from, fsa_our_uname)		  && safe_str_eq(op, CRM_OP_VOTE)) {		crm_log_message_adv(LOG_TRACE, "inbound.ha.log", msg);		crm_verbose("Ignoring our own vote [F_SEQ=%s]", seq);		return;			} else if(AM_I_DC && safe_str_eq(op, CRM_OP_HBEAT)) {		crm_verbose("Ignoring our own heartbeat [F_SEQ=%s]", seq);		crm_log_message_adv(LOG_MSG, "inbound.ha.log", msg);		return;	} else {		crm_devel("Processing message");		crm_log_message_adv(LOG_MSG, "inbound.ha.log", msg);		new_input = new_ha_msg_input(msg);		register_fsa_input(C_HA_MESSAGE, I_ROUTER, new_input);	}	#if 0	if(ha_msg_value(msg, XML_ATTR_REFERENCE) == NULL) {		ha_msg_add(new_input->msg, XML_ATTR_REFERENCE, seq);	}#endif	delete_ha_msg_input(new_input);	s_crmd_fsa(C_HA_MESSAGE);	return;}