/* Handles an incoming "information data" entry from a find-information response for the specified discover-all-descriptors proc.  */
static int ble_gattc_disc_all_dscs_rx_idata(struct ble_gattc_proc *proc, struct ble_att_find_info_idata *idata)
/* Handles an incoming "information data" entry from a find-information response for the specified discover-all-descriptors proc.  */
static int ble_gattc_disc_all_dscs_rx_idata(struct ble_gattc_proc *proc, struct ble_att_find_info_idata *idata)
{
    struct ble_gatt_dsc dsc;
    int cbrc;
    int rc;
    ble_gattc_dbg_assert_proc_not_inserted(proc);
    if (idata->attr_handle <= proc->disc_all_dscs.prev_handle) {
        rc = BLE_HS_EBADDATA;
        goto done;
    }
    proc->disc_all_dscs.prev_handle = idata->attr_handle;
    rc = 0;
done:
    dsc.handle = idata->attr_handle;
    dsc.uuid = idata->uuid;
    cbrc = ble_gattc_disc_all_dscs_cb(proc, rc, 0, &dsc);
    if (rc != 0 || cbrc != 0) {
        return BLE_HS_EDONE;
    } else {
        return 0;
    }
}