process_join_ack_msg(join_from, join_ack->xml);
int join_id = -1; ha_msg_value_int(join_ack->msg, F_CRM_JOIN_ID, &join_id); process_join_ack_msg(join_from, join_ack->xml, join_id);
do_dc_join_ack(long long action,	       enum crmd_fsa_cause cause,	       enum crmd_fsa_state cur_state,	       enum crmd_fsa_input current_input,	       fsa_data_t *msg_data){	ha_msg_input_t *join_ack = fsa_typed_data(fsa_dt_ha_msg);	const char *join_from  = cl_get_string(join_ack->msg, F_CRM_HOST_FROM);	const char *op         = cl_get_string(join_ack->msg, F_CRM_TASK);	if(safe_str_neq(op, CRM_OP_JOIN_CONFIRM)) {		crm_debug("Ignoring op=%s message", op);	} else {		process_join_ack_msg(join_from, join_ack->xml);	}	return I_NULL;}