Network: Replace some String by std::string
This commit is contained in:
parent
d298e93c13
commit
aff617f147
|
|
@ -51,7 +51,7 @@ namespace Nz
|
||||||
bool CheckEvents(ENetEvent* event);
|
bool CheckEvents(ENetEvent* event);
|
||||||
|
|
||||||
ENetPeer* Connect(const IpAddress& remoteAddress, std::size_t channelCount = 0, UInt32 data = 0);
|
ENetPeer* Connect(const IpAddress& remoteAddress, std::size_t channelCount = 0, UInt32 data = 0);
|
||||||
ENetPeer* Connect(const String& hostName, NetProtocol protocol = NetProtocol_Any, const String& service = "http", ResolveError* error = nullptr, std::size_t channelCount = 0, UInt32 data = 0);
|
ENetPeer* Connect(const std::string& hostName, NetProtocol protocol = NetProtocol_Any, const std::string& service = "http", ResolveError* error = nullptr, std::size_t channelCount = 0, UInt32 data = 0);
|
||||||
|
|
||||||
inline bool Create(NetProtocol protocol, UInt16 port, std::size_t peerCount, std::size_t channelCount = 0);
|
inline bool Create(NetProtocol protocol, UInt16 port, std::size_t peerCount, std::size_t channelCount = 0);
|
||||||
bool Create(const IpAddress& listenAddress, std::size_t peerCount, std::size_t channelCount = 0);
|
bool Create(const IpAddress& listenAddress, std::size_t peerCount, std::size_t channelCount = 0);
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ namespace Nz
|
||||||
|
|
||||||
inline IPv4 ToIPv4() const;
|
inline IPv4 ToIPv4() const;
|
||||||
inline IPv6 ToIPv6() const;
|
inline IPv6 ToIPv6() const;
|
||||||
String ToString() const;
|
std::string ToString() const;
|
||||||
inline UInt32 ToUInt32() const;
|
inline UInt32 ToUInt32() const;
|
||||||
|
|
||||||
inline explicit operator bool() const;
|
inline explicit operator bool() const;
|
||||||
|
|
@ -55,8 +55,8 @@ namespace Nz
|
||||||
IpAddress& operator=(const IpAddress&) = default;
|
IpAddress& operator=(const IpAddress&) = default;
|
||||||
IpAddress& operator=(IpAddress&&) noexcept = default;
|
IpAddress& operator=(IpAddress&&) noexcept = default;
|
||||||
|
|
||||||
static String ResolveAddress(const IpAddress& address, String* service = nullptr, ResolveError* error = nullptr);
|
static std::string ResolveAddress(const IpAddress& address, std::string* service = nullptr, ResolveError* error = nullptr);
|
||||||
static std::vector<HostnameInfo> ResolveHostname(NetProtocol procol, const String& hostname, const String& protocol = "http", ResolveError* error = nullptr);
|
static std::vector<HostnameInfo> ResolveHostname(NetProtocol procol, const std::string& hostname, const std::string& protocol = "http", ResolveError* error = nullptr);
|
||||||
|
|
||||||
inline friend std::ostream& operator<<(std::ostream& out, const IpAddress& address);
|
inline friend std::ostream& operator<<(std::ostream& out, const IpAddress& address);
|
||||||
|
|
||||||
|
|
@ -91,7 +91,7 @@ namespace Nz
|
||||||
IpAddress address;
|
IpAddress address;
|
||||||
NetProtocol protocol;
|
NetProtocol protocol;
|
||||||
SocketType socketType;
|
SocketType socketType;
|
||||||
String canonicalName;
|
std::string canonicalName;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -199,7 +199,6 @@ namespace Nz
|
||||||
* \param out The stream
|
* \param out The stream
|
||||||
* \param address The address to output
|
* \param address The address to output
|
||||||
*/
|
*/
|
||||||
|
|
||||||
inline std::ostream& operator<<(std::ostream& out, const IpAddress& address)
|
inline std::ostream& operator<<(std::ostream& out, const IpAddress& address)
|
||||||
{
|
{
|
||||||
out << "IpAddress(" << address.ToString() << ')';
|
out << "IpAddress(" << address.ToString() << ')';
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ namespace Nz
|
||||||
inline void Close();
|
inline void Close();
|
||||||
|
|
||||||
bool Connect(const IpAddress& remoteAddress);
|
bool Connect(const IpAddress& remoteAddress);
|
||||||
bool Connect(const String& hostName, NetProtocol protocol = NetProtocol_Any, const String& service = "http", ResolveError* error = nullptr);
|
bool Connect(const std::string& hostName, NetProtocol protocol = NetProtocol_Any, const std::string& service = "http", ResolveError* error = nullptr);
|
||||||
inline void Disconnect();
|
inline void Disconnect();
|
||||||
|
|
||||||
inline IpAddress GetBoundAddress() const;
|
inline IpAddress GetBoundAddress() const;
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@
|
||||||
#include <Nazara/Core/Stream.hpp>
|
#include <Nazara/Core/Stream.hpp>
|
||||||
#include <Nazara/Network/AbstractSocket.hpp>
|
#include <Nazara/Network/AbstractSocket.hpp>
|
||||||
#include <Nazara/Network/IpAddress.hpp>
|
#include <Nazara/Network/IpAddress.hpp>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
namespace Nz
|
namespace Nz
|
||||||
{
|
{
|
||||||
|
|
@ -28,7 +29,7 @@ namespace Nz
|
||||||
~TcpClient() = default;
|
~TcpClient() = default;
|
||||||
|
|
||||||
SocketState Connect(const IpAddress& remoteAddress);
|
SocketState Connect(const IpAddress& remoteAddress);
|
||||||
SocketState Connect(const String& hostName, NetProtocol protocol = NetProtocol_Any, const String& service = "http", ResolveError* error = nullptr);
|
SocketState Connect(const std::string& hostName, NetProtocol protocol = NetProtocol_Any, const std::string& service = "http", ResolveError* error = nullptr);
|
||||||
inline void Disconnect();
|
inline void Disconnect();
|
||||||
|
|
||||||
void EnableLowDelay(bool lowDelay);
|
void EnableLowDelay(bool lowDelay);
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,7 @@ namespace Nz
|
||||||
return &peer;
|
return &peer;
|
||||||
}
|
}
|
||||||
|
|
||||||
ENetPeer* ENetHost::Connect(const String& hostName, NetProtocol protocol, const String& service, ResolveError* error, std::size_t channelCount, UInt32 data)
|
ENetPeer* ENetHost::Connect(const std::string& hostName, NetProtocol protocol, const std::string& service, ResolveError* error, std::size_t channelCount, UInt32 data)
|
||||||
{
|
{
|
||||||
std::vector<HostnameInfo> results = IpAddress::ResolveHostname(protocol, hostName, service, error);
|
std::vector<HostnameInfo> results = IpAddress::ResolveHostname(protocol, hostName, service, error);
|
||||||
if (results.empty())
|
if (results.empty())
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,10 @@
|
||||||
|
|
||||||
#include <Nazara/Network/IpAddress.hpp>
|
#include <Nazara/Network/IpAddress.hpp>
|
||||||
#include <Nazara/Core/Error.hpp>
|
#include <Nazara/Core/Error.hpp>
|
||||||
#include <Nazara/Core/StringStream.hpp>
|
|
||||||
#include <Nazara/Network/Algorithm.hpp>
|
#include <Nazara/Network/Algorithm.hpp>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
#include <sstream>
|
||||||
|
|
||||||
#if defined(NAZARA_PLATFORM_WINDOWS)
|
#if defined(NAZARA_PLATFORM_WINDOWS)
|
||||||
#include <Nazara/Network/Win32/IpAddressImpl.hpp>
|
#include <Nazara/Network/Win32/IpAddressImpl.hpp>
|
||||||
|
|
@ -99,9 +99,9 @@ namespace Nz
|
||||||
* \remark Produces a NazaraAssert if internal protocol is invalid (should never happen)
|
* \remark Produces a NazaraAssert if internal protocol is invalid (should never happen)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
String IpAddress::ToString() const
|
std::string IpAddress::ToString() const
|
||||||
{
|
{
|
||||||
StringStream stream;
|
std::ostringstream stream;
|
||||||
|
|
||||||
if (m_isValid)
|
if (m_isValid)
|
||||||
{
|
{
|
||||||
|
|
@ -176,7 +176,7 @@ namespace Nz
|
||||||
stream << ':' << m_port;
|
stream << ':' << m_port;
|
||||||
}
|
}
|
||||||
|
|
||||||
return stream;
|
return stream.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
@ -189,12 +189,11 @@ namespace Nz
|
||||||
*
|
*
|
||||||
* \remark Produces a NazaraAssert if address is invalid
|
* \remark Produces a NazaraAssert if address is invalid
|
||||||
*/
|
*/
|
||||||
|
std::string IpAddress::ResolveAddress(const IpAddress& address, std::string* service, ResolveError* error)
|
||||||
String IpAddress::ResolveAddress(const IpAddress& address, String* service, ResolveError* error)
|
|
||||||
{
|
{
|
||||||
NazaraAssert(address.IsValid(), "Invalid address");
|
NazaraAssert(address.IsValid(), "Invalid address");
|
||||||
|
|
||||||
String hostname;
|
std::string hostname;
|
||||||
IpAddressImpl::ResolveAddress(address, &hostname, service, error);
|
IpAddressImpl::ResolveAddress(address, &hostname, service, error);
|
||||||
|
|
||||||
return hostname;
|
return hostname;
|
||||||
|
|
@ -211,8 +210,7 @@ namespace Nz
|
||||||
*
|
*
|
||||||
* \remark Produces a NazaraAssert if net protocol is set to unknown
|
* \remark Produces a NazaraAssert if net protocol is set to unknown
|
||||||
*/
|
*/
|
||||||
|
std::vector<HostnameInfo> IpAddress::ResolveHostname(NetProtocol protocol, const std::string& hostname, const std::string& service, ResolveError* error)
|
||||||
std::vector<HostnameInfo> IpAddress::ResolveHostname(NetProtocol protocol, const String& hostname, const String& service, ResolveError* error)
|
|
||||||
{
|
{
|
||||||
NazaraAssert(protocol != NetProtocol_Unknown, "Invalid protocol");
|
NazaraAssert(protocol != NetProtocol_Unknown, "Invalid protocol");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,12 +15,12 @@ namespace Nz
|
||||||
{
|
{
|
||||||
using addrinfoImpl = addrinfo;
|
using addrinfoImpl = addrinfo;
|
||||||
|
|
||||||
int GetAddressInfo(const String& hostname, const String& service, const addrinfoImpl* hints, addrinfoImpl** results)
|
int GetAddressInfo(const std::string& hostname, const std::string& service, const addrinfoImpl* hints, addrinfoImpl** results)
|
||||||
{
|
{
|
||||||
return getaddrinfo(hostname.GetConstBuffer(), service.GetConstBuffer(), hints, results);
|
return getaddrinfo(hostname.c_str(), service.c_str(), hints, results);
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetHostnameInfo(sockaddr* socketAddress, socklen_t socketLen, String* hostname, String* service, int flags)
|
int GetHostnameInfo(sockaddr* socketAddress, socklen_t socketLen, std::string* hostname, std::string* service, int flags)
|
||||||
{
|
{
|
||||||
std::array<char, NI_MAXHOST> hostnameBuffer;
|
std::array<char, NI_MAXHOST> hostnameBuffer;
|
||||||
std::array<char, NI_MAXSERV> serviceBuffer;
|
std::array<char, NI_MAXSERV> serviceBuffer;
|
||||||
|
|
@ -29,10 +29,10 @@ namespace Nz
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
{
|
{
|
||||||
if (hostname)
|
if (hostname)
|
||||||
hostname->Set(hostnameBuffer.data());
|
hostname->assign(hostnameBuffer.data());
|
||||||
|
|
||||||
if (service)
|
if (service)
|
||||||
service->Set(serviceBuffer.data());
|
service->assign(serviceBuffer.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -117,7 +117,7 @@ namespace Nz
|
||||||
return IpAddress(ip6Address, ntohs(addressv6->sin6_port));
|
return IpAddress(ip6Address, ntohs(addressv6->sin6_port));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IpAddressImpl::ResolveAddress(const IpAddress& ipAddress, String* hostname, String* service, ResolveError* error)
|
bool IpAddressImpl::ResolveAddress(const IpAddress& ipAddress, std::string* hostname, std::string* service, ResolveError* error)
|
||||||
{
|
{
|
||||||
SockAddrBuffer socketAddress;
|
SockAddrBuffer socketAddress;
|
||||||
socklen_t socketAddressLen = ToSockAddr(ipAddress, socketAddress.data());
|
socklen_t socketAddressLen = ToSockAddr(ipAddress, socketAddress.data());
|
||||||
|
|
@ -136,7 +136,7 @@ namespace Nz
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<HostnameInfo> IpAddressImpl::ResolveHostname(NetProtocol procol, const String& hostname, const String& service, ResolveError* error)
|
std::vector<HostnameInfo> IpAddressImpl::ResolveHostname(NetProtocol procol, const std::string& hostname, const std::string& service, ResolveError* error)
|
||||||
{
|
{
|
||||||
std::vector<HostnameInfo> results;
|
std::vector<HostnameInfo> results;
|
||||||
|
|
||||||
|
|
@ -165,7 +165,7 @@ namespace Nz
|
||||||
{
|
{
|
||||||
HostnameInfo result;
|
HostnameInfo result;
|
||||||
result.address = FromAddrinfo(p);
|
result.address = FromAddrinfo(p);
|
||||||
result.canonicalName = String::Unicode(p->ai_canonname);
|
result.canonicalName = p->ai_canonname;
|
||||||
result.protocol = TranslatePFToNetProtocol(p->ai_family);
|
result.protocol = TranslatePFToNetProtocol(p->ai_family);
|
||||||
result.socketType = TranslateSockToNetProtocol(p->ai_socktype);
|
result.socketType = TranslateSockToNetProtocol(p->ai_socktype);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
#define NAZARA_IPADDRESSIMPL_HPP
|
#define NAZARA_IPADDRESSIMPL_HPP
|
||||||
|
|
||||||
#include <Nazara/Network/IpAddress.hpp>
|
#include <Nazara/Network/IpAddress.hpp>
|
||||||
|
#include <string>
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
|
||||||
|
|
@ -26,8 +27,8 @@ namespace Nz
|
||||||
static IpAddress FromSockAddr(const sockaddr_in* addressv4);
|
static IpAddress FromSockAddr(const sockaddr_in* addressv4);
|
||||||
static IpAddress FromSockAddr(const sockaddr_in6* addressv6);
|
static IpAddress FromSockAddr(const sockaddr_in6* addressv6);
|
||||||
|
|
||||||
static bool ResolveAddress(const IpAddress& ipAddress, String* hostname, String* service, ResolveError* error);
|
static bool ResolveAddress(const IpAddress& ipAddress, std::string* hostname, std::string* service, ResolveError* error);
|
||||||
static std::vector<HostnameInfo> ResolveHostname(NetProtocol procol, const String& hostname, const String& service, ResolveError* error);
|
static std::vector<HostnameInfo> ResolveHostname(NetProtocol procol, const std::string& hostname, const std::string& service, ResolveError* error);
|
||||||
|
|
||||||
static socklen_t ToSockAddr(const IpAddress& ipAddress, void* buffer);
|
static socklen_t ToSockAddr(const IpAddress& ipAddress, void* buffer);
|
||||||
static NetProtocol TranslatePFToNetProtocol(int family);
|
static NetProtocol TranslatePFToNetProtocol(int family);
|
||||||
|
|
@ -36,4 +37,4 @@ namespace Nz
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // NAZARA_IPADDRESSIMPL_HPP
|
#endif // NAZARA_IPADDRESSIMPL_HPP
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ namespace Nz
|
||||||
* \param error Optional argument to get the error
|
* \param error Optional argument to get the error
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool RUdpConnection::Connect(const String& hostName, NetProtocol protocol, const String& service, ResolveError* error)
|
bool RUdpConnection::Connect(const std::string& hostName, NetProtocol protocol, const std::string& service, ResolveError* error)
|
||||||
{
|
{
|
||||||
std::vector<HostnameInfo> results = IpAddress::ResolveHostname(protocol, hostName, service, error);
|
std::vector<HostnameInfo> results = IpAddress::ResolveHostname(protocol, hostName, service, error);
|
||||||
if (results.empty())
|
if (results.empty())
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ namespace Nz
|
||||||
* \param error Optional argument to get the error
|
* \param error Optional argument to get the error
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SocketState TcpClient::Connect(const String& hostName, NetProtocol protocol, const String& service, ResolveError* error)
|
SocketState TcpClient::Connect(const std::string& hostName, NetProtocol protocol, const std::string& service, ResolveError* error)
|
||||||
{
|
{
|
||||||
UpdateState(SocketState_Resolving);
|
UpdateState(SocketState_Resolving);
|
||||||
std::vector<HostnameInfo> results = IpAddress::ResolveHostname(protocol, hostName, service, error);
|
std::vector<HostnameInfo> results = IpAddress::ResolveHostname(protocol, hostName, service, error);
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
#include <Nazara/Network/Win32/IpAddressImpl.hpp>
|
#include <Nazara/Network/Win32/IpAddressImpl.hpp>
|
||||||
#include <Nazara/Core/CallOnExit.hpp>
|
#include <Nazara/Core/CallOnExit.hpp>
|
||||||
#include <Nazara/Core/Error.hpp>
|
#include <Nazara/Core/Error.hpp>
|
||||||
|
#include <Nazara/Core/StringExt.hpp>
|
||||||
#include <Nazara/Network/Win32/SocketImpl.hpp>
|
#include <Nazara/Network/Win32/SocketImpl.hpp>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <Nazara/Network/Debug.hpp>
|
#include <Nazara/Network/Debug.hpp>
|
||||||
|
|
@ -25,12 +26,12 @@ namespace Nz
|
||||||
#if NAZARA_CORE_WINDOWS_NT6
|
#if NAZARA_CORE_WINDOWS_NT6
|
||||||
using addrinfoImpl = addrinfoW;
|
using addrinfoImpl = addrinfoW;
|
||||||
|
|
||||||
int GetAddressInfo(const String& hostname, const String& service, const addrinfoImpl* hints, addrinfoImpl** results)
|
int GetAddressInfo(const std::string& hostname, const std::string& service, const addrinfoImpl* hints, addrinfoImpl** results)
|
||||||
{
|
{
|
||||||
return GetAddrInfoW(hostname.GetWideString().c_str(), service.GetWideString().c_str(), hints, results);
|
return GetAddrInfoW(ToWideString(hostname).c_str(), ToWideString(service).c_str(), hints, results);
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetHostnameInfo(sockaddr* socketAddress, socklen_t socketLen, String* hostname, String* service, INT flags)
|
int GetHostnameInfo(sockaddr* socketAddress, socklen_t socketLen, std::string* hostname, std::string* service, INT flags)
|
||||||
{
|
{
|
||||||
std::array<wchar_t, NI_MAXHOST> hostnameBuffer;
|
std::array<wchar_t, NI_MAXHOST> hostnameBuffer;
|
||||||
std::array<wchar_t, NI_MAXSERV> serviceBuffer;
|
std::array<wchar_t, NI_MAXSERV> serviceBuffer;
|
||||||
|
|
@ -39,10 +40,10 @@ namespace Nz
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
{
|
{
|
||||||
if (hostname)
|
if (hostname)
|
||||||
*hostname = std::move(String::Unicode(hostnameBuffer.data()));
|
*hostname = FromWideString(hostnameBuffer.data());
|
||||||
|
|
||||||
if (service)
|
if (service)
|
||||||
*service = std::move(String::Unicode(serviceBuffer.data()));
|
*service = FromWideString(serviceBuffer.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -52,15 +53,20 @@ namespace Nz
|
||||||
{
|
{
|
||||||
FreeAddrInfoW(results);
|
FreeAddrInfoW(results);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string TranslateCanonicalName(const wchar_t* str)
|
||||||
|
{
|
||||||
|
return FromWideString(str);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
using addrinfoImpl = addrinfo;
|
using addrinfoImpl = addrinfo;
|
||||||
|
|
||||||
int GetAddressInfo(const String& hostname, const String& service, const addrinfoImpl* hints, addrinfoImpl** results)
|
int GetAddressInfo(const std::string& hostname, const std::string& service, const addrinfoImpl* hints, addrinfoImpl** results)
|
||||||
{
|
{
|
||||||
return getaddrinfo(hostname.GetConstBuffer(), service.GetConstBuffer(), hints, results);
|
return getaddrinfo(hostname.c_str(), service.c_str(), hints, results);
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetHostnameInfo(sockaddr* socketAddress, socklen_t socketLen, String* hostname, String* service, INT flags)
|
int GetHostnameInfo(sockaddr* socketAddress, socklen_t socketLen, std::string* hostname, std::string* service, INT flags)
|
||||||
{
|
{
|
||||||
std::array<char, NI_MAXHOST> hostnameBuffer;
|
std::array<char, NI_MAXHOST> hostnameBuffer;
|
||||||
std::array<char, NI_MAXSERV> serviceBuffer;
|
std::array<char, NI_MAXSERV> serviceBuffer;
|
||||||
|
|
@ -69,10 +75,10 @@ namespace Nz
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
{
|
{
|
||||||
if (hostname)
|
if (hostname)
|
||||||
hostname->Set(hostnameBuffer.data());
|
hostname->assign(hostnameBuffer.data());
|
||||||
|
|
||||||
if (service)
|
if (service)
|
||||||
service->Set(serviceBuffer.data());
|
service->assign(serviceBuffer.data());
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -82,6 +88,11 @@ namespace Nz
|
||||||
{
|
{
|
||||||
freeaddrinfo(results);
|
freeaddrinfo(results);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string TranslateCanonicalName(const char* str)
|
||||||
|
{
|
||||||
|
return str;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -162,7 +173,7 @@ namespace Nz
|
||||||
return IpAddress(ipv6, ntohs(addressv6->sin6_port));
|
return IpAddress(ipv6, ntohs(addressv6->sin6_port));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IpAddressImpl::ResolveAddress(const IpAddress& ipAddress, String* hostname, String* service, ResolveError* error)
|
bool IpAddressImpl::ResolveAddress(const IpAddress& ipAddress, std::string* hostname, std::string* service, ResolveError* error)
|
||||||
{
|
{
|
||||||
SockAddrBuffer socketAddress;
|
SockAddrBuffer socketAddress;
|
||||||
socklen_t socketAddressLen = ToSockAddr(ipAddress, socketAddress.data());
|
socklen_t socketAddressLen = ToSockAddr(ipAddress, socketAddress.data());
|
||||||
|
|
@ -181,7 +192,7 @@ namespace Nz
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<HostnameInfo> IpAddressImpl::ResolveHostname(NetProtocol procol, const String& hostname, const String& service, ResolveError* error)
|
std::vector<HostnameInfo> IpAddressImpl::ResolveHostname(NetProtocol procol, const std::string& hostname, const std::string& service, ResolveError* error)
|
||||||
{
|
{
|
||||||
std::vector<HostnameInfo> results;
|
std::vector<HostnameInfo> results;
|
||||||
|
|
||||||
|
|
@ -209,7 +220,7 @@ namespace Nz
|
||||||
{
|
{
|
||||||
HostnameInfo result;
|
HostnameInfo result;
|
||||||
result.address = FromAddrinfo(p);
|
result.address = FromAddrinfo(p);
|
||||||
result.canonicalName = String::Unicode(p->ai_canonname);
|
result.canonicalName = Detail::TranslateCanonicalName(p->ai_canonname);
|
||||||
result.protocol = TranslatePFToNetProtocol(p->ai_family);
|
result.protocol = TranslatePFToNetProtocol(p->ai_family);
|
||||||
result.socketType = TranslateSockToNetProtocol(p->ai_socktype);
|
result.socketType = TranslateSockToNetProtocol(p->ai_socktype);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
#define NAZARA_IPADDRESSIMPL_HPP
|
#define NAZARA_IPADDRESSIMPL_HPP
|
||||||
|
|
||||||
#include <Nazara/Network/IpAddress.hpp>
|
#include <Nazara/Network/IpAddress.hpp>
|
||||||
|
#include <string>
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
|
|
||||||
|
|
@ -29,8 +30,8 @@ namespace Nz
|
||||||
static IpAddress FromSockAddr(const sockaddr_in* addressv4);
|
static IpAddress FromSockAddr(const sockaddr_in* addressv4);
|
||||||
static IpAddress FromSockAddr(const sockaddr_in6* addressv6);
|
static IpAddress FromSockAddr(const sockaddr_in6* addressv6);
|
||||||
|
|
||||||
static bool ResolveAddress(const IpAddress& ipAddress, String* hostname, String* service, ResolveError* error);
|
static bool ResolveAddress(const IpAddress& ipAddress, std::string* hostname, std::string* service, ResolveError* error);
|
||||||
static std::vector<HostnameInfo> ResolveHostname(NetProtocol procol, const String& hostname, const String& service, ResolveError* error);
|
static std::vector<HostnameInfo> ResolveHostname(NetProtocol procol, const std::string& hostname, const std::string& service, ResolveError* error);
|
||||||
|
|
||||||
static socklen_t ToSockAddr(const IpAddress& ipAddress, void* buffer);
|
static socklen_t ToSockAddr(const IpAddress& ipAddress, void* buffer);
|
||||||
static NetProtocol TranslatePFToNetProtocol(int family);
|
static NetProtocol TranslatePFToNetProtocol(int family);
|
||||||
|
|
@ -39,4 +40,4 @@ namespace Nz
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // NAZARA_IPADDRESSIMPL_HPP
|
#endif // NAZARA_IPADDRESSIMPL_HPP
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue