refactor(net): unique_ptr for connection-lifecycle objects (#11459)

- WiFiServerAPI/ethServerAPI apiPort and ethApiServer's listener are
  create/destroy cycles that repeat across WiFi teardown and W5500
  chip resets; the manual delete+null bookkeeping becomes reset().
  (ethTlsApiServer's listener is left for a follow-up: that file is
  already touched by the partial-init fix PR and converting it here
  would conflict.)

- ContentHandler::handleFormUpload held its body parser raw with
  delete on four separate exit paths of a per-request handler; any
  future early return was a silent leak. unique_ptr removes all four.

- The portduino ch341Hal global becomes unique_ptr. The LoRa-error
  recovery loop's delete/null/new sequence was correct only by
  hand-preserved ordering; it becomes reset()/make_unique. RadioLibHAL
  keeps a non-owning raw pointer, as before.

No behavior change.
This commit is contained in:
Ben Meadors authored and GitHub committed 2026-08-14 10:04:57 +00:00
1 parent 5e54262fe1
commit 0ff10318ad
8 files changed
+25 -34

No files matched your search

+3 -4
View File
@@ -5,13 +5,13 @@
#include "ethServerAPI.h"
static ethServerPort *apiPort;
static std::unique_ptr<ethServerPort> apiPort;
void initApiServer(int port)
{
// Start API server on port 4403
if (!apiPort) {
apiPort = new ethServerPort(port);
apiPort = std::make_unique<ethServerPort>(port);
LOG_INFO("API server listening on TCP port %d", port);
apiPort->init();
}
@@ -21,8 +21,7 @@ void deInitApiServer()
{
if (apiPort) {
LOG_INFO("Deinit API server");
delete apiPort;
apiPort = nullptr;
apiPort.reset();
}
}