|
|
|
@ -429,9 +429,10 @@ void MyMesh::sendFloodReply(mesh::Packet* packet, unsigned long delay_millis, ui |
|
|
|
bool MyMesh::allowPacketForward(const mesh::Packet *packet) { |
|
|
|
if (_prefs.disable_fwd) return false; |
|
|
|
if (packet->isRouteFlood()) { |
|
|
|
if (packet->getPathHashCount() >= _prefs.flood_max) return false; |
|
|
|
if (packet->getRouteType() == ROUTE_TYPE_FLOOD && packet->getPathHashCount() >= _prefs.flood_max_unscoped) return false; |
|
|
|
if (packet->getPayloadType() == PAYLOAD_TYPE_ADVERT && packet->getPathHashCount() >= _prefs.flood_max_advert) return false; |
|
|
|
uint8_t flood_hops = packet->getPathHashCountExcludingLeadingZeros(); |
|
|
|
if (flood_hops >= _prefs.flood_max) return false; |
|
|
|
if (packet->getRouteType() == ROUTE_TYPE_FLOOD && flood_hops >= _prefs.flood_max_unscoped) return false; |
|
|
|
if (packet->getPayloadType() == PAYLOAD_TYPE_ADVERT && flood_hops >= _prefs.flood_max_advert) return false; |
|
|
|
} |
|
|
|
if (packet->isRouteFlood() && recv_pkt_region == NULL) { |
|
|
|
MESH_DEBUG_PRINTLN("allowPacketForward: unknown transport code, or wildcard not allowed for FLOOD packet"); |
|
|
|
|