ha_msg_input_t *input = new_ha_msg_input(answer);
input = new_ha_msg_input(answer);
do_cib_invoke(long long action,	      enum crmd_fsa_cause cause,	      enum crmd_fsa_state cur_state,	      enum crmd_fsa_input current_input,	      fsa_data_t *msg_data){	HA_Message *answer = NULL;	enum crmd_fsa_input result = I_NULL;	ha_msg_input_t *cib_msg = fsa_typed_data(fsa_dt_ha_msg);	const char *sys_from = cl_get_string(cib_msg->msg, F_CRM_SYS_FROM);	if(action & A_CIB_INVOKE) {		if(safe_str_eq(sys_from, CRM_SYSTEM_CRMD)) {			action = A_CIB_INVOKE_LOCAL;		} else if(safe_str_eq(sys_from, CRM_SYSTEM_DC)) {			action = A_CIB_INVOKE_LOCAL;		}	}	if(action & A_CIB_INVOKE || action & A_CIB_INVOKE_LOCAL) {		int call_options = 0;		enum cib_errors rc  = cib_ok;		crm_data_t *cib_frag  = NULL;				const char *section  = NULL;		const char *op   = cl_get_string(cib_msg->msg, F_CRM_TASK);		section  = cl_get_string(cib_msg->msg, F_CIB_SECTION);				ha_msg_value_int(cib_msg->msg, F_CIB_CALLOPTS, &call_options);		crm_log_message(LOG_MSG, cib_msg->msg);		crm_xml_devel(cib_msg->xml, "[CIB update]");		if(op == NULL) {			crm_err("Invalid CIB Message");			return I_ERROR;		}				rc = fsa_cib_conn->cmds->variant_op(			fsa_cib_conn, op, NULL, section,			cib_msg->xml, &cib_frag, call_options);		if(rc != cib_ok || (action & A_CIB_INVOKE)) {			answer = create_reply(cib_msg->msg, cib_msg->xml);			ha_msg_add(answer,XML_ATTR_RESULT,cib_error2string(rc));		}				if(action & A_CIB_INVOKE) {			if(relay_message(answer, TRUE) == FALSE) {				crm_err("Confused what to do with cib result");				crm_log_message(LOG_ERR, answer);				crm_msg_del(answer);				result = I_ERROR;			}		} else if(rc != cib_ok) {			crm_err("Internal CRM/CIB command from %s: %s",				msg_data->origin, cib_error2string(rc));			crm_log_message(LOG_ERR, cib_msg->msg);			crm_xml_err(cib_msg->xml, "Command data:");			crm_log_message(LOG_ERR, answer);						ha_msg_input_t *input = new_ha_msg_input(answer);			register_fsa_input(C_FSA_INTERNAL, I_ERROR, input);			crm_msg_del(answer);			delete_ha_msg_input(input);		}				return result;	} else {		crm_err("Unexpected action %s in %s",			fsa_action2string(action), __FUNCTION__);	}		return I_NULL;}