thinking about how to compare firewall rules
This commit is contained in:
parent
3e1ec7ebb0
commit
50ebe9a5a4
2 changed files with 24 additions and 0 deletions
|
@ -12,6 +12,7 @@ namespace fw
|
||||||
Firewall(const char *, const char *, const char *, const char *, const String ip, const uint16_t = 8080);
|
Firewall(const char *, const char *, const char *, const char *, const String ip, const uint16_t = 8080);
|
||||||
~Firewall();
|
~Firewall();
|
||||||
void handle_api_client();
|
void handle_api_client();
|
||||||
|
bool check_client(WiFiClient);
|
||||||
};
|
};
|
||||||
|
|
||||||
Firewall::Firewall(const char *cert, const char *key, const char *username, const char *password, const String ip, const uint16_t port)
|
Firewall::Firewall(const char *cert, const char *key, const char *username, const char *password, const String ip, const uint16_t port)
|
||||||
|
@ -21,6 +22,13 @@ namespace fw
|
||||||
{
|
{
|
||||||
handle_client();
|
handle_client();
|
||||||
}
|
}
|
||||||
|
bool Firewall::check_client(WiFiClient client)
|
||||||
|
{
|
||||||
|
if (client.remoteIP())
|
||||||
|
return false;
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
fw::Firewall *firewall;
|
fw::Firewall *firewall;
|
||||||
String ip = "0.0.0.0";
|
String ip = "0.0.0.0";
|
||||||
|
WiFiServer wifiServer(80);
|
||||||
|
|
||||||
void setup_wifi()
|
void setup_wifi()
|
||||||
{
|
{
|
||||||
|
@ -27,6 +28,7 @@ void setup_wifi()
|
||||||
Serial.print("IP Address: ");
|
Serial.print("IP Address: ");
|
||||||
ip = WiFi.localIP().toString();
|
ip = WiFi.localIP().toString();
|
||||||
Serial.println(ip);
|
Serial.println(ip);
|
||||||
|
wifiServer.begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
|
@ -37,5 +39,19 @@ void setup()
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
|
WiFiClient client = wifiServer.available();
|
||||||
|
if (client)
|
||||||
|
{
|
||||||
|
Serial.print("Client connected with IP:");
|
||||||
|
Serial.println(client.remoteIP());
|
||||||
|
|
||||||
|
if (firewall->check_client(client))
|
||||||
|
Serial.println("good client");
|
||||||
|
else
|
||||||
|
Serial.println("bad client");
|
||||||
|
|
||||||
|
client.stop();
|
||||||
|
Serial.println("Client disconnected");
|
||||||
|
}
|
||||||
firewall->handle_api_client();
|
firewall->handle_api_client();
|
||||||
}
|
}
|
Reference in a new issue