ws2_32: Fix the indentation of SIO_ROUTING_INTERFACE_QUERY.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
37c6790fb7
commit
306b244107
|
@ -3428,63 +3428,64 @@ INT WINAPI WSAIoctl(SOCKET s, DWORD code, LPVOID in_buff, DWORD in_size, LPVOID
|
|||
return ret ? -1 : 0;
|
||||
}
|
||||
|
||||
case WS_SIO_ROUTING_INTERFACE_QUERY:
|
||||
{
|
||||
struct WS_sockaddr *daddr = (struct WS_sockaddr *)in_buff;
|
||||
struct WS_sockaddr_in *daddr_in = (struct WS_sockaddr_in *)daddr;
|
||||
struct WS_sockaddr_in *saddr_in = out_buff;
|
||||
MIB_IPFORWARDROW row;
|
||||
PMIB_IPADDRTABLE ipAddrTable = NULL;
|
||||
DWORD size, i, found_index;
|
||||
case WS_SIO_ROUTING_INTERFACE_QUERY:
|
||||
{
|
||||
struct WS_sockaddr *daddr = (struct WS_sockaddr *)in_buff;
|
||||
struct WS_sockaddr_in *daddr_in = (struct WS_sockaddr_in *)daddr;
|
||||
struct WS_sockaddr_in *saddr_in = out_buff;
|
||||
MIB_IPFORWARDROW row;
|
||||
PMIB_IPADDRTABLE ipAddrTable = NULL;
|
||||
DWORD size, i, found_index;
|
||||
|
||||
TRACE("-> WS_SIO_ROUTING_INTERFACE_QUERY request\n");
|
||||
TRACE( "-> WS_SIO_ROUTING_INTERFACE_QUERY request\n" );
|
||||
|
||||
if (!in_buff || in_size < sizeof(struct WS_sockaddr) ||
|
||||
!out_buff || out_size < sizeof(struct WS_sockaddr_in))
|
||||
{
|
||||
SetLastError( WSAEFAULT );
|
||||
return -1;
|
||||
}
|
||||
if (daddr->sa_family != WS_AF_INET)
|
||||
{
|
||||
FIXME("unsupported address family %d\n", daddr->sa_family);
|
||||
status = WSAEAFNOSUPPORT;
|
||||
break;
|
||||
}
|
||||
if (GetBestRoute( daddr_in->sin_addr.S_un.S_addr, 0, &row ) != NOERROR ||
|
||||
GetIpAddrTable( NULL, &size, FALSE ) != ERROR_INSUFFICIENT_BUFFER)
|
||||
{
|
||||
status = WSAEFAULT;
|
||||
break;
|
||||
}
|
||||
ipAddrTable = HeapAlloc( GetProcessHeap(), 0, size );
|
||||
if (GetIpAddrTable( ipAddrTable, &size, FALSE ))
|
||||
{
|
||||
HeapFree( GetProcessHeap(), 0, ipAddrTable );
|
||||
status = WSAEFAULT;
|
||||
break;
|
||||
}
|
||||
for (i = 0, found_index = ipAddrTable->dwNumEntries;
|
||||
i < ipAddrTable->dwNumEntries; i++)
|
||||
{
|
||||
if (ipAddrTable->table[i].dwIndex == row.dwForwardIfIndex)
|
||||
found_index = i;
|
||||
}
|
||||
if (found_index == ipAddrTable->dwNumEntries)
|
||||
{
|
||||
ERR("no matching IP address for interface %d\n",
|
||||
row.dwForwardIfIndex);
|
||||
HeapFree( GetProcessHeap(), 0, ipAddrTable );
|
||||
status = WSAEFAULT;
|
||||
break;
|
||||
}
|
||||
saddr_in->sin_family = WS_AF_INET;
|
||||
saddr_in->sin_addr.S_un.S_addr = ipAddrTable->table[found_index].dwAddr;
|
||||
saddr_in->sin_port = 0;
|
||||
total = sizeof(struct WS_sockaddr_in);
|
||||
HeapFree( GetProcessHeap(), 0, ipAddrTable );
|
||||
break;
|
||||
}
|
||||
|
||||
if (!in_buff || in_size < sizeof(struct WS_sockaddr) ||
|
||||
!out_buff || out_size < sizeof(struct WS_sockaddr_in))
|
||||
{
|
||||
SetLastError(WSAEFAULT);
|
||||
return SOCKET_ERROR;
|
||||
}
|
||||
if (daddr->sa_family != WS_AF_INET)
|
||||
{
|
||||
FIXME("unsupported address family %d\n", daddr->sa_family);
|
||||
status = WSAEAFNOSUPPORT;
|
||||
break;
|
||||
}
|
||||
if (GetBestRoute(daddr_in->sin_addr.S_un.S_addr, 0, &row) != NOERROR ||
|
||||
GetIpAddrTable(NULL, &size, FALSE) != ERROR_INSUFFICIENT_BUFFER)
|
||||
{
|
||||
status = WSAEFAULT;
|
||||
break;
|
||||
}
|
||||
ipAddrTable = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
if (GetIpAddrTable(ipAddrTable, &size, FALSE))
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, ipAddrTable);
|
||||
status = WSAEFAULT;
|
||||
break;
|
||||
}
|
||||
for (i = 0, found_index = ipAddrTable->dwNumEntries;
|
||||
i < ipAddrTable->dwNumEntries; i++)
|
||||
{
|
||||
if (ipAddrTable->table[i].dwIndex == row.dwForwardIfIndex)
|
||||
found_index = i;
|
||||
}
|
||||
if (found_index == ipAddrTable->dwNumEntries)
|
||||
{
|
||||
ERR("no matching IP address for interface %d\n",
|
||||
row.dwForwardIfIndex);
|
||||
HeapFree(GetProcessHeap(), 0, ipAddrTable);
|
||||
status = WSAEFAULT;
|
||||
break;
|
||||
}
|
||||
saddr_in->sin_family = WS_AF_INET;
|
||||
saddr_in->sin_addr.S_un.S_addr = ipAddrTable->table[found_index].dwAddr;
|
||||
saddr_in->sin_port = 0;
|
||||
total = sizeof(struct WS_sockaddr_in);
|
||||
HeapFree(GetProcessHeap(), 0, ipAddrTable);
|
||||
break;
|
||||
}
|
||||
case WS_SIO_SET_COMPATIBILITY_MODE:
|
||||
TRACE("WS_SIO_SET_COMPATIBILITY_MODE ignored\n");
|
||||
status = WSAEOPNOTSUPP;
|
||||
|
|
Loading…
Reference in New Issue