Commit Graph

22347 Commits

Author SHA1 Message Date
shreeyash
c8f50920b2 fix(nimble): Fixed blesmp getbondlist issue 2024-08-22 21:33:59 +05:30
Island
7ba5cbf9d9 Merge branch 'bugfix/fix_bleqabr24_1152_v5.1' into 'release/v5.1'
Fixed BLE vendor HCI get controller status command on ESP32 (v5.1)

See merge request espressif/esp-idf!32967
2024-08-22 16:57:01 +08:00
Rahul Tank
f8fe876cdd Merge branch 'feat/ble_link_estab_event_v5.1' into 'release/v5.1'
feat(nimble): BLE_GAP_EVENT_LINK_ESTAB event to ensure link is established (v5.1)

See merge request espressif/esp-idf!32260
2024-08-22 15:30:45 +08:00
David Čermák
d784acb1f3 Merge branch 'fix/websocket_first_packet_v5.1' into 'release/v5.1'
fix(ws_transport): fix first fragment loosing during websocket connection (release-v5.1)

See merge request espressif/esp-idf!30434
2024-08-21 23:02:38 +08:00
David Čermák
b55fcb7175 Merge branch 'mqtt_update_v5.1' into 'release/v5.1'
change(mqtt): Updte esp_mqtt submodule (v5.1)

See merge request espressif/esp-idf!32940
2024-08-21 22:58:35 +08:00
Richard Allen
f45c9f14c3 change(mbedtls/port): optimize gcm_mult()
1) pre-shift GCM last4 to use 32-bit shift

On 32-bit architectures like Aarch32, RV32, Xtensa,
shifting a 64-bit variable by 32-bits is free,
since it changes the register representing half of the 64-bit var.
Pre-shift the last4 array to take advantage of this.

2) unroll first GCM iteration

The first loop of gcm_mult() is different from
the others. By unrolling it separately from the
others, the other iterations may take advantage
of the zero-overhead loop construct, in addition
to saving a conditional branch in the loop.
2024-08-21 18:26:31 +05:30
David Cermak
4c28f14c8c fix(esp_netif): Fix missing IPv6 autoconfig for PPP netifs
Closes https://github.com/espressif/esp-idf/issues/13713
2024-08-21 20:32:40 +08:00
Abhik Roy
5d0a95e503 fix(example): Fixed updating recv addr for invalid packets for ping
Closes https://github.com/espressif/esp-idf/issues/14197
2024-08-21 20:38:22 +10:00
zhangyanjiao
8f4de25ff1 fix(wifi/mesh): clear the rootless state in mesh ie when changing from leaf to root
Closes https://github.com/espressif/esp-idf/issues/14063
2024-08-21 18:02:49 +08:00
Island
06e274fe49 Merge branch 'fix/ble_mesh_gh_pr_13135_v5.1' into 'release/v5.1'
fix(ble_mesh): Fix OP_TIME_SET and OP_TIME_STATUS (v5.1)

See merge request espressif/esp-idf!32771
2024-08-21 16:55:07 +08:00
Suren Gabrielyan
88e0b83a9f fix(ws_transport): utility functions minor improvments 2024-08-21 15:18:56 +08:00
Richard Allen
a97a796e18 fix(ws_transport): fixed server-key corruption
When first fragment is sent over HTTP during websocket
connection, defer buffering of fragment until after the
websocket server-key is validated.

This order is required because the first fragment buffering
overwrites the memory holding the server-key headers.

Fixes 2267d4b
Fixes https://github.com/espressif/esp-protocols/issues/396
PR https://github.com/espressif/esp-idf/pull/13724
2024-08-21 15:18:56 +08:00
Suren Gabrielyan
373e70dedd fix(ws_transport): fix first fragment losting during websocket connection 2024-08-21 15:18:56 +08:00
Island
a80e1dc83d Merge branch 'bugfix/fixed_c2_blufi_issue_when_use_only_4.2_adv_v5.1' into 'release/v5.1'
fix(ble): fixed blufi issue on ESP32-C2 (v5.1)

