Commit 306b2441 authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

ws2_32: Fix the indentation of SIO_ROUTING_INTERFACE_QUERY.

parent 37c6790f
......@@ -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;
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 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_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" );
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;
}
case WS_SIO_SET_COMPATIBILITY_MODE:
TRACE("WS_SIO_SET_COMPATIBILITY_MODE ignored\n");
status = WSAEOPNOTSUPP;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment