fsa_actions |= A_DC_TIMER_STOP;
register_fsa_action(A_DC_TIMER_STOP);
do_cl_join_request(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 *input = fsa_typed_data(fsa_dt_ha_msg);	const char *welcome_from = cl_get_string(input->msg, F_CRM_HOST_FROM);	#if 0	if(we are sick) {		log error ;		/* save the request for later? */		return I_NULL;	} #endif	crm_debug("c1) processing join offer: %s",		  cl_get_string(input->msg, F_CRM_TASK));	/* we only ever want the last one */	if(query_call_id > 0) {		crm_debug("Cancelling previous join query");		remove_cib_op_callback(query_call_id, FALSE);	}	if(fsa_our_dc == NULL) {		crm_info("Set DC to %s", welcome_from);		fsa_our_dc = crm_strdup(welcome_from);	} else if(safe_str_neq(welcome_from, fsa_our_dc)) {		/* dont do anything until DC's sort themselves out */		crm_err("Expected a welcome from %s, but %s replied",			fsa_our_dc, welcome_from);		return I_NULL;	}	CRM_DEV_ASSERT(input != NULL);	query_call_id = fsa_cib_conn->cmds->query(		fsa_cib_conn, NULL, NULL, cib_scope_local);	add_cib_op_callback(		query_call_id, TRUE,		copy_ha_msg_input(input), join_query_callback);	fsa_actions |= A_DC_TIMER_STOP;	return I_NULL;}