Files
MeshCore/src/helpers
agessaman 6be84eb4eb fix(mqtt): let a retried setup consume the reconnect allowance
reconnect_attempted_this_cycle is computed once before the maintenance loop and
only maintainSlotConnection() was setting it. The deferred-setup retry armed the
15 s cross-slot guard via _last_slot_reconnect_ms but left the local flag false,
so a disconnected slot later in the same pass still saw "no reconnect yet" and
started a second TLS handshake. Two concurrent ~40 KB sessions is exactly the
contention the guard prevents, and it landed in the one situation where internal
heap is already known to be short -- a failed allocation is why the retry runs.

Set on success only: setupSlot() returns true only after client->connect(), so
success means a handshake was launched. A failed retry launches nothing and
continues to spend only setup_retry_this_cycle, which rate-limits the allocation
attempts without consuming the handshake allowance.
2026-08-04 14:03:21 -07:00
..
2026-07-28 03:18:54 +12:00
2026-02-18 22:32:01 +07:00
2026-04-17 14:38:03 +10:00
2026-07-20 15:47:03 +01:00