feat: лимит флуда анонсами и бюджет канала; перевод веб-панели на русский
This commit is contained in:
1 parent
94d2ae57f1
commit
906f6fa7fa
5 files changed
+323
-265
No files matched your search
@@ -605,6 +605,21 @@ void CommonCLI::handleSetCmd(uint32_t sender_timestamp, char* command, char* rep
|
||||
_prefs->disable_fwd = memcmp(&config[7], "off", 3) == 0;
|
||||
savePrefs();
|
||||
strcpy(reply, _prefs->disable_fwd ? "OK - repeat is now OFF" : "OK - repeat is now ON");
|
||||
} else if (memcmp(config, "advert.jail ", 12) == 0) {
|
||||
_prefs->advert_jail = memcmp(&config[12], "on", 2) == 0 ? 1 : 0;
|
||||
savePrefs();
|
||||
strcpy(reply, _prefs->advert_jail ? "OK - advert jail is now ON" : "OK - advert jail is now OFF");
|
||||
} else if (memcmp(config, "channel.budget ", 15) == 0) {
|
||||
int budget = atoi(&config[15]);
|
||||
if (budget < 0) budget = 0;
|
||||
if (budget > 1000) budget = 1000;
|
||||
_prefs->channel_budget = (uint16_t)budget;
|
||||
savePrefs();
|
||||
if (budget == 0) {
|
||||
strcpy(reply, "OK - channel budget is now OFF");
|
||||
} else {
|
||||
sprintf(reply, "OK - channel budget is now %d packets per 10 min", budget);
|
||||
}
|
||||
} else if (memcmp(config, "lat ", 4) == 0) {
|
||||
_prefs->node_lat = atof(&config[4]);
|
||||
savePrefs();
|
||||
|
||||
@@ -32,6 +32,10 @@ public:
|
||||
float freq = 0;
|
||||
int8_t tx_power_dbm = 0;
|
||||
uint8_t disable_fwd = 0;
|
||||
// Защита сети: лимит флуда анонсами (1 = включён) и бюджет эфира на канал
|
||||
// в пакетах за 10 минут (0 = выключен)
|
||||
uint8_t advert_jail = 1;
|
||||
uint16_t channel_budget = 0;
|
||||
uint8_t advert_interval = 0; // minutes / 2
|
||||
uint8_t flood_advert_interval = 0; // hours
|
||||
float rx_delay_base = 0;
|
||||
@@ -194,6 +198,8 @@ private:
|
||||
protected:
|
||||
void structure() override {
|
||||
def("disable", _parent->disable_fwd);
|
||||
def("advert_jail", _parent->advert_jail);
|
||||
def("channel_budget", _parent->channel_budget);
|
||||
def("f_max", _parent->flood_max);
|
||||
def("f_max_uns", _parent->flood_max_unscoped);
|
||||
def("f_max_adv", _parent->flood_max_advert);
|
||||
|
||||
+265
-265
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user