ladybird/Libraries/LibCore/AddressInfoVector.cpp
Timothy Flynn 2d22ef0db5 LibCore: Move AddressInfoVector to its own file
By defining this class entirely in the System.h header, we are relying
on ::freeaddrinfo being available. This has led to us polluting the
System.h header with system-level definitions on Windows by way of
SocketAddressWindows.h.
2025-12-01 06:34:32 -05:00

33 lines
672 B
C++

/*
* Copyright (c) 2022, Lucas Chollet <lucas.chollet@free.fr>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibCore/AddressInfoVector.h>
#if defined(AK_OS_WINDOWS)
# include <ws2tcpip.h>
#else
# include <netdb.h>
# include <sys/socket.h>
# include <sys/types.h>
#endif
namespace Core::System {
AddressInfoVector::AddressInfoVector(Vector<struct addrinfo> addresses, struct addrinfo* ptr)
: m_addresses(move(addresses))
, m_ptr(adopt_own_if_nonnull(ptr))
{
}
AddressInfoVector::~AddressInfoVector() = default;
void AddressInfoVector::AddrInfoDeleter::operator()(struct addrinfo* ptr)
{
if (ptr)
::freeaddrinfo(ptr);
}
}