diff --git a/src/MeshCore.h b/src/MeshCore.h index 2db1d4c3ec..af5c2efeed 100644 --- a/src/MeshCore.h +++ b/src/MeshCore.h @@ -3,7 +3,7 @@ #include #include -#define MAX_HASH_SIZE 8 +#define MAX_HASH_SIZE 4 #define PUB_KEY_SIZE 32 #define PRV_KEY_SIZE 64 #define SEED_SIZE 32 diff --git a/src/helpers/SimpleMeshTables.h b/src/helpers/SimpleMeshTables.h index 2f8af52af1..1ddba94064 100644 --- a/src/helpers/SimpleMeshTables.h +++ b/src/helpers/SimpleMeshTables.h @@ -12,7 +12,7 @@ class SimpleMeshTables : public mesh::MeshTables { uint8_t _hashes[MAX_PACKET_HASHES*MAX_HASH_SIZE]; int _next_idx; - uint32_t _acks[MAX_PACKET_ACKS]; + uint8_t _acks[MAX_PACKET_ACKS*MAX_HASH_SIZE]; int _next_ack_idx; uint32_t _direct_dups, _flood_dups; @@ -42,8 +42,8 @@ class SimpleMeshTables : public mesh::MeshTables { bool hasSeen(const mesh::Packet* packet) override { if (packet->getPayloadType() == PAYLOAD_TYPE_ACK) { - uint32_t ack; - memcpy(&ack, packet->payload, 4); + uint8_t ack; + memcpy(&ack, packet->payload, MAX_HASH_SIZE); for (int i = 0; i < MAX_PACKET_ACKS; i++) { if (ack == _acks[i]) { if (packet->isRouteDirect()) { @@ -82,8 +82,8 @@ class SimpleMeshTables : public mesh::MeshTables { void clear(const mesh::Packet* packet) override { if (packet->getPayloadType() == PAYLOAD_TYPE_ACK) { - uint32_t ack; - memcpy(&ack, packet->payload, 4); + uint8_t ack; + memcpy(&ack, packet->payload, MAX_HASH_SIZE); for (int i = 0; i < MAX_PACKET_ACKS; i++) { if (ack == _acks[i]) { _acks[i] = 0;