From 7f4205b82ca566dfc670062682556c584a490306 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Mon, 17 Nov 2025 21:52:12 -0600 Subject: [PATCH] reduce --- esphome/components/captive_portal/captive_portal.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/esphome/components/captive_portal/captive_portal.cpp b/esphome/components/captive_portal/captive_portal.cpp index 30438747f2..e9ca7a8e14 100644 --- a/esphome/components/captive_portal/captive_portal.cpp +++ b/esphome/components/captive_portal/captive_portal.cpp @@ -52,7 +52,13 @@ void CaptivePortal::handle_wifisave(AsyncWebServerRequest *request) { ESP_LOGI(TAG, " Password=" LOG_SECRET("'%s'"), psk.c_str()); wifi::global_wifi_component->save_wifi_sta(ssid, psk); wifi::global_wifi_component->start_scanning(); - request->redirect(ESPHOME_F("/?save")); + + // Add Connection: close header to ensure socket is released immediately + // Without this, sockets can stay in TIME_WAIT and exhaust the socket pool + auto *response = request->beginResponse(302, ESPHOME_F("text/plain"), ESPHOME_F("")); + response->addHeader(ESPHOME_F("Location"), ESPHOME_F("/?save")); + response->addHeader(ESPHOME_F("Connection"), ESPHOME_F("close")); + request->send(response); } void CaptivePortal::setup() {