From e01a95f6cd63570a0d1c85766518cff1dd88cf0f Mon Sep 17 00:00:00 2001 From: ayeteadoe Date: Mon, 14 Jul 2025 15:24:26 -0700 Subject: [PATCH] LibCore: Implement UDPSocket::connect() on Windows --- Libraries/LibCore/SocketWindows.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Libraries/LibCore/SocketWindows.cpp b/Libraries/LibCore/SocketWindows.cpp index bd667037314..da6d5b6285b 100644 --- a/Libraries/LibCore/SocketWindows.cpp +++ b/Libraries/LibCore/SocketWindows.cpp @@ -290,6 +290,26 @@ ErrorOr Socket::connect_local(int fd, ByteString const& path) return System::connect(fd, bit_cast(&addr), sizeof(addr)); } +ErrorOr> UDPSocket::connect(SocketAddress const& address, Optional timeout) +{ + auto socket = adopt_own(*new UDPSocket); + + auto socket_domain = SocketDomain::Inet6; + if (address.type() == SocketAddress::Type::IPv4) + socket_domain = SocketDomain::Inet; + + auto fd = TRY(create_fd(socket_domain, SocketType::Datagram)); + socket->m_helper.set_fd(fd); + if (timeout.has_value()) { + TRY(socket->m_helper.set_receive_timeout(timeout.value())); + } + + TRY(connect_inet(fd, address)); + + socket->setup_notifier(); + return socket; +} + ErrorOr> TCPSocket::connect(ByteString const& host, u16 port) { auto ip_addresses = TRY(resolve_host(host, SocketType::Stream));