if(join_requests == NULL) { if(fsa_membership_copy->members_size == 1) {  crm_info("Not expecting any join acks"); return I_SUCCESS; }  } else if(g_hash_table_size(join_requests)
if(g_hash_table_size(join_requests)
do_dc_join_offer_all(long long action,		    enum crmd_fsa_cause cause,		    enum crmd_fsa_state cur_state,		    enum crmd_fsa_input current_input,		    void *data){	/* reset everyones status back to down or in_ccm in the CIB */	xmlNodePtr update     = NULL;	xmlNodePtr cib_copy   = get_cib_copy();	xmlNodePtr tmp1       = get_object_root(XML_CIB_TAG_STATUS, cib_copy);	xmlNodePtr tmp2       = NULL;	/* Give everyone a chance to join before invoking the PolicyEngine */	stopTimer(integration_timer);		initialize_join();		/* catch any nodes that are active in the CIB but not in the CCM list*/	xml_child_iter(		tmp1, node_entry, XML_CIB_TAG_STATE,		const char *node_id = xmlGetProp(node_entry, XML_ATTR_UNAME);		gpointer a_node = g_hash_table_lookup(				fsa_membership_copy->members, node_id);		if(a_node != NULL || (safe_str_eq(fsa_our_uname, node_id))) {			/* handled by do_update_cib_node() */			continue;		}		tmp2 = create_node_state(			node_id, node_id,			XML_BOOLEAN_NO, NULL, CRMD_JOINSTATE_DOWN);		if(update == NULL) {			update = tmp2;		} else {			update = xmlAddSibling(update, tmp2);		}		);	/* now process the CCM data */	free_xml(do_update_cib_nodes(update, TRUE));	free_xml(cib_copy);	/* Avoid ordered message delays caused when the CRMd proc	 * isnt running yet (ie. send as a broadcast msg which are never	 * sent ordered.	 */	send_request(NULL, NULL, CRM_OP_WELCOME,		     NULL, CRM_SYSTEM_CRMD, NULL);	/* No point hanging around in S_INTEGRATION if we're the only ones here! */	if(join_requests == NULL) {		if(fsa_membership_copy->members_size == 1) {			/* we're the only ones in here */			crm_info("Not expecting any join acks");			return I_SUCCESS;		}			} else if(g_hash_table_size(join_requests)		  >= fsa_membership_copy->members_size) {		crm_info("That was the last outstanding join ack");		return I_SUCCESS;	}	/* dont waste time by invoking the pe yet; */	crm_debug("Still waiting on %d outstanding join acks",		  fsa_membership_copy->members_size		  - g_hash_table_size(join_requests));	/* we shouldnt wait forever */	crm_debug("Starting the integration timer");	startTimer(integration_timer);		return I_NULL;}