/**@brief Write authorization request event handler. * * @details The write authorization request event handler is called when writing to the control point. * * @param[in] p_dfu DFU structure. * @param[in] p_ble_evt Event received from the BLE stack. */ static void on_rw_authorize_req(ble_dfu_t * p_dfu, ble_evt_t const * p_ble_evt) { if (p_ble_evt->evt.gatts_evt.conn_handle != p_dfu->conn_handle) { return; } const ble_gatts_evt_rw_authorize_request_t * p_auth_req = &p_ble_evt->evt.gatts_evt.params.authorize_request; if ( (p_auth_req->type == BLE_GATTS_AUTHORIZE_TYPE_WRITE) && (p_auth_req->request.write.handle == p_dfu->control_point_char.value_handle) && (p_auth_req->request.write.op != BLE_GATTS_OP_PREP_WRITE_REQ) && (p_auth_req->request.write.op != BLE_GATTS_OP_EXEC_WRITE_REQ_NOW) && (p_auth_req->request.write.op != BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL) ) { on_ctrlpt_write(p_dfu, &p_auth_req->request.write); } }
/**@brief Authorize WRITE request event handler. * * @details Handles WRITE events from the BLE stack. * * @param[in] p_sc_ctrlpt SC Ctrlpt structure. * @param[in] p_gatts_evt GATTS Event received from the BLE stack. * */ static void on_rw_authorize_request(ble_sc_ctrlpt_t * p_sc_ctrlpt, ble_gatts_evt_t * p_gatts_evt) { ble_gatts_evt_rw_authorize_request_t * p_auth_req = &p_gatts_evt->params.authorize_request; if (p_auth_req->type == BLE_GATTS_AUTHORIZE_TYPE_WRITE) { if (p_auth_req->request.write.handle == p_sc_ctrlpt->sc_ctrlpt_handles.value_handle) { on_ctrlpt_write(p_sc_ctrlpt, &p_auth_req->request.write); } } }
/**@brief Authorize WRITE request event handler. * * @details Handles WRITE events from the BLE stack. * * @param[in] p_sc_ctrlpt SC Ctrlpt structure. * @param[in] p_gatts_evt GATTS Event received from the BLE stack. * */ static void on_rw_authorize_request(ble_sc_ctrlpt_t * p_sc_ctrlpt, ble_gatts_evt_t * p_gatts_evt) { ble_gatts_evt_rw_authorize_request_t * p_auth_req = &p_gatts_evt->params.authorize_request; if (p_auth_req->type == BLE_GATTS_AUTHORIZE_TYPE_WRITE) { if ( (p_gatts_evt->params.authorize_request.request.write.op != BLE_GATTS_OP_PREP_WRITE_REQ) && (p_gatts_evt->params.authorize_request.request.write.op != BLE_GATTS_OP_EXEC_WRITE_REQ_NOW) && (p_gatts_evt->params.authorize_request.request.write.op != BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL) ) { if (p_auth_req->request.write.handle == p_sc_ctrlpt->sc_ctrlpt_handles.value_handle) { on_ctrlpt_write(p_sc_ctrlpt, &p_auth_req->request.write); } } } }
/**@brief Authorize WRITE request event handler. * * @details Handles WRITE events from the BLE stack. * * @param[in] p_bms Bond Management Service structure. * @param[in] p_gatts_evt GATTS Event received from the BLE stack. * */ static void on_rw_auth_req(nrf_ble_bms_t * p_bms, ble_gatts_evt_t * p_gatts_evt) { ble_gatts_evt_rw_authorize_request_t * p_auth_req = &p_gatts_evt->params.authorize_request; ble_gatts_rw_authorize_reply_params_t auth_reply; ret_code_t err_code; memset(&auth_reply, 0, sizeof(auth_reply)); if ((p_auth_req->type == BLE_GATTS_AUTHORIZE_TYPE_WRITE) && (p_auth_req->request.write.op == BLE_GATTS_OP_WRITE_REQ) && (p_auth_req->request.write.handle == p_bms->ctrlpt_handles.value_handle)) { auth_reply.type = BLE_GATTS_AUTHORIZE_TYPE_WRITE; on_ctrlpt_write(p_bms, &p_auth_req->request.write, &auth_reply.params.write); /* Send authorization reply */ err_code = sd_ble_gatts_rw_authorize_reply(p_bms->conn_handle, &auth_reply); error_check(err_code, p_bms->error_handler); } }
static void on_rw_authorize_request(ble_achs_t * p_achs, ble_gatts_evt_t * p_gatts_evt) { ble_gatts_evt_rw_authorize_request_t * p_auth_req = &p_gatts_evt->params.authorize_request; on_ctrlpt_write(p_achs, &p_auth_req->request.write); }