See merge request espressif/esp-idf!32944
2024-08-21 15:18:22 +08:00
chenjianhua
6d488f11b3 fix(bt): Update bt lib for ESP32(241c96c)
- Fixed BLE vendor HCI get controller status command
2024-08-20 19:31:13 +08:00
Rahul Tank
071fed2d6f feat(nimble): BLE_GAP_EVENT_LINK_ESTAB event to ensure link established 2024-08-20 14:56:13 +05:30
Rahul Tank
4e6e08d483 Merge branch 'feat/allow_connect_during_scan_v5.1' into 'release/v5.1'
feat(nimble): Add support to allow connection during scanning (v5.1)

See merge request espressif/esp-idf!32845
2024-08-20 17:20:41 +08:00
Jiang Jiang Jian
97dabe74f6 Merge branch 'fix/esp32c5_rng_random_disable_v5.1' into 'release/v5.1'
fix(bootloader): update random disable api for ESP32-C5/C6 (v5.1)

See merge request espressif/esp-idf!32763
2024-08-20 11:36:07 +08:00
Jiang Jiang Jian
7c29c5f2b1 Merge branch 'bugfix/provide_random_addr_api_v5.1' into 'release/v5.1'
fix(wifi_prov): Added API to set random address (v5.1)

See merge request espressif/esp-idf!32327
2024-08-20 10:35:58 +08:00
zwl
bd48565e81 fix(ble): fixed blufi issue on ESP32-C2 2024-08-19 21:48:25 +08:00
Euripedes Rocha
f4d629d8f1 change(mqtt): Update esp_mqtt submodule
git log --oneline aa6f889fb4f6f743b3a550aa587713aabbdca1fc..cac1552e62b0474c162547b7cce345d7cd1aecfe

Detailed description of the changes:
* fix: clang analyzer unknown pragma warning
  - See merge request espressif/esp-mqtt!215
  - See commit https://github.com/espressif/esp-mqtt/commit/6bb5a5b
* fix: gcc analyzer unknown pragma warning
  - See merge request espressif/esp-mqtt!214
  - See commit https://github.com/espressif/esp-mqtt/commit/b527203
* feat: Moves deletion of expired messages to run at all states
  - Closes IDFGH-12831
  - Closes https://github.com/espressif/esp-mqtt/issues/278
  - See commit https://github.com/espressif/esp-mqtt/commit/32dada4
* fix: Handling of state in the outbox for enqueued QoS 0 messages
  - Closes IDFGH-12829
  - Closes https://github.com/espressif/esp-mqtt/issues/276
  - See commit https://github.com/espressif/esp-mqtt/commit/739cb2d
* fix: Instalation of gcovr in host tests was broken
  - See merge request espressif/esp-mqtt!211
  - See commit https://github.com/espressif/esp-mqtt/commit/6643c49
* Allow to publish using only topic alias on MQTT5
  - Closes IDFGH-12735
  - Fix: Allow to publish using only topic alias on MQTT5 (espressif/esp-mqtt@0071aca)
* refactor: replaced heap mock with Linux-compatible heap component
  - See merge request espressif/esp-mqtt!208
  - See commit https://github.com/espressif/esp-mqtt/commit/8b0b43e
* fix: gcc -fanalyzer warnings
  - See merge request espressif/esp-mqtt!209
  - See commit https://github.com/espressif/esp-mqtt/commit/8bc3bff
* fix: Use catch from component manager
  - See merge request espressif/esp-mqtt!210
  - See commit https://github.com/espressif/esp-mqtt/commit/53e0cc7
* fix: Fix host test for github ci.
  - Closes IDF-8883
  - See commit https://github.com/espressif/esp-mqtt/commit/b43d93c
2024-08-19 15:20:55 +02:00
Pat Erley
cc32d8c96c fix(ble_mesh): Fix OP_TIME_SET and OP_TIME_STATUS
When a user app is handling these messages, the tai_utc_delta and
time_zone_offset fields are not correctly populated.  Resolve by
properly setting the fields.

Signed-off-by: luoxu <luoxu@espressif.com>
Closes https://github.com/espressif/esp-idf/pull/13135
2024-08-17 06:04:02 +08:00
Rahul Tank
61edc67100 feat(nimble): Add support to allow connection during scanning 2024-08-16 15:05:39 +05:30
Jiang Jiang Jian
446ec3a899 Merge branch 'feature/ipc_noblocking_call_v5.1' into 'release/v5.1'
Some checks failed
docker / docker (push) Has been cancelled
feat(ipc): Adds a new no blocking IPC call (v5.1)

