1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-30 00:52:20 +01:00
Files
esphome/esphome/components/captive_portal/dns_server_esp32_idf.h
J. Nick Koston 29943bfef1 preen
2025-09-27 12:48:09 -05:00

30 lines
620 B
C++

#pragma once
#ifdef USE_ESP_IDF
#include <memory>
#include "esphome/core/helpers.h"
#include "esphome/components/network/ip_address.h"
#include "esphome/components/socket/socket.h"
namespace esphome::captive_portal {
class DNSServer {
public:
void start(const network::IPAddress &ip);
void stop();
void process_next_request();
protected:
static constexpr size_t DNS_BUFFER_SIZE = 256;
void process_dns_request();
std::unique_ptr<socket::Socket> socket_{nullptr};
network::IPAddress server_ip_;
uint8_t buffer_[DNS_BUFFER_SIZE];
};
} // namespace esphome::captive_portal
#endif // USE_ESP_IDF