fprintf(msg_in_strm, "[%s (%s:%s)]\t%s\n", from, ha_msg_value(msg, F_SEQ), ha_msg_value(msg, F_TYPE), ha_msg_value(msg, "xml") ); fflush(msg_in_strm);
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;	FNIN();#ifdef MSG_LOG		if(msg_in_strm == NULL) {		msg_in_strm = fopen("/tmp/inbound.log", "w");	}	fprintf(msg_in_strm, "[%s (%s:%s)]\t%s\n",		from,		ha_msg_value(msg, F_SEQ),		ha_msg_value(msg, F_TYPE),		ha_msg_value(msg, "xml")		);	fflush(msg_in_strm);	#endif	if(from == NULL || strcmp(from, fsa_our_uname) == 0) {#ifdef MSG_LOG		fprintf(msg_in_strm,			"Discarded message [F_SEQ=%s] from ourselves.\n",			ha_msg_value(msg, F_SEQ));#endif		FNOUT();	}	xmlNodePtr root_xml_node = find_xml_in_hamessage(msg);	to = xmlGetProp(root_xml_node, XML_ATTR_HOSTTO);/*	if(AM_I_DC == FALSE && (to == NULL || strlen(to) == 0)) {		CRM_DEBUG2("Discarding message [F_SEQ=%s] for the DC.",			   ha_msg_value(msg, F_SEQ));		FNOUT();	}*/	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		FNOUT();	}	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);	FNOUT();}