XML_MSG_ATTR_SYSFROM, true_from);
XML_MSG_ATTR_SYSTO, sys_to); set_xml_property_copy(doc->children, XML_MSG_ATTR_SYSFROM, true_from);
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	xmlDocPtr doc = xmlNewDoc("1.0");	doc->children = create_xml_doc_node(doc, XML_MSG_TAG);	// the root_xml_node node	set_xml_property_copy(doc->children,						  XML_ATTR_VERSION,						  CRM_VERSION);	set_xml_property_copy(doc->children,						  XML_MSG_ATTR_MSGTYPE,						  message_type);	set_xml_property_copy(doc->children,						  XML_ATTR_TSTAMP,						  getNow());    set_xml_property_copy(doc->children,						  XML_MSG_ATTR_REFERENCE,						  crm_msg_reference);	set_xml_property_copy(doc->children,						  XML_MSG_ATTR_HOSTTO,						  host_to);	set_xml_property_copy(doc->children,						  XML_MSG_ATTR_SYSTO,						  sys_to);	set_xml_property_copy(doc->children,						  XML_MSG_ATTR_SYSFROM,						  true_from);	// create a place holder for the eventual data	xmlNodePtr xml_node = create_xml_node(doc->children, message_type);	CRM_DEBUG("Created request wrapper...");	xml_message_debug(xmlDocGetRootElement(doc));    	if (xml_msg_node != NULL)	{		unlink_xml_node(xml_msg_node);		xmlAddChild(xml_node, xml_msg_node);	}	was_sent =		send_xmlipc_message(ipc_channel, xmlDocGetRootElement(doc));	// unlink xml_msg_node from xml_node and free the doc	if (xml_msg_node != NULL) unlink_xml_node(xml_msg_node);	free_xml(xml_node);    	FNRET(was_sent);}