Commit c6806e3f authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

ws2_32: Translate SIO_ADDRESS_LIST_CHANGE into a proper NT ioctl.

parent 8fb897a5
......@@ -5164,6 +5164,10 @@ INT WINAPI WSAIoctl(SOCKET s, DWORD code, LPVOID in_buff, DWORD in_size, LPVOID
case 0x667e: /* Netscape tries hard to use bogus ioctl 0x667e */
SetLastError(WSAEOPNOTSUPP);
return SOCKET_ERROR;
case WS_SIO_ADDRESS_LIST_CHANGE:
code = IOCTL_AFD_ADDRESS_LIST_CHANGE;
status = WSAEOPNOTSUPP;
break;
default:
status = WSAEOPNOTSUPP;
break;
......
......@@ -25,6 +25,8 @@
#define IOCTL_AFD_CREATE CTL_CODE(FILE_DEVICE_NETWORK, 200, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_AFD_ADDRESS_LIST_CHANGE CTL_CODE(FILE_DEVICE_NETWORK, 323, METHOD_BUFFERED, 0)
struct afd_create_params
{
int family, type, protocol;
......
......@@ -562,7 +562,7 @@ static int sock_ioctl( struct fd *fd, ioctl_code_t code, struct async *async )
return 0;
}
case WS_SIO_ADDRESS_LIST_CHANGE:
case IOCTL_AFD_ADDRESS_LIST_CHANGE:
if ((sock->state & FD_WINE_NONBLOCKING) && async_is_blocking( async ))
{
set_win32_error( WSAEWOULDBLOCK );
......@@ -572,6 +572,7 @@ static int sock_ioctl( struct fd *fd, ioctl_code_t code, struct async *async )
queue_async( &sock->ifchange_q, async );
set_error( STATUS_PENDING );
return 1;
default:
set_error( STATUS_NOT_SUPPORTED );
return 0;
......
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