See merge request espressif/esp-idf!28443
2024-08-15 22:29:51 +08:00
Jiang Jiang Jian
99395b281d Merge branch 'bugfix/heap_corrupt_in_bt_mem_release_on_esp32_v5.1' into 'release/v5.1'
fix(bt): Fix heap corruption in the call of esp_bt_mem_release on ESP32 (v5.1)

See merge request espressif/esp-idf!32803
2024-08-15 19:56:36 +08:00
Jiang Jiang Jian
f6d8ff4356 Merge branch 'bugfix/avoid_offchan_ftm_retries_v5.1' into 'release/v5.1'
fix(wifi): Avoid internal retries for offchannel FTM Requests (Backport v5.1)

See merge request espressif/esp-idf!32869
2024-08-15 16:51:05 +08:00
Nachiket Kukade
0626574e68 fix(wifi): Avoid internal retries for offchannel FTM Requests 2024-08-14 18:33:54 +05:30
Wang Mengyang
4b7286d083 fix(bt): Fix heap corruption in the call of esp_bt_mem_release on ESP32
Closes https://github.com/espressif/esp-idf/issues/14263
2024-08-14 19:00:15 +08:00
Sudeep Mohanty
4a80393066 test(freertos): Fixed flaky scheduling time test
This commit updates the scheduling time test to test for median
scheduling time values instead of average values.
2024-08-14 09:33:29 +02:00
Wang Meng Yang
670b6c76e2 Merge branch 'bugfix/fix_ble_channel_map_update_v5.1' into 'release/v5.1'
fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(f583012) (v5.1)

See merge request espressif/esp-idf!32583
2024-08-14 10:50:08 +08:00
Jiang Jiang Jian
a5c6b4dde5 Merge branch 'fix/disable_timer_wakeup_source_with_auto_sleep_off_v5.1' into 'release/v5.1'
fix(esp_pm): disable timer wakeup source with auto light-sleep off (v5.1)

See merge request espressif/esp-idf!32620
2024-08-14 10:44:04 +08:00
Jiang Jiang Jian
90a2abd415 Merge branch 'bugfix/fix_newlib_nano_float_printf_issues_v5.1' into 'release/v5.1'
fix newlib nano float printf issues (backport v5.1)

See merge request espressif/esp-idf!32514
2024-08-14 10:42:38 +08:00
Rahul Tank
9481ed111f fix(nimble) Added change to handle linked om data at blufi layer 2024-08-13 16:54:42 +05:30
zhanghaipeng
f653a21793 feat(ble/bluedroid): Support getting BLE address type in bond list 2024-08-13 12:13:08 +08:00
zhanghaipeng
75430acf9d docs(ble/bluedroid): Optimize documentation for BLE connection parameter updates 2024-08-13 12:13:08 +08:00
zhanghaipeng
824bd4342b fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(f583012)
- Fix BLE channel map update when latency is not zero
2024-08-13 12:13:08 +08:00
chenjianhua
13527b0e91 feat(bt): Update bt lib for ESP32-C3 and ESP32-S3(4e58df9)
- Support enhanced BLE TX power setting and getting
2024-08-13 12:13:08 +08:00
Island
059732a311 Merge branch 'feat/print_the_ble_mac_when_init_5.1' into 'release/v5.1'
feat(ble): Print out the BT mac when the controller is initialized

See merge request espressif/esp-idf!32732
2024-08-12 20:15:06 +08:00
Wang Meng Yang
18f4c90ef5 Merge branch 'bugfix/fix_hidh_integrity_check_bug_v5.1' into 'release/v5.1'
fix(esp_hid): Loose the check of input report length to be more compatible[backport 5.1]

See merge request espressif/esp-idf!32722
2024-08-12 19:09:14 +08:00
Shu Chen
e1b83bac56 Merge branch 'backport/make_ot_task_queue_non_permanent_blocking_51' into 'release/v5.1'
fix(openthread): make ot task queue sending non-permanent blocking(Backport 5.1)

See merge request espressif/esp-idf!32632
2024-08-12 16:04:08 +08:00
Mahavir Jain
3697add29c Merge branch 'change/exclude_cves_v5.1' into 'release/v5.1'
change: exclude CVEs that do not impact ESP-IDF components (v5.1)

