diff options
| author | Your Name <you@example.com> | 2026-05-18 19:55:33 +0530 |
|---|---|---|
| committer | Your Name <you@example.com> | 2026-05-18 19:55:33 +0530 |
| commit | 65b4c9dc8626757f5f7cda279881b059e926916c (patch) | |
| tree | 7f41d7faf5cd3bd86344eda056fc56269b646225 /main/tollgate_api.c | |
| parent | 78d0c3795e9a90a9f99178e38346a53d9b2ebe57 (diff) | |
fix: divide-by-zero crash when no WiFi networks configured
- Guard tollgate_config_get_next_wifi against network_count=0
- Add fallback parsing for wifi_ssid/wifi_password flat fields
- Add heap info to API server failure log for debugging
- All 75 unit tests passing
Diffstat (limited to 'main/tollgate_api.c')
| -rw-r--r-- | main/tollgate_api.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/main/tollgate_api.c b/main/tollgate_api.c index 22b30ee..997dd09 100644 --- a/main/tollgate_api.c +++ b/main/tollgate_api.c | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #include "nucula_wallet.h" | 6 | #include "nucula_wallet.h" |
| 7 | #include "mint_health.h" | 7 | #include "mint_health.h" |
| 8 | #include "esp_log.h" | 8 | #include "esp_log.h" |
| 9 | #include "esp_system.h" | ||
| 9 | #include "cJSON.h" | 10 | #include "cJSON.h" |
| 10 | #include "lwip/sockets.h" | 11 | #include "lwip/sockets.h" |
| 11 | #include "lwip/netdb.h" | 12 | #include "lwip/netdb.h" |
| @@ -524,7 +525,8 @@ esp_err_t tollgate_api_start(void) | |||
| 524 | 525 | ||
| 525 | esp_err_t ret = httpd_start(&s_api_server, &config); | 526 | esp_err_t ret = httpd_start(&s_api_server, &config); |
| 526 | if (ret != ESP_OK) { | 527 | if (ret != ESP_OK) { |
| 527 | ESP_LOGE(TAG, "Failed to start API server: %s", esp_err_to_name(ret)); | 528 | ESP_LOGE(TAG, "Failed to start API server: %s (heap: %lu)", esp_err_to_name(ret), (unsigned long)esp_get_free_heap_size()); |
| 529 | s_api_server = NULL; | ||
| 528 | return ret; | 530 | return ret; |
| 529 | } | 531 | } |
| 530 | 532 | ||