mirror of
https://github.com/meshtastic/firmware.git
synced 2025-04-25 09:42:35 +00:00
Merge branch 'master' into custom-esp32
This commit is contained in:
commit
50bf56132a
@ -92,22 +92,23 @@ void Router::enqueueReceivedMessage(meshtastic_MeshPacket *p)
|
|||||||
// FIXME, move this someplace better
|
// FIXME, move this someplace better
|
||||||
PacketId generatePacketId()
|
PacketId generatePacketId()
|
||||||
{
|
{
|
||||||
static uint32_t i; // Note: trying to keep this in noinit didn't help for working across reboots
|
static uint32_t rollingPacketId; // Note: trying to keep this in noinit didn't help for working across reboots
|
||||||
static bool didInit = false;
|
static bool didInit = false;
|
||||||
|
|
||||||
uint32_t numPacketId = UINT32_MAX;
|
|
||||||
|
|
||||||
if (!didInit) {
|
if (!didInit) {
|
||||||
didInit = true;
|
didInit = true;
|
||||||
|
|
||||||
// pick a random initial sequence number at boot (to prevent repeated reboots always starting at 0)
|
// pick a random initial sequence number at boot (to prevent repeated reboots always starting at 0)
|
||||||
// Note: we mask the high order bit to ensure that we never pass a 'negative' number to random
|
// Note: we mask the high order bit to ensure that we never pass a 'negative' number to random
|
||||||
i = random(numPacketId & 0x7fffffff);
|
rollingPacketId = random(UINT32_MAX & 0x7fffffff);
|
||||||
LOG_DEBUG("Initial packet id %u, numPacketId %u\n", i, numPacketId);
|
LOG_DEBUG("Initial packet id %u\n", rollingPacketId);
|
||||||
}
|
}
|
||||||
|
|
||||||
i++;
|
rollingPacketId++;
|
||||||
PacketId id = (i % numPacketId) + 1; // return number between 1 and numPacketId (ie - never zero)
|
|
||||||
|
rollingPacketId &= UINT32_MAX >> 22; // Mask out the top 22 bits
|
||||||
|
PacketId id = rollingPacketId | random(UINT32_MAX & 0x7fffffff) << 10; // top 22 bits
|
||||||
|
LOG_DEBUG("Partially randomized packet id %u\n", id);
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,8 +91,12 @@ void enableSlowCLK()
|
|||||||
|
|
||||||
void esp32Setup()
|
void esp32Setup()
|
||||||
{
|
{
|
||||||
|
/* We explicitly don't want to do call randomSeed,
|
||||||
|
// as that triggers the esp32 core to use a less secure pseudorandom function.
|
||||||
uint32_t seed = esp_random();
|
uint32_t seed = esp_random();
|
||||||
LOG_DEBUG("Setting random seed %u\n", seed);
|
LOG_DEBUG("Setting random seed %u\n", seed);
|
||||||
|
randomSeed(seed);
|
||||||
|
*/
|
||||||
|
|
||||||
LOG_DEBUG("Total heap: %d\n", ESP.getHeapSize());
|
LOG_DEBUG("Total heap: %d\n", ESP.getHeapSize());
|
||||||
LOG_DEBUG("Free heap: %d\n", ESP.getFreeHeap());
|
LOG_DEBUG("Free heap: %d\n", ESP.getFreeHeap());
|
||||||
|
Loading…
Reference in New Issue
Block a user