if(fsa_our_dc == NULL) { crm_info("Set DC to %s", welcome_from); fsa_our_dc = crm_strdup(welcome_from); }
do_cl_join_result(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){	gboolean   was_nack   = TRUE;	crm_data_t *tmp1       = NULL;	ha_msg_input_t *input = fsa_typed_data(fsa_dt_ha_msg);	const char *ack_nack     = cl_get_string(input->msg, CRM_OP_JOINACK);	const char *welcome_from = cl_get_string(input->msg, F_CRM_HOST_FROM);	const char *type = cl_get_string(input->msg, F_SUBTYPE);	if(safe_str_eq(type, XML_ATTR_RESPONSE)) {		crm_verbose("Ignoring result.");		crm_log_message(LOG_VERBOSE, input->msg);		return I_NULL;	}		/* calculate if it was an ack or a nack */	if(safe_str_eq(ack_nack, XML_BOOLEAN_TRUE)) {		was_nack = FALSE;	}		if(was_nack) {		crm_err("Join with %s failed.  NACK'd", welcome_from);		register_fsa_error(C_FSA_INTERNAL, I_ERROR, NULL);		return I_NULL;	}		/* send our status section to the DC */	crm_debug("Discovering local LRM status");	tmp1 = do_lrm_query(TRUE);	if(tmp1 != NULL) {		HA_Message *reply = create_reply(input->msg, tmp1);		crm_debug("Sending local LRM status");		send_msg_via_ha(fsa_cluster_conn, reply);				free_xml(tmp1);		if(AM_I_DC == FALSE) {			register_fsa_input(cause, I_NOT_DC, NULL);		}			} else {		crm_err("Could send our LRM state to the DC");		register_fsa_error(C_FSA_INTERNAL, I_FAIL, NULL);	}	return I_NULL;}