10#if defined(USE_ESP32_IMPROV_NEXT_URL) || defined(USE_IMPROV_SERIAL_NEXT_URL)
11static constexpr const char DEVICE_NAME_PLACEHOLDER[] =
"{{device_name}}";
12static constexpr size_t DEVICE_NAME_PLACEHOLDER_LEN =
sizeof(DEVICE_NAME_PLACEHOLDER) - 1;
13static constexpr const char IP_ADDRESS_PLACEHOLDER[] =
"{{ip_address}}";
14static constexpr size_t IP_ADDRESS_PLACEHOLDER_LEN =
sizeof(IP_ADDRESS_PLACEHOLDER) - 1;
16static void replace_all_in_place(std::string &str,
const char *placeholder,
size_t placeholder_len,
17 const std::string &replacement) {
19 const size_t replacement_len = replacement.length();
20 while ((pos = str.find(placeholder, pos)) != std::string::npos) {
21 str.replace(pos, placeholder_len, replacement);
22 pos += replacement_len;
31 std::string formatted_url = this->
next_url_;
34 replace_all_in_place(formatted_url, DEVICE_NAME_PLACEHOLDER, DEVICE_NAME_PLACEHOLDER_LEN,
App.
get_name());
39 replace_all_in_place(formatted_url, IP_ADDRESS_PLACEHOLDER, IP_ADDRESS_PLACEHOLDER_LEN, ip.str());