Files
MeshCore/src/helpers/nrf52/SecuritySessionTimer.h
T

29 lines
745 B
C++

#pragma once
#include <stdint.h>
// Keep the link available for the same two-minute window used by the pairing
// PIN screen. An expired session is disconnected, but its bond is not erased.
static const uint32_t BLE_SECURITY_SESSION_TIMEOUT_MS = 120000UL;
class SecuritySessionTimer {
bool _pending;
uint32_t _started_at;
public:
SecuritySessionTimer() : _pending(false), _started_at(0) {}
void start(uint32_t now) {
_pending = true;
_started_at = now;
}
void cancel() { _pending = false; }
bool pending() const { return _pending; }
bool expired(uint32_t now,
uint32_t timeout_ms = BLE_SECURITY_SESSION_TIMEOUT_MS) const {
return _pending && (uint32_t)(now - _started_at) >= timeout_ms;
}
};