Esp32 модуль http nodemcu - утечка памяти

Тема в разделе "ESP8266, ESP32", создана пользователем obuhanoe, 22 ноя 2022.

  1. serg3295

    serg3295 Гик

    Для того, чтобы обойти ошибку
    Код (C++):
    [0;31mE (325039) esp-tls-mbedtls: No server verification option set in esp_tls_cfg_t structure. Check esp_tls API reference[0m
    [0;31mE (325039) esp-tls-mbedtls: Failed to set client configurations, returned [0x8017] (ESP_ERR_MBEDTLS_SSL_SETUP_FAILED)[0m
    Установил ещё две опции Allow potentially insecure options и Skip server certificate verification by default
    Сейчас вот так:
    Код (C++):
    (Top) → Component config → ESP-TLS

        Choose SSL/TLS library for ESP-TLS (See help for more Info) (mbedTLS)  --->
    [ ] Use Secure Element (ATECC608A) with ESP-TLS
    [*] Enable client session tickets
    [*] Enable ESP-TLS Server
    [*]     Enable server session tickets
    (86400)     Server session ticket timeout in seconds
    [*]     ESP-TLS Server: Set minimum Certificate Verification mode to Optional
    [*] Enable PSK verification
    [*] Allow potentially insecure options
    [*]     Skip server certificate verification by default (WARNING: ONLY FOR TESTING PURPOSE, READ HELP)
    Эта ошибка ушла.
     

    Вложения:

    • firmware.zip
      Размер файла:
      676,6 КБ
      Просмотров:
      58
  2. obuhanoe

    obuhanoe Гик

    завтра буду тестировать.
    Если lua5.3, то можно и 5.1 версию?

    Большое спасибо
     
  3. serg3295

    serg3295 Гик

    Это 5.1 чтобы куча не прыгала.
    Изменение поведения esp-tls клиента произошло в v4.3
    Вот такой тестовый код при обращении к телеграму утечки памяти не вызывает. Насколько я мог проверить. При многократном вызове connection:request() для уже загруженного кода куча не менялась. После = nil вся память также возвращалась. Реестр увеличился на 1 и больше не менялся, даже при цикле полной реинициализации кода.
    Код (C++):
    dat = {}
    dat.bot = 'Y'
    dat.id  = '12'
    dat.text = 'It_Works'
    ask = 'https://api.telegram.org/bot'..dat.bot..'/sendMessage?chat_id='..dat.id..'&text='..dat.text

    connection = http.createConnection(ask, http.POST)
    connection:on("complete", function(status, connected)
      print("Request completed with status code =", status, connected)
    end)

    connection:request()

    connection:close()
    dat, ask, connection = nil, nil, nil
    collectgarbage()
    Хорошо бы ещё сертификат телеграму подсунуть в createConnection для проверки, и отключить небезопасные опции в конфиге. Но это как-нибудь потом.:rolleyes:
     
    Последнее редактирование: 24 ноя 2022
  4. obuhanoe

    obuhanoe Гик

    Подтверждаю, на последней прошивке Lua 5.1 и idf4.4.2 - память в модуле http не течет, при вызове на адреса http:// и на https://

    Уважаемый serg3295, если Вас не затруднит, прошу Вас собрать прошивку как последняя только с Lua 5.3.

    Спасибо
     
  5. serg3295

    serg3295 Гик

    с Lua 5.3
     

    Вложения:

    • firmware.zip
      Размер файла:
      688 КБ
      Просмотров:
      58
    obuhanoe нравится это.
  6. obuhanoe

    obuhanoe Гик

    А для каких целей?
     
  7. obuhanoe

    obuhanoe Гик

    Проверил на последней прошивке Lua 5.3 и idf4.4.2 - память в модуле http не течет, при вызове на адреса http:// и на https://