register_fsa_input_later(
register_fsa_input_before(
check_join_state(enum crmd_fsa_state cur_state, const char *source){	crm_debug("Invoked by %s in state: %s",		  source, fsa_state2string(cur_state));	if(cur_state == S_INTEGRATION) {		if(g_hash_table_size(welcomed_nodes) == 0) {			crm_info("Integration of %d peers complete: %s",				 g_hash_table_size(integrated_nodes), source);			register_fsa_input_later(				C_FSA_INTERNAL, I_INTEGRATED, NULL);			return TRUE;		}	} else if(cur_state == S_FINALIZE_JOIN) {		if(is_set(fsa_input_register, R_HAVE_CIB) == FALSE) {			crm_debug("Delaying I_FINALIZED until we have the CIB");			return TRUE;					} else if(g_hash_table_size(integrated_nodes) == 0		   && g_hash_table_size(finalized_nodes) == 0) {			crm_info("Join process complete: %s", source);			register_fsa_input_later(				C_FSA_INTERNAL, I_FINALIZED, NULL);					} else if(g_hash_table_size(integrated_nodes) != 0			  && g_hash_table_size(finalized_nodes) != 0) {			crm_err("Waiting on %d integrated nodes"				" AND %d confirmations",				g_hash_table_size(integrated_nodes),				g_hash_table_size(finalized_nodes));		} else if(g_hash_table_size(integrated_nodes) != 0) {			crm_debug("Still waiting on %d integrated nodes",				  g_hash_table_size(integrated_nodes));					} else if(g_hash_table_size(finalized_nodes) != 0) {			crm_debug("Still waiting on %d confirmations",				  g_hash_table_size(finalized_nodes));		}			}		return FALSE;}