ESPHome
2026.11.0-dev
Loading...
Searching...
No Matches
esphome
components
web_server_base
dns_server_esp32_idf.h
Go to the documentation of this file.
1
#pragma once
2
#include "
esphome/core/defines.h
"
3
// ESP32 backend for CaptiveDNS: answers every A query with the access point address.
4
#if defined(USE_ESP32) && (defined(USE_CAPTIVE_PORTAL) || defined(USE_WEBSERVER_CAPTIVE))
5
6
#include "
esphome/core/helpers.h
"
7
#include "
esphome/components/network/ip_address.h
"
8
#include "
esphome/components/socket/socket.h
"
9
10
namespace
esphome::web_server_base
{
11
12
class
DNSServer
{
13
public
:
15
bool
start
(
const
network::IPAddress
&ip);
16
void
stop
();
17
void
process_next_request
();
18
19
protected
:
20
// No explicit close() needed — listen sockets have no active connections on
21
// failure/shutdown. Destructor handles fd cleanup (close or abort per platform).
22
inline
void
destroy_socket_
() {
23
delete
this->
socket_
;
24
this->
socket_
=
nullptr
;
25
}
26
static
constexpr
size_t
DNS_BUFFER_SIZE
= 192;
27
28
socket::ListenSocket
*
socket_
{
nullptr
};
29
network::IPAddress
server_ip_
;
30
uint8_t
buffer_
[
DNS_BUFFER_SIZE
];
31
};
32
33
}
// namespace esphome::web_server_base
34
35
#endif
// USE_ESP32 && (USE_CAPTIVE_PORTAL || USE_WEBSERVER_CAPTIVE)
esphome::socket::BSDSocketImpl
Definition
bsd_sockets_impl.h:22
esphome::web_server_base::DNSServer
Definition
dns_server_esp32_idf.h:12
esphome::web_server_base::DNSServer::DNS_BUFFER_SIZE
static constexpr size_t DNS_BUFFER_SIZE
Definition
dns_server_esp32_idf.h:26
esphome::web_server_base::DNSServer::server_ip_
network::IPAddress server_ip_
Definition
dns_server_esp32_idf.h:29
esphome::web_server_base::DNSServer::destroy_socket_
void destroy_socket_()
Definition
dns_server_esp32_idf.h:22
esphome::web_server_base::DNSServer::buffer_
uint8_t buffer_[DNS_BUFFER_SIZE]
Definition
dns_server_esp32_idf.h:30
esphome::web_server_base::DNSServer::stop
void stop()
Definition
dns_server_esp32_idf.cpp:81
esphome::web_server_base::DNSServer::socket_
socket::ListenSocket * socket_
Definition
dns_server_esp32_idf.h:28
esphome::web_server_base::DNSServer::process_next_request
void process_next_request()
Definition
dns_server_esp32_idf.cpp:86
esphome::web_server_base::DNSServer::start
bool start(const network::IPAddress &ip)
Returns false when the socket could not be created or bound.
Definition
dns_server_esp32_idf.cpp:49
defines.h
helpers.h
ip_address.h
esphome::web_server_base
Definition
captive_dns.h:18
socket.h
esphome::network::IPAddress
Definition
ip_address.h:109
Generated by
1.12.0