[PATCH 3/4] ws2_32: Add protocol information for TCP and UDP over IPv6.

Zebediah Figura z.figura12 at gmail.com
Fri Sep 25 16:20:39 CDT 2020


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/ws2_32/socket.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index 65edc077b43..0e22416b66b 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -195,6 +195,7 @@ static const WCHAR NameUdpW[]   = {'U', 'D', 'P', '/', 'I', 'P', '\0'};
 /* Taken from Win2k */
 static const GUID ProviderIdIP = { 0xe70f1aa0, 0xab8b, 0x11cf,
                                    { 0x8c, 0xa3, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92 } };
+static const GUID ProviderIdIPv6 = {0xf9eab0c0, 0x26d4, 0x11d0, {0xbb, 0xbf, 0x00, 0xaa, 0x00, 0x6c, 0x34, 0xe4}};
 static const GUID ProviderIdIPX = { 0x11058240, 0xbe47, 0x11cf,
                                     { 0x95, 0xc8, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92 } };
 static const GUID ProviderIdSPX = { 0x11058241, 0xbe47, 0x11cf,
@@ -233,6 +234,37 @@ static const WSAPROTOCOL_INFOW supported_protocols[] =
         .dwMessageSize = 0xffbb,
         .szProtocol = {'U','D','P','/','I','P',0},
     },
+    {
+        .dwServiceFlags1 = XP1_IFS_HANDLES | XP1_EXPEDITED_DATA | XP1_GRACEFUL_CLOSE
+                | XP1_GUARANTEED_ORDER | XP1_GUARANTEED_DELIVERY,
+        .dwProviderFlags = PFL_MATCHES_PROTOCOL_ZERO,
+        .ProviderId = ProviderIdIPv6,
+        .dwCatalogEntryId = 1004,
+        .ProtocolChain.ChainLen = 1,
+        .iVersion = 2,
+        .iAddressFamily = WS_AF_INET6,
+        .iMaxSockAddr = sizeof(struct WS_sockaddr_in6),
+        .iMinSockAddr = sizeof(struct WS_sockaddr_in6),
+        .iSocketType = WS_SOCK_STREAM,
+        .iProtocol = WS_IPPROTO_TCP,
+        .szProtocol = {'T','C','P','/','I','P','v','6',0},
+    },
+    {
+        .dwServiceFlags1 = XP1_IFS_HANDLES | XP1_SUPPORT_BROADCAST
+                | XP1_SUPPORT_MULTIPOINT | XP1_MESSAGE_ORIENTED | XP1_CONNECTIONLESS,
+        .dwProviderFlags = PFL_MATCHES_PROTOCOL_ZERO,
+        .ProviderId = ProviderIdIPv6,
+        .dwCatalogEntryId = 1005,
+        .ProtocolChain.ChainLen = 1,
+        .iVersion = 2,
+        .iAddressFamily = WS_AF_INET6,
+        .iMaxSockAddr = sizeof(struct WS_sockaddr_in6),
+        .iMinSockAddr = sizeof(struct WS_sockaddr_in6),
+        .iSocketType = WS_SOCK_DGRAM,
+        .iProtocol = WS_IPPROTO_UDP,
+        .dwMessageSize = 0xffbb,
+        .szProtocol = {'U','D','P','/','I','P','v','6',0},
+    },
     {
         .dwServiceFlags1 = XP1_PARTIAL_MESSAGE | XP1_SUPPORT_BROADCAST
                 | XP1_SUPPORT_MULTIPOINT | XP1_MESSAGE_ORIENTED | XP1_CONNECTIONLESS,
-- 
2.28.0




More information about the wine-devel mailing list