From: Johan Hedberg Date: Mon, 18 Feb 2013 10:51:51 +0000 (+0200) Subject: tools: btmgmt: Convert device found event monitoring to new API X-Git-Tag: android-x86-4.4-r3~8452 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=87649e87f5f175675a6f9b3b7939a5f139a68c58;p=android-x86%2Fexternal-bluetooth-bluez.git tools: btmgmt: Convert device found event monitoring to new API --- diff --git a/tools/btmgmt.c b/tools/btmgmt.c index 96eb562ce..9a8a85b77 100644 --- a/tools/btmgmt.c +++ b/tools/btmgmt.c @@ -454,9 +454,11 @@ static void confirm_name_rsp(int mgmt_sk, uint16_t op, uint16_t id, printf("hci%u confirm_name succeeded for %s\n", id, addr); } -static int mgmt_device_found(int mgmt_sk, uint16_t index, - struct mgmt_ev_device_found *ev, uint16_t len) +static void device_found(uint16_t index, uint16_t len, const void *param, + void *user_data) { + const struct mgmt_ev_device_found *ev = param; + int *mgmt_sk = user_data; uint32_t flags; uint16_t eir_len; struct eir_data eir; @@ -464,7 +466,7 @@ static int mgmt_device_found(int mgmt_sk, uint16_t index, if (len < sizeof(*ev)) { fprintf(stderr, "Too short device_found length (%u bytes)\n", len); - return -EINVAL; + return; } flags = btohl(ev->flags); @@ -473,7 +475,7 @@ static int mgmt_device_found(int mgmt_sk, uint16_t index, if (len != sizeof(*ev) + eir_len) { fprintf(stderr, "dev_found: expected %zu bytes, got %u bytes\n", sizeof(*ev) + eir_len, len); - return -EINVAL; + return; } memset(&eir, 0, sizeof(eir)); @@ -504,12 +506,10 @@ static int mgmt_device_found(int mgmt_sk, uint16_t index, else cp.name_known = 1; - mgmt_send_cmd(mgmt_sk, MGMT_OP_CONFIRM_NAME, index, + mgmt_send_cmd(*mgmt_sk, MGMT_OP_CONFIRM_NAME, index, &cp, sizeof(cp), confirm_name_rsp, NULL); } - - return 0; } static void pin_rsp(int mgmt_sk, uint16_t op, uint16_t id, uint8_t status, @@ -713,8 +713,6 @@ static int mgmt_handle_event(int mgmt_sk, uint16_t ev, uint16_t index, return mgmt_cmd_complete(mgmt_sk, index, data, len); case MGMT_EV_CMD_STATUS: return mgmt_cmd_status(mgmt_sk, index, data, len); - case MGMT_EV_DEVICE_FOUND: - return mgmt_device_found(mgmt_sk, index, data, len); case MGMT_EV_PIN_CODE_REQUEST: return mgmt_request_pin(mgmt_sk, index, data, len); case MGMT_EV_USER_CONFIRM_REQUEST: @@ -2046,6 +2044,8 @@ int main(int argc, char *argv[]) NULL, NULL); mgmt_register(mgmt, MGMT_EV_LOCAL_NAME_CHANGED, index, local_name_changed, NULL, NULL); + mgmt_register(mgmt, MGMT_EV_DEVICE_FOUND, index, device_found, + &mgmt_sk, NULL); event_loop = g_main_loop_new(NULL, FALSE); mgmt_io = g_io_channel_unix_new(mgmt_sk);