#include <systemd/sd-event.h>
#include "openxc.pb.h"
-#include "configuration.hpp"
+#include "application.hpp"
#include "../can/can-bus.hpp"
#include "../can/can-signals.hpp"
#include "../can/can-message.hpp"
if( adr != nullptr)
configuration_t::instance().get_diagnostic_manager().cleanup_request(adr, true);
}
+ delete diag_req;
+ diag_req = nullptr;
}
-static void push_n_notify(const can_message_t cm)
+static void push_n_notify(const can_message_t& cm)
{
can_bus_t& cbm = configuration_t::instance().get_can_bus_manager();
std::lock_guard<std::mutex> can_message_lock(cbm.get_can_message_mutex());
///
static int subscribe_unsubscribe_signals(struct afb_req request, bool subscribe, const struct utils::signals_found& signals)
{
- int ret, rets = 0;
+ int rets = 0;
//TODO: Implement way to dynamically call the right function no matter
// how much signals types we have.
- configuration_t& conf = configuration_t::instance();
+ application_t& conf = application_t::instance();
for(const auto& sig : signals.diagnostic_messages)
{
+ int ret = 0;
diagnostic_manager_t& diag_m = conf.get_diagnostic_manager();
DiagnosticRequest* diag_req = conf.get_request_from_diagnostic_message(sig->get_name());
diag_m.cleanup_request(
diag_m.find_recurring_request(diag_req), true);
WARNING(binder_interface, "%s: signal: %s isn't supported. Canceling operation.", __FUNCTION__, sig->get_name().c_str());
+ delete diag_req;
+ diag_req = nullptr;
return -1;
}
args = afb_req_json(request);
if (args == NULL || !json_object_object_get_ex(args, "event", &event))
{
+ event = json_object_new_string("*");
+ parse_filter(event, &event_filter);
ret["*"] = event_filter;
}
else if (json_object_get_type(event) != json_type_array)