ESPHome 2026.1.5
Loading...
Searching...
No Matches
utils.h
Go to the documentation of this file.
1#pragma once
2#ifdef USE_ESP32
3
4#include <esp_http_server.h>
5#include <string>
7
8namespace esphome {
9namespace web_server_idf {
10
13size_t url_decode(char *str);
14
15bool request_has_header(httpd_req_t *req, const char *name);
16optional<std::string> request_get_header(httpd_req_t *req, const char *name);
17optional<std::string> request_get_url_query(httpd_req_t *req);
18optional<std::string> query_key_value(const std::string &query_url, const std::string &key);
19
20// Helper function for case-insensitive character comparison
21inline bool char_equals_ci(char a, char b) { return ::tolower(a) == ::tolower(b); }
22
23// Helper function for case-insensitive string region comparison
24bool str_ncmp_ci(const char *s1, const char *s2, size_t n);
25
26// Case-insensitive string search (like strstr but case-insensitive)
27const char *stristr(const char *haystack, const char *needle);
28
29} // namespace web_server_idf
30} // namespace esphome
31#endif // USE_ESP32
bool char_equals_ci(char a, char b)
Definition utils.h:21
optional< std::string > request_get_url_query(httpd_req_t *req)
Definition utils.cpp:58
optional< std::string > request_get_header(httpd_req_t *req, const char *name)
Definition utils.cpp:41
bool str_ncmp_ci(const char *s1, const char *s2, size_t n)
Definition utils.cpp:96
size_t url_decode(char *str)
Decode URL-encoded string in-place (e.g., %20 -> space, + -> space) Returns the new length of the dec...
Definition utils.cpp:16
optional< std::string > query_key_value(const std::string &query_url, const std::string &key)
Definition utils.cpp:76
const char * stristr(const char *haystack, const char *needle)
Definition utils.cpp:106
bool request_has_header(httpd_req_t *req, const char *name)
Definition utils.cpp:39
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7