send_ipc_request(IPC_Channel *ipc_channel, xmlNodePtr xml_msg_node,
send_ipc_request(IPC_Channel *ipc_channel, xmlNodePtr msg_options, xmlNodePtr msg_data,
send_ipc_request(IPC_Channel *ipc_channel, xmlNodePtr xml_msg_node,		 const char *host_to, const char *sys_to,		 const char *sys_from, const char *uid_from,		 const char *crm_msg_reference){	FNIN();	gboolean was_sent = FALSE;	const char *message_type = XML_MSG_TAG_REQUEST;	const char *true_from = sys_from;	if (uid_from != NULL)		true_from = generate_hash_key(sys_from, uid_from);	// else make sure we are internal	else	{		if (strcmp(CRM_SYSTEM_LRMD, sys_from) != 0		    && strcmp(CRM_SYSTEM_PENGINE, sys_from) != 0		    && strcmp(CRM_SYSTEM_TENGINE, sys_from) != 0		    && strcmp(CRM_SYSTEM_DC, sys_from) != 0		    && strcmp(CRM_SYSTEM_CRMD, sys_from) != 0)		{			cl_log(LOG_ERR,			       "only internal systems can leave uid_from blank");			FNRET(FALSE);		}	}	if (crm_msg_reference == NULL)		crm_msg_reference = generateReference();    	// host_from will get set for us if necessary by CRMd when routed	xmlNodePtr request = create_xml_node(NULL, XML_MSG_TAG);	// the root_xml_node node	set_xml_property_copy(request,			      XML_ATTR_VERSION,			      CRM_VERSION);	set_xml_property_copy(request,			      XML_MSG_ATTR_MSGTYPE,			      message_type);	set_node_tstamp(request);	set_xml_property_copy(request,			      XML_MSG_ATTR_REFERENCE,			      crm_msg_reference);	set_xml_property_copy(request,			      XML_MSG_ATTR_HOSTTO,			      host_to);	set_xml_property_copy(request,			      XML_MSG_ATTR_SYSTO,			      sys_to);	set_xml_property_copy(request,			      XML_MSG_ATTR_SYSFROM,			      true_from);	// create a place holder for the eventual data	xmlNodePtr xml_node = create_xml_node(request, message_type);	CRM_DEBUG("Created request wrapper...");	xml_message_debug(request);		if (xml_msg_node != NULL) {		add_node_copy(xml_node, xml_msg_node);	}	CRM_DEBUG("Final request...");	xml_message_debug(request);	was_sent =		send_xmlipc_message(ipc_channel, request);	free_xml(xml_node);    	FNRET(was_sent);}