Skip to content

Commit aeab4d5

Browse files
committed
fix(modem): Updated per review comments
1 parent 6fef7d4 commit aeab4d5

File tree

9 files changed

+36
-12
lines changed

9 files changed

+36
-12
lines changed
Binary file not shown.

components/esp_modem/test/target_ota/components/manual_ota/manual_ota.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ static const char *TAG = "manual_ota";
1717
bool manual_ota::begin()
1818
{
1919
if (status != state::UNDEF) {
20-
ESP_LOGE(TAG, "Invalid state");
20+
ESP_LOGE(TAG, "Invalid state for manual_ota::perform");
2121
return false;
2222
}
2323
const esp_partition_t *configured = esp_ota_get_boot_partition();
@@ -31,6 +31,7 @@ bool manual_ota::begin()
3131
status = state::INIT;
3232
max_buffer_size_ = size_ * 1024;
3333
if (mode_ == mode::BATCH) {
34+
#ifdef CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT
3435
esp_transport_handle_t tcp = esp_transport_tcp_init();
3536
ssl_ = esp_transport_batch_tls_init(tcp, max_buffer_size_);
3637
http_.config_.transport = ssl_;
@@ -40,7 +41,10 @@ bool manual_ota::begin()
4041
if (!esp_transport_batch_set_cn(ssl_, common_name_)) {
4142
return fail();
4243
}
43-
44+
#else
45+
ESP_LOGE(TAG, "mode::BATCH Cannot be used without CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT");
46+
return false;
47+
#endif
4448
}
4549

4650
if (!http_.init()) {
@@ -76,7 +80,7 @@ bool manual_ota::begin()
7680
bool manual_ota::perform()
7781
{
7882
if (status != state::IMAGE_CHECK && status != state::START) {
79-
ESP_LOGE(TAG, "Invalid state");
83+
ESP_LOGE(TAG, "Invalid state for manual_ota::perform");
8084
return false;
8185
}
8286
esp_err_t err = esp_http_client_open(http_.handle_, 0);

components/esp_modem/test/target_ota/components/manual_ota/transport_batch_tls.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212

1313
class TlsTransport: public Tls {
1414
public:
15-
explicit TlsTransport(esp_transport_handle_t parent) : Tls(), transport_(parent), read_len(0), offset(0) {}
15+
explicit TlsTransport(esp_transport_handle_t parent):
16+
Tls(), transport_(parent), last_timeout(0), read_len(0), offset(0) {}
1617
int send(const unsigned char *buf, size_t len) override;
1718
int recv(unsigned char *buf, size_t len) override;
1819
static bool set_func(esp_transport_handle_t tls_transport);
@@ -122,7 +123,10 @@ int TlsTransport::transport::connect(esp_transport_handle_t t, const char *host,
122123
ESP_LOGI(TAG, "Failed to handshake");
123124
return ret;
124125
}
125-
tls->get_session();
126+
if (!tls->get_session()) {
127+
// we're not able to save session, report an error and continue (next connection will be slower)
128+
ESP_LOGW(TAG, "Failed to save session");
129+
}
126130
ESP_LOGI(TAG, "After handshake");
127131
return 0;
128132
}
@@ -238,7 +242,7 @@ bool TlsTransport::prepare_buffer(size_t max_size)
238242
return true;
239243
}
240244

241-
int esp_transport_batch_tls_pre_read(esp_transport_handle_t t, int len, int timeout_ms)
245+
int esp_transport_batch_tls_pre_read(esp_transport_handle_t t, size_t len, int timeout_ms)
242246
{
243247
auto tls = static_cast<TlsTransport *>(esp_transport_get_context_data(t));
244248
return tls->preread(len, timeout_ms);

components/esp_modem/test/target_ota/components/manual_ota/transport_batch_tls.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ esp_transport_handle_t esp_transport_batch_tls_init(esp_transport_handle_t paren
2222
* @param timeout_ms Timeout in ms
2323
* @return true If read from the parent transport completed successfully
2424
*/
25-
bool esp_transport_batch_tls_pre_read(esp_transport_handle_t t, int len, int timeout_ms);
25+
bool esp_transport_batch_tls_pre_read(esp_transport_handle_t t, size_t len, int timeout_ms);
2626

2727
/**
2828
* @brief Set the CA Certificate to verify the server

components/esp_modem/test/target_ota/main/ota_test.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ class StatusHandler {
5050

5151
void remove_mqtt()
5252
{
53+
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1, 0)
5354
esp_mqtt_client_unregister_event(mqtt, MQTT_EVENT_ANY, on_event);
55+
#endif
5456
mqtt = nullptr;
5557
}
5658

@@ -152,6 +154,10 @@ void ota_task(void *ctx)
152154
ota.http_.config_.cert_pem = ca_cert_pem;
153155
ota.size_ = 32;
154156
ota.common_name_ = CONFIG_TEST_OTA_CN;
157+
#ifndef CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT
158+
// will have to use NORMAL mode, before custom transport is supported in IDF
159+
ota.mode_ = manual_ota::mode::NORMAL;
160+
#endif
155161

156162
ota.begin();
157163
while (true) {
@@ -257,11 +263,13 @@ extern "C" void app_main(void)
257263

258264

259265
esp_modem::SignalGroup ota_done{};
266+
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 2, 0)
260267
// now stop the LCP keepalive before performing OTA
261268
esp_netif_ppp_config_t cfg;
262269
ESP_ERROR_CHECK(esp_netif_ppp_get_params(esp_netif, &cfg));
263270
cfg.ppp_lcp_echo_disabled = true;
264271
ESP_ERROR_CHECK(esp_netif_ppp_set_params(esp_netif, &cfg));
272+
#endif
265273

266274
// Run the OTA in a separate task to keep sending commands to the modem at the same time
267275
xTaskCreate(ota_task, "ota_task", 8192, &ota_done, 5, nullptr);
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CONFIG_TEST_DEVICE_PPPD_SERVER=y
2+
CONFIG_ESP_MODEM_CMUX_DEFRAGMENT_PAYLOAD=n
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
CONFIG_TEST_DEVICE_MODEM_GENERIC=y
2+
CONFIG_TEST_OTA_URI="https://raw.githubusercontent.com/espressif/esp-protocols/master/components/esp_modem/test/target_ota/bin/blink.bin"
3+
CONFIG_TEST_OTA_CA_CERT="MIIEvjCCA6agAwIBAgIQBtjZBNVYQ0b2ii+nVCJ+xDANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0yMTA0MTQwMDAwMDBaFw0zMTA0MTMyMzU5NTlaME8xCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxKTAnBgNVBAMTIERpZ2lDZXJ0IFRMUyBSU0EgU0hBMjU2IDIwMjAgQ0ExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwUuzZUdwvN1PWNvsnO3DZuUfMRNUrUpmRh8sCuxkB+Uu3Ny5CiDt3+PE0J6aqXodgojlEVbbHp9YwlHnLDQNLtKS4VbL8Xlfs7uHyiUDe5pSQWYQYE9XE0nw6Ddng9/n00tnTCJRpt8OmRDtV1F0JuJ9x8piLhMbfyOIJVNvwTRYAIuE//i+p1hJInuWraKImxW8oHzf6VGo1bDtN+I2tIJLYrVJmuzHZ9bjPvXj1hJeRPG/cUJ9WIQDgLGBAfr5yjK7tI4nhyfFK3TUqNaX3sNk+crOU6JWvHgXjkkDKa77SU+kFbnO8lwZV21reacroicgE7XQPUDTITAHk+qZ9QIDAQABo4IBgjCCAX4wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUt2ui6qiqhIx56rTaD5iyxZV2ufQwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjB2BggrBgEFBQcBAQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNydDBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9iYWxSb290Q0EuY3JsMD0GA1UdIAQ2MDQwCwYJYIZIAYb9bAIBMAcGBWeBDAEBMAgGBmeBDAECATAIBgZngQwBAgIwCAYGZ4EMAQIDMA0GCSqGSIb3DQEBCwUAA4IBAQCAMs5eC91uWg0Kr+HWhMvAjvqFcO3aXbMM9yt1QP6FCvrzMXi3cEsaiVi6gL3zax3pfs8LulicWdSQ0/1s/dCYbbdxglvPbQtaCdB73sRD2Cqk3p5BJl+7j5nL3a7hqG+fh/50tx8bIKuxT8b1Z11dmzzp/2n3YWzW2fP9NsarA4h20ksudYbj/NhVfSbCEXffPgK2fPOre3qGNm+499iTcc+G33Mw+nur7SpZyEKEOxEXGlLzyQ4UfaJbcme6ce1XR2bFuAJKZTRei9AqPCCcUZlM51Ke92sRKw2Sfh3oius2FkOH6ipjv3U/697EA7sKPPcw7+uvTPyLNhBzPvOk"
4+
CONFIG_TEST_OTA_CN="github.com"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
CONFIG_TEST_DEVICE_PPPD_SERVER=y
2+
CONFIG_ESP_MODEM_CMUX_DEFRAGMENT_PAYLOAD=y
3+
CONFIG_ESP_MODEM_USE_INFLATABLE_BUFFER_IF_NEEDED=y
4+
CONFIG_TEST_USE_VFS_TERM=y

components/esp_modem/test/target_ota/sdkconfig.defaults

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
12
CONFIG_PARTITION_TABLE_TWO_OTA=y
2-
CONFIG_TEST_USE_VFS_TERM=y
3-
CONFIG_TEST_OTA_URI="https://raw.githubusercontent.com/david-cermak/esp-network-examples/test/ota/hello_world.bin"
4-
CONFIG_TEST_OTA_CA_CERT="MIIEvjCCA6agAwIBAgIQBtjZBNVYQ0b2ii+nVCJ+xDANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0yMTA0MTQwMDAwMDBaFw0zMTA0MTMyMzU5NTlaME8xCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxKTAnBgNVBAMTIERpZ2lDZXJ0IFRMUyBSU0EgU0hBMjU2IDIwMjAgQ0ExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwUuzZUdwvN1PWNvsnO3DZuUfMRNUrUpmRh8sCuxkB+Uu3Ny5CiDt3+PE0J6aqXodgojlEVbbHp9YwlHnLDQNLtKS4VbL8Xlfs7uHyiUDe5pSQWYQYE9XE0nw6Ddng9/n00tnTCJRpt8OmRDtV1F0JuJ9x8piLhMbfyOIJVNvwTRYAIuE//i+p1hJInuWraKImxW8oHzf6VGo1bDtN+I2tIJLYrVJmuzHZ9bjPvXj1hJeRPG/cUJ9WIQDgLGBAfr5yjK7tI4nhyfFK3TUqNaX3sNk+crOU6JWvHgXjkkDKa77SU+kFbnO8lwZV21reacroicgE7XQPUDTITAHk+qZ9QIDAQABo4IBgjCCAX4wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUt2ui6qiqhIx56rTaD5iyxZV2ufQwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjB2BggrBgEFBQcBAQRqMGgwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBABggrBgEFBQcwAoY0aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNydDBCBgNVHR8EOzA5MDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9iYWxSb290Q0EuY3JsMD0GA1UdIAQ2MDQwCwYJYIZIAYb9bAIBMAcGBWeBDAEBMAgGBmeBDAECATAIBgZngQwBAgIwCAYGZ4EMAQIDMA0GCSqGSIb3DQEBCwUAA4IBAQCAMs5eC91uWg0Kr+HWhMvAjvqFcO3aXbMM9yt1QP6FCvrzMXi3cEsaiVi6gL3zax3pfs8LulicWdSQ0/1s/dCYbbdxglvPbQtaCdB73sRD2Cqk3p5BJl+7j5nL3a7hqG+fh/50tx8bIKuxT8b1Z11dmzzp/2n3YWzW2fP9NsarA4h20ksudYbj/NhVfSbCEXffPgK2fPOre3qGNm+499iTcc+G33Mw+nur7SpZyEKEOxEXGlLzyQ4UfaJbcme6ce1XR2bFuAJKZTRei9AqPCCcUZlM51Ke92sRKw2Sfh3oius2FkOH6ipjv3U/697EA7sKPPcw7+uvTPyLNhBzPvOk"
5-
CONFIG_TEST_OTA_CN="github.com"
63
CONFIG_COMPILER_CXX_EXCEPTIONS=y
7-
CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT=y
4+
# This is not supported in IDF yet
5+
# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT=y
86
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
97
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
108
CONFIG_LWIP_PPP_SUPPORT=y

0 commit comments

Comments
 (0)