static void user_confirm_request_callback(uint16_t index, uint16_t length, const void *param, void *user_data) { const struct mgmt_ev_user_confirm_request *ev = param; struct test_data *data = tester_get_data(); struct mgmt_cp_user_confirm_reply cp; memset(&cp, 0, sizeof(cp)); memcpy(&cp.addr, &ev->addr, sizeof(cp.addr)); mgmt_reply(data->mgmt, MGMT_OP_USER_CONFIRM_REPLY, data->mgmt_index, sizeof(cp), &cp, NULL, NULL, NULL); }
static void pin_code_request_callback(uint16_t index, uint16_t length, const void *param, void *user_data) { const struct mgmt_ev_pin_code_request *ev = param; struct test_data *data = user_data; const struct l2cap_data *test = data->test_data; struct mgmt_cp_pin_code_reply cp; memset(&cp, 0, sizeof(cp)); memcpy(&cp.addr, &ev->addr, sizeof(cp.addr)); if (!test->pin) { mgmt_reply(data->mgmt, MGMT_OP_PIN_CODE_NEG_REPLY, data->mgmt_index, sizeof(cp.addr), &cp.addr, NULL, NULL, NULL); return; } cp.pin_len = test->pin_len; memcpy(cp.pin_code, test->pin, test->pin_len); mgmt_reply(data->mgmt, MGMT_OP_PIN_CODE_REPLY, data->mgmt_index, sizeof(cp), &cp, NULL, NULL, NULL); }
static void user_confirm_request_callback(uint16_t index, uint16_t length, const void *param, void *user_data) { const struct mgmt_ev_user_confirm_request *ev = param; struct test_data *data = tester_get_data(); const struct l2cap_data *test = data->test_data; struct mgmt_cp_user_confirm_reply cp; uint16_t opcode; memset(&cp, 0, sizeof(cp)); memcpy(&cp.addr, &ev->addr, sizeof(cp.addr)); if (test->reject_ssp) opcode = MGMT_OP_USER_CONFIRM_NEG_REPLY; else opcode = MGMT_OP_USER_CONFIRM_REPLY; mgmt_reply(data->mgmt, opcode, data->mgmt_index, sizeof(cp), &cp, NULL, NULL, NULL); }