See merge request espressif/esp-idf!32661
2024-08-12 12:42:26 +08:00
Mahavir Jain
665585d8a5
fix(rng): avoid clearing PMU_PERIF_I2C_RSTB in random disable API for C6
This configuration bit is required for ADC operation as well and hence
should not be cleared in the RNG API sequence.

Ideally, the ADC driver should take care of initializing this bit but
still the RNG layer change is required because of interleaved API usage
scenario described in following linked issue.

Closes https://github.com/espressif/esp-idf/issues/14124
Closes https://github.com/espressif/esp-idf/issues/14280
2024-08-12 10:09:15 +05:30
Jiang Guang Ming
09b1844a0a feat(newlib): add test case for printf float 2024-08-12 09:59:13 +08:00
Jiang Guang Ming
97c5bc51e6 fix(esp_rom): add new rom caps ESP_ROM_HAS_NEWLIB_NANO_PRINTF_FLOAT_BUG 2024-08-12 09:57:07 +08:00
zwl
8397aaa29d fix(bluetooth/controller): fixed get controller status vendor hci command error on ESP32C6 2024-08-10 13:06:45 +08:00
Shen Weilong
a981024b98 feat(ble): Print out the BT mac when the controller is initialized 2024-08-09 20:55:16 +08:00
liqigan
f0add1b1c1 fix(esp_hid): Loose the check of input report length to be more compatible
Closes https://github.com/espressif/esp-idf/issues/14259
2024-08-09 15:55:06 +08:00
Island
c9c26a6afc Merge branch 'fix/ble_mesh_github_pr_14140_v5.1' into 'release/v5.1'
fix(ble-mesh): don't use dangling pointer in nimble gatt service (v5.1)

See merge request espressif/esp-idf!32615
2024-08-09 10:33:15 +08:00
Rahul Tank
5af88badfa feat(nimble): Add extra handling for set data len packet event 2024-08-08 12:03:36 +05:30
KonstantinKondrashov
d28ecb3345 feat(CI): Add targets into manifest file for esp_flash_stress test 2024-08-07 15:13:17 +03:00
KonstantinKondrashov
17c3f85a89 feat(ipc): Adds a new no blocking IPC call 2024-08-07 15:13:11 +03:00
KonstantinKondrashov
6f46db3de8 fix(spi_flash): Fix stuck during flash operation
When a task was not pinned to a certain CPU.
2024-08-07 15:00:52 +03:00
Wang Meng Yang
03f66399a1 Merge branch 'fix/hfp_pcm_api_set_v5.1' into 'release/v5.1'
fix(bt/bluedroid): Add PCM configuration about pcm frame sync signal shape (backport v5.1)

See merge request espressif/esp-idf!32481
2024-08-07 19:06:24 +08:00
Frantisek Hrbata
efa758c6a3 change: exclude CVEs that do not impact ESP-IDF components
cJSON:    CVE-2024-31755 - Resolved in cJSON v1.7.18
FreeRTOS: CVE-2024-28115 - Affects only ARMv7-M MPU ports, and ARMv8-M ports

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-08-06 17:25:48 +02:00
harshal.patil
7a167f4b9a
fix(bootloader_support): Fix encrypt image instead of the partition feature not being enabled 2024-08-06 13:45:35 +05:30
Island
6892f1a08d Merge branch 'bugfix/fixed_ble_issues_on_c6_h2_c2_0731_v5.1' into 'release/v5.1'
Bugfix/fixed ble issues on c6 h2 c2 0731 (v5.1)

See merge request espressif/esp-idf!32462
2024-08-06 16:01:17 +08:00
zwx
760bdd1cfc fix(openthread): make ot task queue sending non-permanent blocking 2024-08-06 14:10:55 +08:00
wuzhenghui
41bff2fdfa
fix(esp_pm): configure timer wakeup source with auto light-sleep congiguration 2024-08-06 11:06:00 +08:00
Mario Schlegel
c237d010e4 fix(ble-mesh): don't use dangling pointer in nimble gatt service
Signed-off-by: luoxu <luoxu@espressif.com>
Merges https://github.com/espressif/esp-idf/pull/14140
2024-08-06 10:43:57 +08:00
Rahul Tank
5c57dfe949 Merge branch 'bugfix/adjust_tx_power_lvl_boundary_v5.1' into 'release/v5.1'
Some checks failed
docker / docker (push) Has been cancelled
fix(nimble): Modify Advertising Tx power levels (v5.1)

