remove rules class
This commit is contained in:
parent
1e87f21334
commit
3e664dd408
2 changed files with 0 additions and 149 deletions
|
@ -1,123 +0,0 @@
|
||||||
#include "Rules.hpp"
|
|
||||||
|
|
||||||
namespace fw
|
|
||||||
{
|
|
||||||
Rules::Rules()
|
|
||||||
{
|
|
||||||
this->amount_of_rules = retrieve_settings_value("amount_of_rules");
|
|
||||||
Serial.print("Available Firewall Rules: ");
|
|
||||||
Serial.println(amount_of_rules);
|
|
||||||
for (uint8_t i = 1; i <= this->amount_of_rules; i++)
|
|
||||||
{
|
|
||||||
firewall_rule_t *rule_ptr = retrieve_firewall_rule(i);
|
|
||||||
add_rule_to_firewall(rule_ptr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rules::~Rules()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void Rules::add_rule_to_firewall(firewall_rule_t *rule_ptr)
|
|
||||||
{
|
|
||||||
store_settings_value("amount_of_rules", this->amount_of_rules);
|
|
||||||
store_firewall_rule(rule_ptr);
|
|
||||||
firewall_rule_t *temp;
|
|
||||||
if (this->rule_head == NULL)
|
|
||||||
{
|
|
||||||
this->rule_head = rule_ptr;
|
|
||||||
rule_ptr->next = NULL;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
temp = this->rule_head;
|
|
||||||
while (temp->next != NULL)
|
|
||||||
{
|
|
||||||
temp = temp->next;
|
|
||||||
}
|
|
||||||
temp->next = rule_ptr;
|
|
||||||
rule_ptr->next = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
firewall_rule_t *Rules::add_rule_to_firewall(
|
|
||||||
String source,
|
|
||||||
String destination,
|
|
||||||
String port_from,
|
|
||||||
String port_to,
|
|
||||||
String protocol,
|
|
||||||
String target)
|
|
||||||
{
|
|
||||||
firewall_rule_t *rule_ptr = (firewall_rule_t *)malloc(sizeof(firewall_rule_t));
|
|
||||||
rule_ptr->key = ++amount_of_rules;
|
|
||||||
|
|
||||||
strncpy(rule_ptr->source, source.c_str(), sizeof(rule_ptr->source));
|
|
||||||
strncpy(rule_ptr->destination, destination.c_str(), sizeof(rule_ptr->destination));
|
|
||||||
rule_ptr->port_from = port_from.toInt();
|
|
||||||
rule_ptr->port_to = port_to.toInt();
|
|
||||||
rule_ptr->protocol = string_to_protocol(protocol);
|
|
||||||
rule_ptr->target = string_to_target(target);
|
|
||||||
|
|
||||||
add_rule_to_firewall(rule_ptr);
|
|
||||||
return rule_ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
firewall_rule_t *Rules::get_rule_from_firewall(uint8_t key)
|
|
||||||
{
|
|
||||||
firewall_rule_t *rule_ptr = this->rule_head;
|
|
||||||
if (this->rule_head == NULL)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
while (rule_ptr->key != key)
|
|
||||||
{
|
|
||||||
if (rule_ptr->next == NULL)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rule_ptr = rule_ptr->next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return rule_ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
ok_t Rules::delete_rule_from_firewall(uint8_t key)
|
|
||||||
{
|
|
||||||
if (this->rule_head == NULL)
|
|
||||||
return NO_ACTION;
|
|
||||||
firewall_rule_t *current_rule_ptr = this->rule_head;
|
|
||||||
firewall_rule_t *previous_rule_ptr = NULL;
|
|
||||||
firewall_rule_t *temp = NULL;
|
|
||||||
while (current_rule_ptr->key != key)
|
|
||||||
{
|
|
||||||
if (current_rule_ptr->next == NULL)
|
|
||||||
return NO_ACTION;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
previous_rule_ptr = current_rule_ptr;
|
|
||||||
current_rule_ptr = current_rule_ptr->next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (current_rule_ptr == this->rule_head)
|
|
||||||
{
|
|
||||||
this->rule_head = rule_head->next;
|
|
||||||
temp = this->rule_head;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
previous_rule_ptr->next = current_rule_ptr->next;
|
|
||||||
temp = previous_rule_ptr->next;
|
|
||||||
}
|
|
||||||
while (temp != NULL)
|
|
||||||
{
|
|
||||||
temp->key--;
|
|
||||||
temp = temp->next;
|
|
||||||
}
|
|
||||||
free(current_rule_ptr);
|
|
||||||
this->amount_of_rules--;
|
|
||||||
store_settings_value("amount_of_rules", this->amount_of_rules);
|
|
||||||
if (this->amount_of_rules != 0)
|
|
||||||
store_all_firewall_rules(rule_head);
|
|
||||||
return SUCCESS;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
#ifndef ESP32_FIREWALL_HPP
|
|
||||||
#define ESP32_FIREWALL_HPP
|
|
||||||
|
|
||||||
#include "Utils.hpp"
|
|
||||||
#include "Storage.hpp"
|
|
||||||
|
|
||||||
namespace fw
|
|
||||||
{
|
|
||||||
class Rules : public Storage
|
|
||||||
{
|
|
||||||
protected:
|
|
||||||
uint8_t amount_of_rules = 0;
|
|
||||||
firewall_rule_t *rule_head = NULL;
|
|
||||||
|
|
||||||
void add_rule_to_firewall(firewall_rule_t *);
|
|
||||||
firewall_rule_t *add_rule_to_firewall(String, String, String, String, String, String);
|
|
||||||
firewall_rule_t *get_rule_from_firewall(uint8_t);
|
|
||||||
ok_t delete_rule_from_firewall(uint8_t);
|
|
||||||
|
|
||||||
public:
|
|
||||||
Rules();
|
|
||||||
~Rules();
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
Reference in a new issue