#ifndef FIREWALL_H #define FIREWALL_H #include "Arduino.h" #include "AsyncJson.h" #include "ArduinoJson.h" #ifdef ESP32 #include "WiFi.h" #include "AsyncTCP.h" #elif defined(ESP8266) #include "ESP8266WiFi.h" #include "ESPAsyncTCP.h" #endif #include "ESPAsyncWebServer.h" typedef struct firewall_rule { int key; struct firewall_rule *next; } firewall_rule_t; class ESPFirewall { AsyncWebServer *firewall_api; unsigned int amount_of_rules = 0; struct firewall_rule *head = NULL; void add_rule_to_firewall(); void get_firewall_handler(AsyncWebServerRequest *request); void post_firewall_handler(AsyncWebServerRequest *request); void not_found(AsyncWebServerRequest *request); void setup_routing(); public: ESPFirewall(int port = 8080); }; #endif