return; }  set_bit_inplace(fsa_input_register, R_PEER_DATA);  if(fsa_state == S_STARTING || fsa_state == S_STOPPING) {
crmd_client_status_callback(const char * node, const char * client,		 const char * status, void * private){	const char    *join = NULL;	const char   *extra = NULL;	crm_data_t *  update = NULL;	crm_devel("received callback");	if(safe_str_neq(client, CRM_SYSTEM_CRMD)) {		return;	}	set_bit_inplace(fsa_input_register, R_PEER_DATA);	if(fsa_state == S_STARTING || fsa_state == S_STOPPING) {		return;	}	if(safe_str_eq(status, JOINSTATUS)){		status = ONLINESTATUS;		extra  = XML_CIB_ATTR_CLEAR_SHUTDOWN;	} else if(safe_str_eq(status, LEAVESTATUS)){		status = OFFLINESTATUS;		join   = CRMD_JOINSTATE_DOWN;		extra  = XML_CIB_ATTR_CLEAR_SHUTDOWN;	}		crm_notice("Status update: Client %s/%s now has status [%s]",		   node, client, status);	if(safe_str_eq(node, fsa_our_dc) && status == OFFLINESTATUS) {		/* did our DC leave us */		crm_info("Got client status callback - our DC is dead");		register_fsa_input(C_CRMD_STATUS_CALLBACK, I_ELECTION, NULL);			} else {		crm_devel("Got client status callback");		update = create_node_state(			node, node, NULL, NULL, status, join, NULL);				set_xml_property_copy(update, extra, XML_BOOLEAN_TRUE);		update_local_cib(create_cib_fragment(update, NULL));		free_xml(update);	}		G_main_set_trigger(fsa_source);}