You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against 5063ab8a805e77b9b9dfe5587fb38981923e422d.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From 08807e33a1e1e60b3d3d24981bc2eac16b99b611 Mon Sep 17 00:00:00 2001
|
||||
From 3e1b93797f24faf9058a07e5b94dc883372162e8 Mon Sep 17 00:00:00 2001
|
||||
From: Ally Sommers <dropbear.sh@gmail.com>
|
||||
Date: Thu, 30 Jan 2025 23:47:16 +0100
|
||||
Subject: [PATCH] ws2_32: Add support for AF_UNIX sockets.
|
||||
@@ -15,7 +15,7 @@ multithreaded.
|
||||
4 files changed, 240 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/socket.c b/dlls/ntdll/unix/socket.c
|
||||
index a02194f843f..a0c5969c82f 100644
|
||||
index 5156bbfee10..1f484283757 100644
|
||||
--- a/dlls/ntdll/unix/socket.c
|
||||
+++ b/dlls/ntdll/unix/socket.c
|
||||
@@ -67,6 +67,8 @@
|
||||
@@ -44,7 +44,7 @@ index a02194f843f..a0c5969c82f 100644
|
||||
|
||||
struct async_recv_ioctl
|
||||
diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
|
||||
index 3a412b00c1e..5e5f13ef95c 100644
|
||||
index d4223e93bd1..ce0c6ce7856 100644
|
||||
--- a/dlls/ws2_32/socket.c
|
||||
+++ b/dlls/ws2_32/socket.c
|
||||
@@ -182,6 +182,19 @@ static const WSAPROTOCOL_INFOW supported_protocols[] =
|
||||
@@ -79,7 +79,7 @@ index 3a412b00c1e..5e5f13ef95c 100644
|
||||
default:
|
||||
return wine_dbg_sprintf("{ family %d }", a->sa_family);
|
||||
}
|
||||
@@ -1132,6 +1150,10 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
@@ -1151,6 +1169,10 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
HANDLE sync_event;
|
||||
NTSTATUS status;
|
||||
|
||||
@@ -87,10 +87,10 @@ index 3a412b00c1e..5e5f13ef95c 100644
|
||||
+ char *unix_path = NULL;
|
||||
+ int unix_varargs_size = 0;
|
||||
+
|
||||
TRACE( "socket %#Ix, addr %s\n", s, debugstr_sockaddr(addr) );
|
||||
TRACE( "socket %#Ix, addr %s, len %d\n", s, debugstr_sockaddr(addr), len );
|
||||
|
||||
if (!addr)
|
||||
@@ -1173,6 +1195,7 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
@@ -1192,6 +1214,7 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
@@ -98,7 +98,7 @@ index 3a412b00c1e..5e5f13ef95c 100644
|
||||
case AF_BTH:
|
||||
if (len < sizeof(SOCKADDR_BTH))
|
||||
{
|
||||
@@ -1180,6 +1203,15 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
@@ -1199,6 +1222,15 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
@@ -114,7 +114,7 @@ index 3a412b00c1e..5e5f13ef95c 100644
|
||||
default:
|
||||
FIXME( "unknown protocol %u\n", addr->sa_family );
|
||||
SetLastError( WSAEAFNOSUPPORT );
|
||||
@@ -1188,7 +1220,29 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
@@ -1207,7 +1239,29 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
|
||||
if (!(sync_event = get_sync_event())) return -1;
|
||||
|
||||
@@ -145,7 +145,7 @@ index 3a412b00c1e..5e5f13ef95c 100644
|
||||
ret_addr = malloc( len );
|
||||
if (!params || !ret_addr)
|
||||
{
|
||||
@@ -1198,10 +1252,14 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
@@ -1217,10 +1271,14 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
return -1;
|
||||
}
|
||||
params->unknown = 0;
|
||||
@@ -162,7 +162,7 @@ index 3a412b00c1e..5e5f13ef95c 100644
|
||||
if (status == STATUS_PENDING)
|
||||
{
|
||||
if (WaitForSingleObject( sync_event, INFINITE ) == WAIT_FAILED)
|
||||
@@ -1214,6 +1272,7 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
@@ -1233,6 +1291,7 @@ int WINAPI bind( SOCKET s, const struct sockaddr *addr, int len )
|
||||
|
||||
free( params );
|
||||
free( ret_addr );
|
||||
@@ -170,7 +170,7 @@ index 3a412b00c1e..5e5f13ef95c 100644
|
||||
|
||||
SetLastError( NtStatusToWSAError( status ) );
|
||||
return status ? -1 : 0;
|
||||
@@ -1254,11 +1313,24 @@ int WINAPI connect( SOCKET s, const struct sockaddr *addr, int len )
|
||||
@@ -1273,11 +1332,24 @@ int WINAPI connect( SOCKET s, const struct sockaddr *addr, int len )
|
||||
HANDLE sync_event;
|
||||
NTSTATUS status;
|
||||
|
||||
@@ -196,7 +196,7 @@ index 3a412b00c1e..5e5f13ef95c 100644
|
||||
{
|
||||
SetLastError( ERROR_NOT_ENOUGH_MEMORY );
|
||||
return -1;
|
||||
@@ -1266,10 +1338,13 @@ int WINAPI connect( SOCKET s, const struct sockaddr *addr, int len )
|
||||
@@ -1285,10 +1357,13 @@ int WINAPI connect( SOCKET s, const struct sockaddr *addr, int len )
|
||||
params->addr_len = len;
|
||||
params->synchronous = TRUE;
|
||||
memcpy( params + 1, addr, len );
|
||||
|
@@ -1 +1 @@
|
||||
ffcbbf8f0152cd6919eabe19f0a9d5e015fe1a80
|
||||
5063ab8a805e77b9b9dfe5587fb38981923e422d
|
||||
|
Reference in New Issue
Block a user