Diff between 9b80a1f0632998b424d20c319761326e95796096 and fd16f2cc64554bc4e9b9b04c5267c71223a04cff

Changed Files

File Additions Deletions Status
profiles/heartrate/heartrate.c +14 -12 modified

Full Patch

diff --git a/profiles/heartrate/heartrate.c b/profiles/heartrate/heartrate.c
index 9a92960..f0eb7a4 100644
--- a/profiles/heartrate/heartrate.c
+++ b/profiles/heartrate/heartrate.c
@@ -412,28 +412,30 @@ static void discover_ccc_cb(guint8 status, const guint8 *pdu,
 	for (i = 0; i < list->num; i++) {
 		uint8_t *value;
 		uint16_t handle, uuid;
+		char *msg;
+		uint8_t attr_val[2];
 
 		value = list->data[i];
 		handle = att_get_u16(value);
 		uuid = att_get_u16(value + 2);
 
-		if (uuid == GATT_CLIENT_CHARAC_CFG_UUID) {
-			char *msg;
-			uint8_t value[2];
+		if (uuid != GATT_CLIENT_CHARAC_CFG_UUID)
+			continue;
 
-			hr->measurement_ccc_handle = handle;
+		hr->measurement_ccc_handle = handle;
 
-			if (g_slist_length(hr->hradapter->watchers) == 0)
-				break;
-
-			att_put_u16(GATT_CLIENT_CHARAC_CFG_NOTIF_BIT, value);
+		if (g_slist_length(hr->hradapter->watchers) == 0) {
+			att_put_u16(0x0000, attr_val);
+			msg = g_strdup("Disable measurement");
+		} else {
+			att_put_u16(GATT_CLIENT_CHARAC_CFG_NOTIF_BIT, attr_val);
 			msg = g_strdup("Enable measurement");
+		}
 
-			gatt_write_char(hr->attrib, handle, value,
-					sizeof(value), char_write_cb, msg);
+		gatt_write_char(hr->attrib, handle, attr_val,
+					sizeof(attr_val), char_write_cb, msg);
 
-			break;
-		}
+		break;
 	}
 
 done: