From 10bd9b14fcc0ad8d7148b31e4aed74a052b2cad7 Mon Sep 17 00:00:00 2001
From: Tim Niemueller <tim@niemueller.de>
Date: Thu, 4 May 2023 00:13:30 +0200
Subject: [PATCH 1/2] Fixes for Arduino 2.7.4 (for FastLED) (#4777)

---
 esphome/components/socket/socket.cpp | 2 ++
 esphome/components/socket/socket.h   | 4 ++--
 esphome/core/string_ref.h            | 5 +++--
 3 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/esphome/components/socket/socket.cpp b/esphome/components/socket/socket.cpp
index d00ddaeae2..4c78397873 100644
--- a/esphome/components/socket/socket.cpp
+++ b/esphome/components/socket/socket.cpp
@@ -7,6 +7,8 @@
 namespace esphome {
 namespace socket {
 
+Socket::~Socket() {}
+
 std::unique_ptr<Socket> socket_ip(int type, int protocol) {
 #if LWIP_IPV6
   return socket(AF_INET6, type, protocol);
diff --git a/esphome/components/socket/socket.h b/esphome/components/socket/socket.h
index 7400ba306f..c9b8be88a0 100644
--- a/esphome/components/socket/socket.h
+++ b/esphome/components/socket/socket.h
@@ -11,7 +11,7 @@ namespace socket {
 class Socket {
  public:
   Socket() = default;
-  virtual ~Socket() = default;
+  virtual ~Socket();
   Socket(const Socket &) = delete;
   Socket &operator=(const Socket &) = delete;
 
@@ -34,7 +34,7 @@ class Socket {
   virtual ssize_t readv(const struct iovec *iov, int iovcnt) = 0;
   virtual ssize_t write(const void *buf, size_t len) = 0;
   virtual ssize_t writev(const struct iovec *iov, int iovcnt) = 0;
-  virtual ssize_t sendto(const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
+  virtual ssize_t sendto(const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) = 0;
 
   virtual int setblocking(bool blocking) = 0;
   virtual int loop() { return 0; };
diff --git a/esphome/core/string_ref.h b/esphome/core/string_ref.h
index 5940a7ee65..f3dc3a38b0 100644
--- a/esphome/core/string_ref.h
+++ b/esphome/core/string_ref.h
@@ -1,8 +1,9 @@
 #pragma once
 
-#include <string>
-#include <iterator>
 #include <cstring>
+#include <iterator>
+#include <memory>
+#include <string>
 #include "esphome/core/defines.h"
 
 #ifdef USE_JSON

From 72f6841aac630bae242bab6d440c8bb1862e25e0 Mon Sep 17 00:00:00 2001
From: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
Date: Thu, 4 May 2023 10:53:06 +1200
Subject: [PATCH 2/2] Bump version to 2023.4.4

---
 esphome/const.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/esphome/const.py b/esphome/const.py
index 33232acc12..7525c7acfb 100644
--- a/esphome/const.py
+++ b/esphome/const.py
@@ -1,6 +1,6 @@
 """Constants used by esphome."""
 
-__version__ = "2023.4.3"
+__version__ = "2023.4.4"
 
 ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"