jdk/src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java
changeset 12047 320a714614e9
parent 10693 6e9ebed2e783
child 12538 211d6e82fe51
--- a/jdk/src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java	Tue Mar 06 10:25:45 2012 +0800
+++ b/jdk/src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java	Tue Mar 06 20:34:38 2012 +0000
@@ -26,6 +26,7 @@
 
 import java.io.FileDescriptor;
 import java.io.IOException;
+import java.security.AccessController;
 import sun.net.ResourceManager;
 
 /**
@@ -52,6 +53,15 @@
     private boolean loopbackMode = true;
     private int ttl = -1;
 
+    private static final String os = AccessController.doPrivileged(
+        new sun.security.action.GetPropertyAction("os.name")
+    );
+
+    /**
+     * flag set if the native connect() call not to be used
+     */
+    private final static boolean connectDisabled = os.startsWith("Mac OS");
+
     /**
      * Load net library into runtime.
      */
@@ -349,4 +359,7 @@
     protected abstract void connect0(InetAddress address, int port) throws SocketException;
     protected abstract void disconnect0(int family);
 
+    protected boolean nativeConnectDisabled() {
+        return connectDisabled;
+    }
 }