Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/ntdll/unix/socket.c | 3 +++ dlls/ws2_32/socket.c | 4 +++- include/wine/afd.h | 1 + 3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/socket.c b/dlls/ntdll/unix/socket.c index 85763d032ed..12a6ef418ba 100644 --- a/dlls/ntdll/unix/socket.c +++ b/dlls/ntdll/unix/socket.c @@ -1867,6 +1867,9 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc case IOCTL_AFD_WINE_GET_IPV6_MULTICAST_HOPS: return do_getsockopt( handle, io, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, out_buffer, out_size );
+ case IOCTL_AFD_WINE_SET_IPV6_MULTICAST_HOPS: + return do_setsockopt( handle, io, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, in_buffer, in_size ); + default: { if ((code >> 16) == FILE_DEVICE_NETWORK) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 9c2d58827ba..902f9e07b48 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -3627,8 +3627,10 @@ int WINAPI WS_setsockopt(SOCKET s, int level, int optname, case WS_IPV6_DROP_MEMBERSHIP: return server_setsockopt( s, IOCTL_AFD_WINE_SET_IPV6_DROP_MEMBERSHIP, optval, optlen );
- case WS_IPV6_MULTICAST_IF: case WS_IPV6_MULTICAST_HOPS: + return server_setsockopt( s, IOCTL_AFD_WINE_SET_IPV6_MULTICAST_HOPS, optval, optlen ); + + case WS_IPV6_MULTICAST_IF: case WS_IPV6_MULTICAST_LOOP: case WS_IPV6_UNICAST_HOPS: #ifdef IPV6_UNICAST_IF diff --git a/include/wine/afd.h b/include/wine/afd.h index 0f04cc824a8..2c0f1a1e23c 100644 --- a/include/wine/afd.h +++ b/include/wine/afd.h @@ -212,6 +212,7 @@ struct afd_get_events_params #define IOCTL_AFD_WINE_SET_IPV6_DONTFRAG WINE_AFD_IOC(267) #define IOCTL_AFD_WINE_SET_IPV6_DROP_MEMBERSHIP WINE_AFD_IOC(268) #define IOCTL_AFD_WINE_GET_IPV6_MULTICAST_HOPS WINE_AFD_IOC(269) +#define IOCTL_AFD_WINE_SET_IPV6_MULTICAST_HOPS WINE_AFD_IOC(270)
struct afd_create_params {
Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/ntdll/unix/socket.c | 3 +++ dlls/ws2_32/socket.c | 2 ++ include/wine/afd.h | 1 + 3 files changed, 6 insertions(+)
diff --git a/dlls/ntdll/unix/socket.c b/dlls/ntdll/unix/socket.c index 12a6ef418ba..f0876c4c13a 100644 --- a/dlls/ntdll/unix/socket.c +++ b/dlls/ntdll/unix/socket.c @@ -1870,6 +1870,9 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc case IOCTL_AFD_WINE_SET_IPV6_MULTICAST_HOPS: return do_setsockopt( handle, io, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, in_buffer, in_size );
+ case IOCTL_AFD_WINE_GET_IPV6_MULTICAST_IF: + return do_getsockopt( handle, io, IPPROTO_IPV6, IPV6_MULTICAST_IF, out_buffer, out_size ); + default: { if ((code >> 16) == FILE_DEVICE_NETWORK) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 902f9e07b48..e41c5983e48 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -2416,6 +2416,8 @@ INT WINAPI WS_getsockopt(SOCKET s, INT level, return server_getsockopt( s, IOCTL_AFD_WINE_GET_IPV6_MULTICAST_HOPS, optval, optlen );
case WS_IPV6_MULTICAST_IF: + return server_getsockopt( s, IOCTL_AFD_WINE_GET_IPV6_MULTICAST_IF, optval, optlen ); + case WS_IPV6_MULTICAST_LOOP: case WS_IPV6_UNICAST_HOPS: case WS_IPV6_V6ONLY: diff --git a/include/wine/afd.h b/include/wine/afd.h index 2c0f1a1e23c..30753cb93ab 100644 --- a/include/wine/afd.h +++ b/include/wine/afd.h @@ -213,6 +213,7 @@ struct afd_get_events_params #define IOCTL_AFD_WINE_SET_IPV6_DROP_MEMBERSHIP WINE_AFD_IOC(268) #define IOCTL_AFD_WINE_GET_IPV6_MULTICAST_HOPS WINE_AFD_IOC(269) #define IOCTL_AFD_WINE_SET_IPV6_MULTICAST_HOPS WINE_AFD_IOC(270) +#define IOCTL_AFD_WINE_GET_IPV6_MULTICAST_IF WINE_AFD_IOC(271)
struct afd_create_params {
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=94655
Your paranoid android.
=== debiant2 (32 bit report) ===
ws2_32: afd.c:336: Test failed: got flags 0x43 afd.c:342: Test failed: got flags 0x41
Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/ntdll/unix/socket.c | 3 +++ dlls/ws2_32/socket.c | 2 ++ include/wine/afd.h | 1 + 3 files changed, 6 insertions(+)
diff --git a/dlls/ntdll/unix/socket.c b/dlls/ntdll/unix/socket.c index f0876c4c13a..123b5323674 100644 --- a/dlls/ntdll/unix/socket.c +++ b/dlls/ntdll/unix/socket.c @@ -1873,6 +1873,9 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc case IOCTL_AFD_WINE_GET_IPV6_MULTICAST_IF: return do_getsockopt( handle, io, IPPROTO_IPV6, IPV6_MULTICAST_IF, out_buffer, out_size );
+ case IOCTL_AFD_WINE_SET_IPV6_MULTICAST_IF: + return do_setsockopt( handle, io, IPPROTO_IPV6, IPV6_MULTICAST_IF, in_buffer, in_size ); + default: { if ((code >> 16) == FILE_DEVICE_NETWORK) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index e41c5983e48..8548e7bf3a7 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -3633,6 +3633,8 @@ int WINAPI WS_setsockopt(SOCKET s, int level, int optname, return server_setsockopt( s, IOCTL_AFD_WINE_SET_IPV6_MULTICAST_HOPS, optval, optlen );
case WS_IPV6_MULTICAST_IF: + return server_setsockopt( s, IOCTL_AFD_WINE_SET_IPV6_MULTICAST_IF, optval, optlen ); + case WS_IPV6_MULTICAST_LOOP: case WS_IPV6_UNICAST_HOPS: #ifdef IPV6_UNICAST_IF diff --git a/include/wine/afd.h b/include/wine/afd.h index 30753cb93ab..284e8f55bc4 100644 --- a/include/wine/afd.h +++ b/include/wine/afd.h @@ -214,6 +214,7 @@ struct afd_get_events_params #define IOCTL_AFD_WINE_GET_IPV6_MULTICAST_HOPS WINE_AFD_IOC(269) #define IOCTL_AFD_WINE_SET_IPV6_MULTICAST_HOPS WINE_AFD_IOC(270) #define IOCTL_AFD_WINE_GET_IPV6_MULTICAST_IF WINE_AFD_IOC(271) +#define IOCTL_AFD_WINE_SET_IPV6_MULTICAST_IF WINE_AFD_IOC(272)
struct afd_create_params {
Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/ntdll/unix/socket.c | 3 +++ dlls/ws2_32/socket.c | 2 ++ include/wine/afd.h | 1 + 3 files changed, 6 insertions(+)
diff --git a/dlls/ntdll/unix/socket.c b/dlls/ntdll/unix/socket.c index 123b5323674..14bdaed19f7 100644 --- a/dlls/ntdll/unix/socket.c +++ b/dlls/ntdll/unix/socket.c @@ -1876,6 +1876,9 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc case IOCTL_AFD_WINE_SET_IPV6_MULTICAST_IF: return do_setsockopt( handle, io, IPPROTO_IPV6, IPV6_MULTICAST_IF, in_buffer, in_size );
+ case IOCTL_AFD_WINE_GET_IPV6_MULTICAST_LOOP: + return do_getsockopt( handle, io, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, out_buffer, out_size ); + default: { if ((code >> 16) == FILE_DEVICE_NETWORK) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 8548e7bf3a7..432f3a26f30 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -2419,6 +2419,8 @@ INT WINAPI WS_getsockopt(SOCKET s, INT level, return server_getsockopt( s, IOCTL_AFD_WINE_GET_IPV6_MULTICAST_IF, optval, optlen );
case WS_IPV6_MULTICAST_LOOP: + return server_getsockopt( s, IOCTL_AFD_WINE_GET_IPV6_MULTICAST_LOOP, optval, optlen ); + case WS_IPV6_UNICAST_HOPS: case WS_IPV6_V6ONLY: #ifdef IPV6_UNICAST_IF diff --git a/include/wine/afd.h b/include/wine/afd.h index 284e8f55bc4..3d4dcf539cd 100644 --- a/include/wine/afd.h +++ b/include/wine/afd.h @@ -215,6 +215,7 @@ struct afd_get_events_params #define IOCTL_AFD_WINE_SET_IPV6_MULTICAST_HOPS WINE_AFD_IOC(270) #define IOCTL_AFD_WINE_GET_IPV6_MULTICAST_IF WINE_AFD_IOC(271) #define IOCTL_AFD_WINE_SET_IPV6_MULTICAST_IF WINE_AFD_IOC(272) +#define IOCTL_AFD_WINE_GET_IPV6_MULTICAST_LOOP WINE_AFD_IOC(273)
struct afd_create_params {
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=94657
Your paranoid android.
=== debiant2 (32 bit report) ===
ws2_32: afd.c:336: Test failed: got flags 0x43 afd.c:342: Test failed: got flags 0x41
Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/ntdll/unix/socket.c | 3 +++ dlls/ws2_32/socket.c | 2 ++ include/wine/afd.h | 1 + 3 files changed, 6 insertions(+)
diff --git a/dlls/ntdll/unix/socket.c b/dlls/ntdll/unix/socket.c index 14bdaed19f7..e9239bd7bb9 100644 --- a/dlls/ntdll/unix/socket.c +++ b/dlls/ntdll/unix/socket.c @@ -1879,6 +1879,9 @@ NTSTATUS sock_ioctl( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc case IOCTL_AFD_WINE_GET_IPV6_MULTICAST_LOOP: return do_getsockopt( handle, io, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, out_buffer, out_size );
+ case IOCTL_AFD_WINE_SET_IPV6_MULTICAST_LOOP: + return do_setsockopt( handle, io, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, in_buffer, in_size ); + default: { if ((code >> 16) == FILE_DEVICE_NETWORK) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c index 432f3a26f30..1f8020b5c3e 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c @@ -3638,6 +3638,8 @@ int WINAPI WS_setsockopt(SOCKET s, int level, int optname, return server_setsockopt( s, IOCTL_AFD_WINE_SET_IPV6_MULTICAST_IF, optval, optlen );
case WS_IPV6_MULTICAST_LOOP: + return server_setsockopt( s, IOCTL_AFD_WINE_SET_IPV6_MULTICAST_LOOP, optval, optlen ); + case WS_IPV6_UNICAST_HOPS: #ifdef IPV6_UNICAST_IF case WS_IPV6_UNICAST_IF: diff --git a/include/wine/afd.h b/include/wine/afd.h index 3d4dcf539cd..6c84b72c028 100644 --- a/include/wine/afd.h +++ b/include/wine/afd.h @@ -216,6 +216,7 @@ struct afd_get_events_params #define IOCTL_AFD_WINE_GET_IPV6_MULTICAST_IF WINE_AFD_IOC(271) #define IOCTL_AFD_WINE_SET_IPV6_MULTICAST_IF WINE_AFD_IOC(272) #define IOCTL_AFD_WINE_GET_IPV6_MULTICAST_LOOP WINE_AFD_IOC(273) +#define IOCTL_AFD_WINE_SET_IPV6_MULTICAST_LOOP WINE_AFD_IOC(274)
struct afd_create_params {
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=94654
Your paranoid android.
=== debiant2 (32 bit report) ===
ntdll: change.c:241: Test failed: should be ready
ws2_32: afd.c:336: Test failed: got flags 0x43 afd.c:342: Test failed: got flags 0x41