See merge request espressif/esp-idf!32563
2024-08-05 20:38:40 +08:00
Ivan Grokhotkov
9be8ed546e Merge branch 'fix/fatfs_f_mount_immediately_after_formatting_v5.1' into 'release/v5.1'
fix(vfs): FATFS mount immediately after format if mount failed (v5.1)

See merge request espressif/esp-idf!32381
2024-08-05 20:32:32 +08:00
xiongweichao
efd8ee03e5 fix(bt/controller): Fixed disconnection issue
- Fixed the issue of disconnection caused by updating the channel map in sniff mode
2024-08-05 20:01:56 +08:00
chenqingqing
d36f5166fe fix(bt/bluedroid): Add PCM configuration about pcm frame sync signal shape 2024-08-05 20:01:56 +08:00
Rahul Tank
a367c5da00 fix(nimble): Modify Advertising Tx power levels 2024-08-05 10:57:48 +05:30
Island
d7bf5a1eac Merge branch 'bugfix/fix_ble_security_param_v5.1' into 'release/v5.1'
fix(ble/bluedroid): Fixed issue with resetting BLE security parameters during initialization (v5.1)

See merge request espressif/esp-idf!32507
2024-08-02 17:31:28 +08:00
Island
69ed92c95c Merge branch 'bugfix/fix_ble_gattc_app_unregister_v5.1' into 'release/v5.1'
Bugfix/fix ble gattc app unregister (v5.1)

See merge request espressif/esp-idf!32440
2024-08-02 17:30:21 +08:00
Rahul Tank
f49f9795dc Merge branch 'bugfix/add_return_value_to_rpa_to_api_v5.1' into 'release/v5.1'
Some checks failed
docker / docker (push) Has been cancelled
fix(nimble): Add return value to RPA Timeout API (v5.1)

See merge request espressif/esp-idf!32477
2024-08-01 20:31:06 +08:00
zhanghaipeng
3a163fe2cf fix(ble/bluedroid): Fixed issue with resetting BLE security parameters during initialization 2024-08-01 16:18:05 +08:00
Shu Chen
21ed2cbd6a Merge branch 'backport/fix_154_next_operation_for_multi_event_v51' into 'release/v5.1'
fix(ieee802154): refactor the next operation logic for multiple events(Backport v5.1)

See merge request espressif/esp-idf!32386
2024-08-01 10:59:13 +08:00
Shu Chen
9dad9f9704 Merge branch 'backport/openthread_related_bacport_to_5_1' into 'release/v5.1'
Backport some openthread related features (Backport v5.1)

See merge request espressif/esp-idf!32249
2024-08-01 10:48:35 +08:00
Rahul Tank
966988af45 fix(nimble): Add return value to RPA Timeout API 2024-07-31 14:46:33 +05:30
zwx
bfed357f37 fix(ieee802154): refacted the next operation logic for multiple events 2024-07-31 16:40:09 +08:00
zwl
fde374a78e fix: fixed directed adv can't be conneted when adv filter is 0x2 on ESP32C2 2024-07-31 14:38:52 +08:00
zwl
c8b7ce6f11 fix: fixed occasional wdt issue in multi-connection scenarios on ESP32H2 2024-07-31 14:38:52 +08:00
zwx
554ca91716 feat(openthread): add task switching lock holder check 2024-07-31 11:36:26 +08:00
Island
490d5e7211 Merge branch 'feat/save_ble_log_to_flash_0605_v5.1' into 'release/v5.1'
ble: save ble log to flash on ESP32C6 (v5.1)

See merge request espressif/esp-idf!32396
2024-07-31 11:29:30 +08:00
zhanghaipeng
2330510635 fix(ble/bluedroid): Fix incorrect state issue when unregistering BLE GATTC application 2024-07-30 19:12:40 +08:00
zhangyanjiao
2b3df95766 fix(wifi/mesh): fix the beacon timeout issue in mesh 2024-07-30 11:36:16 +08:00
morris
5a26d8ae8e Merge branch 'feat/support_psram_aps3204l_v5.1' into 'release/v5.1'
Some checks failed
docker / docker (push) Has been cancelled
psram: support APS3204L (v5.1)

See merge request espressif/esp-idf!32392
2024-07-29 17:13:48 +08:00
zwl
d26a0ba71f fix(ble): fixed tx memory leak issue when controller disable 2024-07-29 11:56:23 +08:00
zwl
035bb3176d fix(ble): fixed wdt issue when print key controller info on ESP32-C6 and ESP32-H2 2024-07-29 11:56:23 +08:00
zwl
70e5c79476 feat(bluetooth/controller): support switching log output mode on ESP32-C2 2024-07-29 11:56:23 +08:00
zwl
10c8b0c3b8 feat(bluetooth/controller): support switching log output mode on ESP32-C6 and ESP32-H2 2024-07-29 11:56:23 +08:00
zwl
11f0fd8f8e feat(bluetooth/controller): storage ble controller log to flash on ESP32C2 2024-07-29 11:56:23 +08:00
zwl
cfb5d9d224 feat(bluetooth/controller): storage ble controller log to flash on ESP32C6 and ESP32H2 2024-07-29 11:56:23 +08:00
Armando
c330a9ef67 feat(psram): support APS3204L 2024-07-29 11:43:33 +08:00
Rahul Tank
1d23173715 fix(nimble): Zero initialize variable to avoid garbage value 2024-07-26 21:33:00 +05:30
Adam Múdry
b57e0a2d49 fix(vfs): FATFS mount immediately after format if mount failed 2024-07-26 17:54:51 +02:00
Jiang Jiang Jian
ecdd485305 Merge branch 'bugfix/handle_no_pmkid_case_owe_v5.1' into 'release/v5.1'
Some checks failed
docker / docker (push) Has been cancelled
Recompute keys in OWE incase of PMKID absence or mismatch (Backport v5.1)

See merge request espressif/esp-idf!32335
2024-07-26 19:07:41 +08:00
Island
2e08930e9c Merge branch 'bugfix/fix_ble_cannot_create_conn_v5.1' into 'release/v5.1'
fix(ble/bluedroid): Fixed BLE cannot create connection(v5.1)

See merge request espressif/esp-idf!32309
2024-07-26 15:43:36 +08:00
Jiang Jiang Jian
0ca290deb0 Merge branch 'bugfix/fix_some_ble_bugs_cjh_v5.1' into 'release/v5.1'
Fixed some BLE bugs 240723 (backport v5.1)

See merge request espressif/esp-idf!32301
2024-07-26 14:19:55 +08:00
Jiang Jiang Jian
db09005c83 Merge branch 'bugfix/fix_coex_loadprohibit_issue_v5.1' into 'release/v5.1'
fix(coex): Fixed coexist scheme phase index overflow issue (backport v5.1)

See merge request espressif/esp-idf!32294
2024-07-26 11:04:05 +08:00
zhanghaipeng
bea98fdd1e fix(ble/bluedroid): Fixed BLE cannot create connection 2024-07-26 10:38:10 +08:00
Aditya Patwardhan
9d3f9e943e Merge branch 'bugfix/existing_mmap_region_offset_v5.1' into 'release/v5.1'
fix(esp_mm): for existing mmap region, consider new offset for virtual addr (v5.1)

See merge request espressif/esp-idf!32114
2024-07-25 17:10:19 +08:00
Xu Si Yu
28b785077b feat(openthread): support restoring vendor properties of rcp 2024-07-25 15:58:28 +08:00
Xu Si Yu
ffe3ce3ed0 feat(openthread): support changing openthread version information 2024-07-25 15:58:20 +08:00
Xu Si Yu
e6f76a17a1 feat(openthread): update openthread submodule 2024-07-25 15:57:56 +08:00
Shyamal Khachane
39d284ba33 fix(esp_wifi): Handle PMKID mismatch or absence in OWE
Compute keys incase PMKID does not match or PMKID is absent in association response
2024-07-25 08:33:42 +05:30
Rahul Tank
79012cb3e2 fix(wifi_prov): Added API to set random address 2024-07-24 20:58:04 +05:30
zhiweijian
d41dfab0f6 feat(bt/controller): support mesh duplicate with extend scan 2024-07-23 20:07:43 +08:00