diff --git a/android/bluetooth.c b/android/bluetooth.c
index 3016ea4..827e205 100644
--- a/android/bluetooth.c
+++ b/android/bluetooth.c
g_key_file_free(key_file);
}
-void bt_update_sign_counter(const bdaddr_t *addr, enum bt_csrk_type type)
+void bt_update_sign_counter(const bdaddr_t *addr, enum bt_csrk_type type,
+ uint32_t val)
{
struct device *dev;
return;
if (type == LOCAL_CSRK)
- dev->local_sign_cnt++;
+ dev->local_sign_cnt = val;
else
- dev->remote_sign_cnt++;
+ dev->remote_sign_cnt = val;
store_sign_counter(dev, type);
}
diff --git a/android/bluetooth.h b/android/bluetooth.h
index fffb3cc..8970559 100644
--- a/android/bluetooth.h
+++ b/android/bluetooth.h
bool bt_get_csrk(const bdaddr_t *addr, enum bt_csrk_type type,
uint8_t key[16], uint32_t *sign_cnt);
-void bt_update_sign_counter(const bdaddr_t *addr, enum bt_csrk_type type);
+void bt_update_sign_counter(const bdaddr_t *addr, enum bt_csrk_type type,
+ uint32_t val);
void bt_store_gatt_ccc(const bdaddr_t *addr, uint16_t value);
diff --git a/android/gatt.c b/android/gatt.c
index ad20a71..e1d7df2 100644
--- a/android/gatt.c
+++ b/android/gatt.c
return 0;
}
- bt_update_sign_counter(&dev->bdaddr, LOCAL_CSRK);
+ bt_update_sign_counter(&dev->bdaddr, LOCAL_CSRK, sign_cnt++);
return res;
}
return;
}
/* Signature OK, proceed with write */
- bt_update_sign_counter(&dev->bdaddr, REMOTE_CSRK);
+ bt_update_sign_counter(&dev->bdaddr, REMOTE_CSRK, sign_cnt++);
gatt_db_write(gatt_db, handle, 0, value, vlen, cmd[0],
&dev->bdaddr);
}