Commit Graph
17 Commits
Author SHA1 Message Date
Valentin V. Bartenev a99196c3ce Do not tokenize HW model in JSON payload.
Tokenization replaces dots and spaces with underscores
making it look ugly on the MeshCoreTel website.
2026-04-28 03:27:49 +03:00
Valentin V. Bartenev 68e951e204 Work around IDFv4 heap canary corruption on early connect failure.
When the MQTT WebSocket handshake fails before a connection is fully
established (e.g. "Sec-WebSocket-Accept not found"), the IDF v4
transport teardown path writes only 3 of the 4 bytes of the heap block
tail canary (expected 0xbaad5678, actual 0xbaad5600).  The subsequent
esp_mqtt_client_destroy() call frees that block, causing multi_heap_free
to detect the broken canary and abort:

  CORRUPT HEAP: Bad tail at 0x3fcb42a4. Expected 0xbaad5678 got 0xbaad5600
  assert failed: multi_heap_free multi_heap_poisoning.c:259 (head != NULL)

The fix is to check heap integrity with heap_caps_check_integrity_all(false)
between esp_mqtt_client_stop() and esp_mqtt_client_destroy().  If corruption
is detected, scan internal SRAM (0x3FC00000–0x3FD00000) for the truncated
canary pattern and restore it to the correct value before
destroy() runs.

The scan is a no-op when the heap is clean and is compiled out entirely
on IDF v5+, where the underlying bug does not exist.

This fixes crash-on-reconnect observed with ESP32-S3 + IDF v4 + WSS transport.
2026-04-28 03:01:37 +03:00
Valentin V. Bartenev 46b0df7a4b Removed EastMesh MQTT broker support.
It's intended for Eastern Australia repeaters only.  Using original EastMesh
firmware is prefered in this case.
2026-04-28 00:52:26 +03:00
Valentin V. Bartenev f1912ff184 Added support for MeshCoreTel broker. 2026-04-27 03:15:00 +03:00
Jared Dohrman 46f0496865 feat: add mqtt client version to repeater app and cli 2026-04-22 13:29:03 +10:00
Jared Dohrman bf57f342b3 fix: require configured mqtt iata before broker connect 2026-04-20 22:30:06 +10:00
Jared Dohrman d412e3e84a fix: improve repeater stats UX and persist ESP32 fallback clock 2026-04-17 12:17:35 +10:00
Jared Dohrman f67aaebe7e feat: add SD-backed stats archive and dedicated /stats web console 2026-04-15 17:12:32 +10:00
Jared Dohrman de071cbb79 fix: reduce repeater web panel pressure and improve mqtt diagnostics 2026-04-13 09:42:32 +10:00
Jared Dohrman 3bb4f69566 fix: add graceful MQTT reconnect backoff during broker outages 2026-04-12 09:01:25 +10:00
Jared Dohrman 6680e53ef5 fix: improve MQTT/web memory usage and streamline broker controls 2026-04-11 16:40:45 +10:00
Jared Dohrman 328a0ecf6f fix(mqtt): clear legacy prefs, restore status publishing, and expand web controls 2026-04-10 22:24:58 +10:00
Jared Dohrman b5374a705a feat(web,mqtt): add repeater dashboard, MQTT settings, and stabilise HTTPS/TLS startup 2026-04-10 15:18:19 +10:00
Jared Dohrman bd60d0e631 chore: update theme for web 2026-04-09 16:39:25 +10:00
Jared Dohrman 4b184a60d9 fix: stop tracking web panel cert key and generate it under ignored artifacts 2026-04-09 15:25:52 +10:00
Jared Dohrman 238e19d9b7 fix: trim C3 mqtt firmware size and make web panel optional 2026-04-09 15:14:06 +10:00
Jared Dohrman 98fe78a379 feat: add MQTT repeater support, web config panel, and EastMesh-specific firmware workflows 2026-04-09 15:00:53 +10:00