diff options
author | Jakub Tyszkowski <jakub.tyszkowski@tieto.com> | 2014-10-03 15:08:41 +0200 |
---|---|---|
committer | Szymon Janc <szymon.janc@tieto.com> | 2014-10-06 13:28:25 +0200 |
commit | 1300d9da95afa4901bd184c92e59687c19f5268d (patch) | |
tree | 3514b3a855f65b60d7e497a9170741bb8b467437 /android/tester-main.c | |
parent | e4942a2f64254a95ab2ecb5fb744337152cf5b19 (diff) | |
download | bluez-1300d9da95afa4901bd184c92e59687c19f5268d.tar.gz |
android/tester: Add encryption change callback
This is needed for encryption verification.
Diffstat (limited to 'android/tester-main.c')
-rw-r--r-- | android/tester-main.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/android/tester-main.c b/android/tester-main.c index c637fd5e0..d5ebe162a 100644 --- a/android/tester-main.c +++ b/android/tester-main.c @@ -104,6 +104,8 @@ static struct { /* Emulator callbacks */ DBG_CB(CB_EMU_CONFIRM_SEND_DATA), + DBG_CB(CB_EMU_ENCRYPTION_ENABLED), + DBG_CB(CB_EMU_ENCRYPTION_DISABLED), }; static gboolean check_callbacks_called(gpointer user_data) @@ -291,6 +293,25 @@ static void mgmt_debug(const char *str, void *user_data) tester_print("%s%s", prefix, str); } +static bool hciemu_post_encr_hook(const void *data, uint16_t len, + void *user_data) +{ + struct step *step = g_new0(struct step, 1); + + /* + * Expected data: status (1 octet) + conn. handle (2 octets) + + * encryption flag (1 octet) + */ + if (len < 4) + return true; + + step->callback = ((uint8_t *)data)[3] ? CB_EMU_ENCRYPTION_ENABLED : + CB_EMU_ENCRYPTION_DISABLED; + + schedule_callback_verification(step); + return true; +} + static void read_info_callback(uint8_t status, uint16_t length, const void *param, void *user_data) { @@ -328,6 +349,10 @@ static void read_info_callback(uint8_t status, uint16_t length, return; } + /* set hook for encryption change */ + hciemu_add_hook(data->hciemu, HCIEMU_HOOK_POST_EVT, 0x08, + hciemu_post_encr_hook, NULL); + tester_pre_setup_complete(); } |