Эх сурвалжийг харах

* simplified the new flood.max.unscoped pref

Scott Powell 2 сар өмнө
parent
commit
f66c1d0258

+ 3 - 7
examples/simple_repeater/MyMesh.cpp

@@ -429,12 +429,8 @@ 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()) {
-    uint8_t limit = _prefs.flood_max;
-    if (packet->getRouteType() == ROUTE_TYPE_FLOOD
-        && _prefs.flood_max_unscoped != FLOOD_MAX_UNSCOPED_UNSET) {
-      limit = _prefs.flood_max_unscoped;
-    }
-    if (packet->getPathHashCount() >= limit) return false;
+    if (packet->getPathHashCount() >= _prefs.flood_max) return false;
+    if (packet->getRouteType() == ROUTE_TYPE_FLOOD && packet->getPathHashCount() >= _prefs.flood_max_unscoped) return false;
   }
   if (packet->isRouteFlood() && recv_pkt_region == NULL) {
     MESH_DEBUG_PRINTLN("allowPacketForward: unknown transport code, or wildcard not allowed for FLOOD packet");
@@ -893,7 +889,7 @@ MyMesh::MyMesh(mesh::MainBoard &board, mesh::Radio &radio, mesh::MillisecondCloc
   _prefs.advert_interval = 1;        // default to 2 minutes for NEW installs
   _prefs.flood_advert_interval = 47; // 47 hours
   _prefs.flood_max = 64;
-  _prefs.flood_max_unscoped = FLOOD_MAX_UNSCOPED_UNSET;
+  _prefs.flood_max_unscoped = 64;
   _prefs.interference_threshold = 0; // disabled
 
   // bridge defaults

+ 3 - 7
examples/simple_room_server/MyMesh.cpp

@@ -283,12 +283,8 @@ uint32_t MyMesh::getDirectRetransmitDelay(const mesh::Packet *packet) {
 bool MyMesh::allowPacketForward(const mesh::Packet *packet) {
   if (_prefs.disable_fwd) return false;
   if (packet->isRouteFlood()) {
-    uint8_t limit = _prefs.flood_max;
-    if (packet->getRouteType() == ROUTE_TYPE_FLOOD
-        && _prefs.flood_max_unscoped != FLOOD_MAX_UNSCOPED_UNSET) {
-      limit = _prefs.flood_max_unscoped;
-    }
-    if (packet->getPathHashCount() >= limit) return false;
+    if (packet->getPathHashCount() >= _prefs.flood_max) return false;
+    if (packet->getRouteType() == ROUTE_TYPE_FLOOD && packet->getPathHashCount() >= _prefs.flood_max_unscoped) return false;
   }
   return true;
 }
@@ -650,7 +646,7 @@ MyMesh::MyMesh(mesh::MainBoard &board, mesh::Radio &radio, mesh::MillisecondCloc
   _prefs.advert_interval = 1;        // default to 2 minutes for NEW installs
   _prefs.flood_advert_interval = 47; // 47 hours
   _prefs.flood_max = 64;
-  _prefs.flood_max_unscoped = FLOOD_MAX_UNSCOPED_UNSET;
+  _prefs.flood_max_unscoped = 64;
   _prefs.interference_threshold = 0; // disabled
 #ifdef ROOM_PASSWORD
   StrHelper::strncpy(_prefs.guest_password, ROOM_PASSWORD, sizeof(_prefs.guest_password));

+ 1 - 10
src/helpers/CommonCLI.cpp

@@ -121,11 +121,6 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
     // sanitise settings
     _prefs->rx_boosted_gain = constrain(_prefs->rx_boosted_gain, 0, 1); // boolean
 
-    // sanitise only if user sets unscoped max
-    if (_prefs->flood_max_unscoped != FLOOD_MAX_UNSCOPED_UNSET) {
-      _prefs->flood_max_unscoped = constrain(_prefs->flood_max_unscoped, 0, 64);
-    }
-
     file.close();
   }
 }
@@ -799,11 +794,7 @@ void CommonCLI::handleGetCmd(uint32_t sender_timestamp, char* command, char* rep
   } else if (memcmp(config, "txdelay", 7) == 0) {
     sprintf(reply, "> %s", StrHelper::ftoa(_prefs->tx_delay_factor));
   } else if (memcmp(config, "flood.max.unscoped", 18) == 0) {
-    if (_prefs->flood_max_unscoped == FLOOD_MAX_UNSCOPED_UNSET) {
-      sprintf(reply, "> default (tracks flood.max=%u)", (unsigned)_prefs->flood_max);
-    } else {
-      sprintf(reply, "> %d", (uint32_t)_prefs->flood_max_unscoped);
-    }
+    sprintf(reply, "> %d", (uint32_t)_prefs->flood_max_unscoped);
   } else if (memcmp(config, "flood.max", 9) == 0) {
     sprintf(reply, "> %d", (uint32_t)_prefs->flood_max);
   } else if (memcmp(config, "direct.txdelay", 14) == 0) {

+ 0 - 2
src/helpers/CommonCLI.h

@@ -14,8 +14,6 @@
 #define ADVERT_LOC_SHARE      1
 #define ADVERT_LOC_PREFS      2
 
-#define FLOOD_MAX_UNSCOPED_UNSET 0xFF
-
 #define LOOP_DETECT_OFF       0
 #define LOOP_DETECT_MINIMAL   1
 #define LOOP_DETECT_MODERATE  2