1
0

IPv6 support: fixed IP string getting on accept()

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1256 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft
2013-03-05 13:35:19 +00:00
parent ea750b9745
commit fcdc68fd8e
4 changed files with 23 additions and 17 deletions

View File

@@ -265,37 +265,40 @@ bool cSocket::Listen(int a_Backlog)
cSocket cSocket::Accept()
cSocket cSocket::AcceptIPv4(void)
{
sockaddr_in from;
socklen_t fromlen=sizeof(from);
socklen_t fromlen = sizeof(from);
cSocket SClient = accept(m_Socket, (sockaddr*)&from, &fromlen);
cSocket SClient = accept(m_Socket, (sockaddr *)&from, &fromlen);
if (SClient.IsValid() && (from.sin_addr.s_addr != 0)) // Get IP in string form
{
SClient.m_IPString = inet_ntoa(from.sin_addr);
}
return SClient;
}
/*
int cSocket::Connect(SockAddr_In & a_Address)
cSocket cSocket::AcceptIPv6(void)
{
sockaddr_in local;
sockaddr_in6 from;
socklen_t fromlen = sizeof(from);
local.sin_family = a_Address.Family;
local.sin_addr.s_addr = a_Address.Address;
local.sin_port = htons((u_short)a_Address.Port);
cSocket SClient = accept(m_Socket, (sockaddr *)&from, &fromlen);
return connect(m_Socket, (sockaddr *)&local, sizeof(local));
// Get IP in string form:
if (SClient.IsValid())
{
char buffer[INET6_ADDRSTRLEN];
inet_ntop(AF_INET6, &(from.sin6_addr), buffer, sizeof(buffer));
SClient.m_IPString.assign(buffer);
}
return SClient;
}
*/