From 48675b036185faa39ce1b4e5a2993c0c9b950690 Mon Sep 17 00:00:00 2001 From: Florian Hoss Date: Thu, 21 Jul 2022 18:01:46 +0200 Subject: [PATCH] Remove callbacks --- ESPFirewall/src/main.cpp | 117 ++++++++------------------------------- 1 file changed, 22 insertions(+), 95 deletions(-) diff --git a/ESPFirewall/src/main.cpp b/ESPFirewall/src/main.cpp index 75aabaf..6b68a97 100644 --- a/ESPFirewall/src/main.cpp +++ b/ESPFirewall/src/main.cpp @@ -6,6 +6,7 @@ #include "esp_wifi.h" #elif defined(ESP8266) #include "ESP8266WiFi.h" +#define LED 2 #endif #include "Firewall.hpp" @@ -16,107 +17,33 @@ fw::API *firewallApi; WiFiServer wifiServer(80); -typedef struct +void toggleLED() { - unsigned frame_ctrl : 16; - unsigned duration_id : 16; - uint8_t addr1[6]; /* receiver address */ - uint8_t addr2[6]; /* sender address */ - uint8_t addr3[6]; /* filtering address */ - unsigned sequence_ctrl : 16; - uint8_t addr4[6]; /* optional */ -} wifi_ieee80211_mac_hdr_t; - -typedef struct -{ - wifi_ieee80211_mac_hdr_t hdr; - uint8_t payload[0]; /* network data ended with 4 bytes csum (CRC32) */ -} wifi_ieee80211_packet_t; - -void connectToWifi() -{ - WiFi.begin(ssid, psk); - while (WiFi.status() != WL_CONNECTED) - { - delay(200); - } -} - -void handle_wifi_events(WiFiEvent_t event, WiFiEventInfo_t info) -{ - Serial.print("[WiFi] "); - switch (event) - { - case ARDUINO_EVENT_WIFI_STA_START: - Serial.printf("Attempting to connect to WPA SSID: %s\n", ssid); - break; - case ARDUINO_EVENT_WIFI_STA_CONNECTED: - Serial.println("connected"); - break; - case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: - Serial.println("disconnected"); - break; - case ARDUINO_EVENT_WIFI_STA_GOT_IP: - Serial.print("IP address: "); - Serial.println(WiFi.localIP()); - break; - default: - Serial.println(event); - } -} - -const char *wifi_sniffer_packet_type2str(wifi_promiscuous_pkt_type_t type) -{ - switch (type) - { - case WIFI_PKT_DATA: - return "DATA"; - default: - case WIFI_PKT_MISC: - return "MISC"; - } -} - -void wifi_sniffer_packet_handler(void *buff, wifi_promiscuous_pkt_type_t type) -{ - if (type != WIFI_PKT_MGMT) - return; - - const wifi_promiscuous_pkt_t *ppkt = (wifi_promiscuous_pkt_t *)buff; - const wifi_ieee80211_packet_t *ipkt = (wifi_ieee80211_packet_t *)ppkt->payload; - const wifi_ieee80211_mac_hdr_t *hdr = &ipkt->hdr; - - printf("PACKET TYPE=%s, CHAN=%02d, RSSI=%02d," - " ADDR1=%02x:%02x:%02x:%02x:%02x:%02x," - " ADDR2=%02x:%02x:%02x:%02x:%02x:%02x," - " ADDR3=%02x:%02x:%02x:%02x:%02x:%02x\n", - wifi_sniffer_packet_type2str(type), - ppkt->rx_ctrl.channel, - ppkt->rx_ctrl.rssi, - /* ADDR1 */ - hdr->addr1[0], hdr->addr1[1], hdr->addr1[2], - hdr->addr1[3], hdr->addr1[4], hdr->addr1[5], - /* ADDR2 */ - hdr->addr2[0], hdr->addr2[1], hdr->addr2[2], - hdr->addr2[3], hdr->addr2[4], hdr->addr2[5], - /* ADDR3 */ - hdr->addr3[0], hdr->addr3[1], hdr->addr3[2], - hdr->addr3[3], hdr->addr3[4], hdr->addr3[5]); -} - -void setup_wifi() -{ - WiFi.mode(WIFI_STA); - WiFi.onEvent(handle_wifi_events, ARDUINO_EVENT_MAX); - connectToWifi(); - esp_wifi_set_promiscuous(true); - esp_wifi_set_promiscuous_rx_cb(&wifi_sniffer_packet_handler); + if (digitalRead(LED) == LOW) + digitalWrite(LED, HIGH); + else + digitalWrite(LED, LOW); } void setup() { +#ifdef ESP8266 + pinMode(LED, OUTPUT); +#endif Serial.begin(115200); - setup_wifi(); + Serial.println(); + WiFi.begin(ssid, psk); + while (!WiFi.isConnected()) + { +#ifdef ESP8266 + toggleLED(); +#endif + Serial.print("."); + delay(200); + } + Serial.println(); + Serial.print("[WiFi] IP: "); + Serial.println(WiFi.localIP()); firewall = new fw::Firewall(); firewallApi = new fw::API(firewall, cert, key, username, password); wifiServer.begin();