From 8eaebc2cdfcab4b2f7cd5381241bb0e8bc39701c Mon Sep 17 00:00:00 2001
From: Romain Forlot <romain.forlot@iot.bzh>
Date: Tue, 4 Apr 2017 00:18:55 +0200
Subject: Unsubscribe instead of subscribe if can't adding to recurring request

Not useful to get a subscription on an adding error.

Change-Id: I211016a1cbeb9cd5677cd8f8c7a28ccc93ef9a34
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
---
 src/low-can-binding.cpp | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

(limited to 'src')

diff --git a/src/low-can-binding.cpp b/src/low-can-binding.cpp
index bcbfc2c0..07b3f1ea 100644
--- a/src/low-can-binding.cpp
+++ b/src/low-can-binding.cpp
@@ -139,7 +139,6 @@ static int subscribe_unsubscribe_signals(struct afb_req request, bool subscribe,
 	for(const std::string& sig : signals)
 	{
 		int ret;
-		bool to_subscribe = false;
 		if (active_diagnostic_request_t::is_diagnostic_signal(sig))
 		{
 			diagnostic_message_t* diag_msg = configuration_t::instance().get_diagnostic_message(sig);
@@ -151,7 +150,7 @@ static int subscribe_unsubscribe_signals(struct afb_req request, bool subscribe,
 			if(diag_msg->get_supported() && subscribe)
 			{
 					float frequency = diag_msg->get_frequency();
-					to_subscribe = configuration_t::instance().get_diagnostic_manager().add_recurring_request(
+					subscribe = configuration_t::instance().get_diagnostic_manager().add_recurring_request(
 						diag_req, sig.c_str(), false, diag_msg->get_decoder(), diag_msg->get_callback(), (float)frequency);
 						//TODO: Adding callback requesting ignition status:	diag_req, sig.c_str(), false, diagnostic_message_t::decode_obd2_response, diagnostic_message_t::check_ignition_status, frequency);
 			}
@@ -164,13 +163,11 @@ static int subscribe_unsubscribe_signals(struct afb_req request, bool subscribe,
 			}
 		}
 
-		if(to_subscribe)
-		{
-			ret = subscribe_unsubscribe_signal(request, subscribe, sig);
-			if(ret <= 0)
-				return ret;
-			rets++;
-		}
+		ret = subscribe_unsubscribe_signal(request, subscribe, sig);
+		if(ret <= 0)
+			return ret;
+		rets++;
+
 		DEBUG(binder_interface, "Signal: %s subscribed", sig.c_str());
 	}
 	return rets;
-- 
cgit