jdk/src/java.base/windows/native/libnio/ch/Net.c
changeset 27178 885f4428b501
parent 26207 a02f6165d5be
child 32232 8d58fc5a0349
--- a/jdk/src/java.base/windows/native/libnio/ch/Net.c	Fri Oct 17 10:59:32 2014 +0100
+++ b/jdk/src/java.base/windows/native/libnio/ch/Net.c	Sun Oct 19 11:52:53 2014 +0100
@@ -127,7 +127,7 @@
 
 JNIEXPORT jint JNICALL
 Java_sun_nio_ch_Net_socket0(JNIEnv *env, jclass cl, jboolean preferIPv6,
-                            jboolean stream, jboolean reuse)
+                            jboolean stream, jboolean reuse, jboolean fastLoopback)
 {
     SOCKET s;
     int domain = (preferIPv6) ? AF_INET6 : AF_INET;
@@ -152,6 +152,20 @@
         NET_ThrowNew(env, WSAGetLastError(), "socket");
     }
 
+    if (stream && fastLoopback) {
+        static int loopback_available = 1;
+        if (loopback_available) {
+            int rv = NET_EnableFastTcpLoopback((jint)s);
+            if (rv) {
+                if (rv == WSAEOPNOTSUPP) {
+                    loopback_available = 0;
+                } else {
+                    NET_ThrowNew(env, rv, "fastLoopback");
+                }
+            }
+        }
+    }
+
     return (jint)s;
 }