From: Romain Forlot <romain.forlot@iot.bzh>
Date: Thu, 16 Mar 2017 18:23:55 +0000 (+0100)
Subject: Wrong error handling when fire diagnostic request.
X-Git-Tag: 3.99.1~242
X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=11896f4d36c4c5c81cf86e8356eb5b3777272f4b;p=apps%2Flow-level-can-service.git

Wrong error handling when fire diagnostic request.

As returned code was negative value the sd_event_source stopped considering
that was an error. If statement was to check that sd_event_set_enabled was
ok, so unref and return wasn't at the right location...

Change-Id: I91cc943c20af80a31b4f66f5714ccef93c0fdbd2
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
---

diff --git a/src/diagnostic/diagnostic-manager.cpp b/src/diagnostic/diagnostic-manager.cpp
index 4fc34b1..5a8d23b 100644
--- a/src/diagnostic/diagnostic-manager.cpp
+++ b/src/diagnostic/diagnostic-manager.cpp
@@ -461,16 +461,14 @@ int diagnostic_manager_t::send_request(sd_event_source *s, uint64_t usec, void *
 			DEBUG(binder_interface, "send_request: Event loop state: %d. usec: %ld", sd_event_get_state(afb_daemon_get_event_loop(binder_interface->daemon)), usec);
 			if(sd_event_source_set_time(s, usec+1000000) >= 0)
 				if(sd_event_source_set_enabled(s, SD_EVENT_ON) >= 0)
-				{
-					sd_event_source_unref(s);
-					return -2;
-				}
-			return 1;
+					return 0;
+			sd_event_source_unref(s);
+			return -1;
 		}
 	}
 	sd_event_source_unref(s);
 	ERROR(binder_interface, "send_request: Something goes wrong when submitting a new request to the CAN bus");
-	return -3;
+	return -2;
 }
 
 /// @brief Will decode the diagnostic response and build the final openxc_VehicleMessage to return.