feat: лимит флуда анонсами и бюджет канала; перевод веб-панели на русский

This commit is contained in:
shade committed 2026-10-20 18:23:05 +03:00
1 parent 94d2ae57f1
commit 906f6fa7fa
5 files changed
+323 -265

No files matched your search

+15
View File
@@ -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();
+6
View File
@@ -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);
File diff suppressed because it is too large. Load diff