send_ha_reply(fsa_cluster_conn, welcome, tmp1);
reply = create_reply(input->msg, tmp1);  send_msg_via_ha(fsa_cluster_conn, reply);
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){	xmlNodePtr tmp1;	xmlNodePtr welcome = (xmlNodePtr)msg_data->data;	const char *welcome_from = xmlGetProp(welcome, XML_ATTR_HOSTFROM);	#if 0	if(we are sick) {		log error ;		/* save the request for later? */		return I_NULL;	} #endif	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;	}	/* include our CIB generation tuple */	tmp1 = cib_get_generation(fsa_cib_conn);	send_ha_reply(fsa_cluster_conn, welcome, tmp1);	free_xml(tmp1);		return I_NULL;}