Network/SocketImpl: Add query methods
I'm still not sure I will use them Former-commit-id: 1c023a51372b6864ebd7f09142ff9adeced72dd0
This commit is contained in:
parent
1b4ac70ac3
commit
0cda3c1d14
|
|
@ -275,6 +275,44 @@ namespace Nz
|
||||||
return availableBytes;
|
return availableBytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SocketImpl::QueryBroadcasting(SocketHandle handle, SocketError* error)
|
||||||
|
{
|
||||||
|
BOOL code;
|
||||||
|
int codeLength = sizeof(code);
|
||||||
|
|
||||||
|
if (getsockopt(handle, SOL_SOCKET, SO_BROADCAST, reinterpret_cast<char*>(&code), &codeLength) == SOCKET_ERROR)
|
||||||
|
{
|
||||||
|
if (error)
|
||||||
|
*error = TranslateWSAErrorToSocketError(WSAGetLastError());
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (error)
|
||||||
|
*error = SocketError_NoError;
|
||||||
|
|
||||||
|
return code == TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SocketImpl::QueryKeepAlive(SocketHandle handle, SocketError* error)
|
||||||
|
{
|
||||||
|
BOOL code;
|
||||||
|
int codeLength = sizeof(code);
|
||||||
|
|
||||||
|
if (getsockopt(handle, SOL_SOCKET, SO_KEEPALIVE, reinterpret_cast<char*>(&code), &codeLength) == SOCKET_ERROR)
|
||||||
|
{
|
||||||
|
if (error)
|
||||||
|
*error = TranslateWSAErrorToSocketError(WSAGetLastError());
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (error)
|
||||||
|
*error = SocketError_NoError;
|
||||||
|
|
||||||
|
return code == TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
unsigned int SocketImpl::QueryMaxDatagramSize(SocketHandle handle, SocketError* error)
|
unsigned int SocketImpl::QueryMaxDatagramSize(SocketHandle handle, SocketError* error)
|
||||||
{
|
{
|
||||||
unsigned int code;
|
unsigned int code;
|
||||||
|
|
@ -294,6 +332,25 @@ namespace Nz
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SocketImpl::QueryNoDelay(SocketHandle handle, SocketError* error)
|
||||||
|
{
|
||||||
|
BOOL code;
|
||||||
|
int codeLength = sizeof(code);
|
||||||
|
|
||||||
|
if (getsockopt(handle, IPPROTO_TCP, TCP_NODELAY, reinterpret_cast<char*>(&code), &codeLength) == SOCKET_ERROR)
|
||||||
|
{
|
||||||
|
if (error)
|
||||||
|
*error = TranslateWSAErrorToSocketError(WSAGetLastError());
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (error)
|
||||||
|
*error = SocketError_NoError;
|
||||||
|
|
||||||
|
return code == TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
IpAddress SocketImpl::QueryPeerAddress(SocketHandle handle, SocketError* error)
|
IpAddress SocketImpl::QueryPeerAddress(SocketHandle handle, SocketError* error)
|
||||||
{
|
{
|
||||||
NazaraAssert(handle != InvalidHandle, "Invalid handle");
|
NazaraAssert(handle != InvalidHandle, "Invalid handle");
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,10 @@ namespace Nz
|
||||||
static SocketState Listen(SocketHandle handle, const IpAddress& address, unsigned queueSize, SocketError* error);
|
static SocketState Listen(SocketHandle handle, const IpAddress& address, unsigned queueSize, SocketError* error);
|
||||||
|
|
||||||
static unsigned int QueryAvailableBytes(SocketHandle handle, SocketError* error = nullptr);
|
static unsigned int QueryAvailableBytes(SocketHandle handle, SocketError* error = nullptr);
|
||||||
|
static bool QueryBroadcasting(SocketHandle handle, SocketError* error = nullptr);
|
||||||
|
static bool QueryKeepAlive(SocketHandle handle, SocketError* error = nullptr);
|
||||||
static unsigned int QueryMaxDatagramSize(SocketHandle handle, SocketError* error = nullptr);
|
static unsigned int QueryMaxDatagramSize(SocketHandle handle, SocketError* error = nullptr);
|
||||||
|
static bool QueryNoDelay(SocketHandle handle, SocketError* error = nullptr);
|
||||||
static IpAddress QueryPeerAddress(SocketHandle handle, SocketError* error = nullptr);
|
static IpAddress QueryPeerAddress(SocketHandle handle, SocketError* error = nullptr);
|
||||||
static IpAddress QuerySocketAddress(SocketHandle handle, SocketError* error = nullptr);
|
static IpAddress QuerySocketAddress(SocketHandle handle, SocketError* error = nullptr);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue