[MSAFD] We support SOCK_RAW and IPPROTO_RAW also. CORE-12104
authorPeter Hater <7element@mail.bg>
Mon, 10 Oct 2016 07:57:34 +0000 (07:57 +0000)
committerPeter Hater <7element@mail.bg>
Mon, 10 Oct 2016 07:57:34 +0000 (07:57 +0000)
svn path=/trunk/; revision=72952

reactos/dll/win32/msafd/misc/dllmain.c

index a1626ec..9a85b75 100644 (file)
@@ -103,15 +103,43 @@ WSPSocket(int AddressFamily,
         AddressFamily = AF_INET;
 
     if (SocketType == 0)
-        SocketType = SOCK_STREAM;
+    {
+        switch (Protocol)
+        {
+        case IPPROTO_TCP:
+            SocketType = SOCK_STREAM;
+            break;
+        case IPPROTO_UDP:
+            SocketType = SOCK_DGRAM;
+            break;
+        case IPPROTO_RAW:
+            SocketType = SOCK_RAW;
+            break;
+        default:
+            TRACE("Unknown Protocol (%d). We will try SOCK_STREAM.\n", Protocol);
+            SocketType = SOCK_STREAM;
+            break;
+        }
+    }
 
     if (Protocol == 0)
     {
-        if (SocketType == SOCK_STREAM)
+        switch (SocketType)
+        {
+        case SOCK_STREAM:
             Protocol = IPPROTO_TCP;
-
-        if (SocketType == SOCK_DGRAM)
+            break;
+        case SOCK_DGRAM:
             Protocol = IPPROTO_UDP;
+            break;
+        case SOCK_RAW:
+            Protocol = IPPROTO_RAW;
+            break;
+        default:
+            TRACE("Unknown SocketType (%d). We will try IPPROTO_TCP.\n", SocketType);
+            Protocol = IPPROTO_TCP;
+            break;
+        }
     }
 
     /* Get Helper Data and Transport */