store_request(NULL, fragment, CRM_OP_UPDATE, CRM_SYSTEM_DCIB);
invoke_local_cib(NULL, fragment, CRM_OP_UPDATE);
do_dc_takeover(long long action,	       enum crmd_fsa_cause cause,	       enum crmd_fsa_state cur_state,	       enum crmd_fsa_input current_input,	       void *data){	xmlNodePtr update = NULL, fragment = NULL;		crm_trace("################## Taking over the DC ##################");	set_bit_inplace(&fsa_input_register, R_THE_DC);	crm_verbose("Am I the DC? %s", AM_I_DC?XML_BOOLEAN_YES:XML_BOOLEAN_NO);		fsa_our_dc = NULL;	set_bit_inplace(&fsa_input_register, R_JOIN_OK);	set_bit_inplace(&fsa_input_register, R_INVOKE_PE);		clear_bit_inplace(&fsa_input_register, R_CIB_DONE);	clear_bit_inplace(&fsa_input_register, R_HAVE_CIB);	startTimer(dc_heartbeat);	if (fsa_cluster_conn->llc_ops->set_cstatus_callback(		    fsa_cluster_conn, crmd_client_status_callback, NULL)!=HA_OK){		crm_err("Cannot set client status callback\n");		crm_err("REASON: %s\n",		       fsa_cluster_conn->llc_ops->errmsg(fsa_cluster_conn));	}	// just in case	create_node_entry(fsa_our_uname, fsa_our_uname, "member");		/* store our state in the CIB (since some fields will not be	 *  filled in because the DC doesnt go through the join process	 *  with itself	 *	 * bypass the TE for now, it will be informed in good time	 */	update = create_node_state(		fsa_our_uname, NULL, ONLINESTATUS, CRMD_JOINSTATE_MEMBER);	set_xml_property_copy(		update,XML_CIB_ATTR_EXPSTATE, CRMD_STATE_ACTIVE);		fragment = create_cib_fragment(update, NULL);	store_request(NULL, fragment, CRM_OP_UPDATE, CRM_SYSTEM_DCIB);	free_xml(update);	free_xml(fragment);	/* Async get client status information in the cluster */	fsa_cluster_conn->llc_ops->client_status(		fsa_cluster_conn, NULL, CRM_SYSTEM_CRMD, -1);		return I_NULL;}