const char *to = NULL; xmlNodePtr root_xml_node;
const char *seq  = ha_msg_value(msg, F_SEQ);
crmd_ha_input_callback(const struct ha_msg* msg, void* private_data){	const char *from = ha_msg_value(msg, F_ORIG);	const char *to = NULL;	xmlNodePtr root_xml_node;	#ifdef MSG_LOG	if(msg_in_strm == NULL) {		msg_in_strm = fopen(DEVEL_DIR"/inbound.log", "w");	}#endif	if(safe_str_eq(from, fsa_our_uname)) {#ifdef MSG_LOG		fprintf(msg_in_strm,			"Discarded message [F_SEQ=%s] from ourselves.\n",			ha_msg_value(msg, F_SEQ));		fflush(msg_in_strm);#endif		return;	} else if(from == NULL) {		crm_err("Value of %s was NULL", F_ORIG);	}	#ifdef MSG_LOG	fprintf(msg_in_strm, "[%s (%s:%s)]\t%s\n", crm_str(from),		ha_msg_value(msg, F_SEQ),		ha_msg_value(msg, F_TYPE),		ha_msg_value(msg, "xml")		);	fflush(msg_in_strm);#endif	root_xml_node = find_xml_in_hamessage(msg);	to = xmlGetProp(root_xml_node, XML_ATTR_HOSTTO);		if(to != NULL && strlen(to) > 0 && strcmp(to, fsa_our_uname) != 0) {#ifdef MSG_LOG		fprintf(msg_in_strm,			"Discarding message [F_SEQ=%s] for someone else.",			ha_msg_value(msg, F_SEQ));#endif		return;	}	set_xml_property_copy(root_xml_node, XML_ATTR_HOSTFROM, from);	s_crmd_fsa(C_HA_MESSAGE, I_ROUTER, root_xml_node);	free_xml(root_xml_node);	return;}