Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/ntdll/unix/socket.c | 6 ++++++ dlls/ws2_32/socket.c | 6 +++--- include/wine/afd.h | 1 + 3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/dlls/ntdll/unix/socket.c b/dlls/ntdll/unix/socket.c index f862aa3e21b..a727841e917 100644 --- a/dlls/ntdll/unix/socket.c +++ b/dlls/ntdll/unix/socket.c @@ -1773,9 +1773,15 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc #ifdef IP_PKTINFO case IOCTL_AFD_WINE_GET_IP_PKTINFO: return do_getsockopt( handle, io, IPPROTO_IP, IP_PKTINFO, out_buffer, out_size ); + + case IOCTL_AFD_WINE_SET_IP_PKTINFO: + return do_setsockopt( handle, io, IPPROTO_IP, IP_PKTINFO, in_buffer, in_size ); #elif defined(IP_RECVDSTADDR) case IOCTL_AFD_WINE_GET_IP_PKTINFO: return do_getsockopt( handle, io, IPPROTO_IP, IP_RECVDSTADDR, out_buffer, out_size ); + + case IOCTL_AFD_WINE_SET_IP_PKTINFO: + return do_setsockopt( handle, io, IPPROTO_IP, IP_RECVDSTADDR, in_buffer, in_size ); #endif
default: diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 1cd1934a11e..37f72c9d62e 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -3666,6 +3666,9 @@ int WINAPI WS_setsockopt(SOCKET s, int level, int optname, case WS_IP_OPTIONS: return server_setsockopt( s, IOCTL_AFD_WINE_SET_IP_OPTIONS, optval, optlen );
+ case WS_IP_PKTINFO: + return server_setsockopt( s, IOCTL_AFD_WINE_SET_IP_PKTINFO, optval, optlen ); + case WS_IP_UNBLOCK_SOURCE: { WS_IP_MREQ_SOURCE* val = (void*)optval; @@ -3679,9 +3682,6 @@ int WINAPI WS_setsockopt(SOCKET s, int level, int optname, convert_sockopt(&level, &optname); break; } -#if defined(IP_PKTINFO) || defined(IP_RECVDSTADDR) - case WS_IP_PKTINFO: -#endif case WS_IP_TOS: case WS_IP_TTL: #ifdef IP_UNICAST_IF diff --git a/include/wine/afd.h b/include/wine/afd.h index 3522e2444f5..fde0fe6db94 100644 --- a/include/wine/afd.h +++ b/include/wine/afd.h @@ -199,6 +199,7 @@ struct afd_get_events_params #define IOCTL_AFD_WINE_GET_IP_OPTIONS WINE_AFD_IOC(254) #define IOCTL_AFD_WINE_SET_IP_OPTIONS WINE_AFD_IOC(255) #define IOCTL_AFD_WINE_GET_IP_PKTINFO WINE_AFD_IOC(256) +#define IOCTL_AFD_WINE_SET_IP_PKTINFO WINE_AFD_IOC(257)
struct afd_create_params {