fsa_state, I_MESSAGE, action);
fsa_state, I_MESSAGE, fsa_data);
send_msg_via_ipc(xmlNodePtr action, const char *sys){	IPC_Channel *client_channel;	enum crmd_fsa_input next_input;	crm_trace("relaying msg to sub_sys=%s via IPC", sys);	client_channel =		(IPC_Channel*)g_hash_table_lookup (ipc_clients, sys);	if(xmlGetProp(action, XML_ATTR_HOSTFROM) == NULL) {		set_xml_property_copy(			action, XML_ATTR_HOSTFROM, fsa_our_uname);	}		if (client_channel != NULL) {		crm_debug("Sending message via channel %s.", sys);				send_xmlipc_message(client_channel, action);			} else if(sys != NULL && strcmp(sys, CRM_SYSTEM_CIB) == 0) {		crm_err("Sub-system (%s) has been incorporated into the CRMd.",			sys);		crm_xml_err(action, "Change the way we handle");/*		relay_message(process_cib_message(action, TRUE), TRUE); */			} else if(sys != NULL && strcmp(sys, CRM_SYSTEM_LRMD) == 0) {#ifdef FSA_TRACE		crm_verbose("Invoking action %s (%.16llx)",			    fsa_action2string(A_LRM_INVOKE),			    A_LRM_INVOKE);#endif		next_input =			do_lrm_invoke(A_LRM_INVOKE, C_IPC_MESSAGE,				      fsa_state, I_MESSAGE, action);		/* todo: feed this back in for anything != I_NULL */		#ifdef FSA_TRACE		crm_verbose("Result of action %s was %s",			    fsa_action2string(A_LRM_INVOKE),			    fsa_input2string(next_input));#endif			} else {		crm_err("Unknown Sub-system (%s)... discarding message.", sys);	}    	return;}	