You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by gh...@apache.org on 2006/06/22 15:56:58 UTC

svn commit: r416373 - in /incubator/harmony/enhanced/classlib/trunk/modules/luni/src: main/java/org/apache/harmony/luni/net/NetUtil.java main/java/org/apache/harmony/luni/net/PlainSocketImpl.java test/java/tests/api/java/net/ServerSocketTest.java

Author: gharley
Date: Thu Jun 22 06:56:57 2006
New Revision: 416373

URL: http://svn.apache.org/viewvc?rev=416373&view=rev
Log:
HARMONY 623 : java.net.ServerSocket constructor should not throw IOException if "socksProxyHost" property is set

Modified:
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/NetUtil.java
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java
    incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/ServerSocketTest.java

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/NetUtil.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/NetUtil.java?rev=416373&r1=416372&r2=416373&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/NetUtil.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/NetUtil.java Thu Jun 22 06:56:57 2006
@@ -24,35 +24,20 @@
 
 public class NetUtil {
     
-    /*
-     * FIXME: enhance performance to cache the values
-     */
-    
     /**
-	 * Answer whether to use a SOCKS proxy.
-	 * 
-	 * @param proxy
-	 *            java.net.Proxy, may be <code>null</code> in which case the 
-     *            return value is determined from the values of the 
-     *            "socksProxySet" and "socksProxyHost" system properties.
-	 * @return true if SOCKS proxy is set by <code>proxy</code> parameter or
-     *         else "socksProxySet" system property is set and has the value
-     *         of "true" or if "socksProxyHost" is set in system properties.
-	 */
+     * Answers whether to use a SOCKS proxy.
+     * 
+     * @param proxy
+     *            java.net.Proxy <code>proxy</code> is used to determine
+     *            whether using SOCKS proxy.
+     * @return true if only the type of <code>proxy</code> is
+     *         Proxy.Type.SOCKS.
+     */
     public static boolean usingSocks(Proxy proxy) {
-    	if(null != proxy && Proxy.NO_PROXY == proxy){
-    		return false;
-    	}
     	if(null != proxy && Proxy.Type.SOCKS == proxy.type()){
     		return true;
     	}
-        String proxySet = AccessController
-                .doPrivileged(new PriviAction<String>("socksProxySet")); //$NON-NLS-1$
-        if (proxySet != null) {
-            return proxySet.toLowerCase().equals("true"); //$NON-NLS-1$
-        }
-        return AccessController.doPrivileged(new PriviAction<String>(
-                "socksProxyHost")) != null; //$NON-NLS-1$
+        return false;
     }
 
     /**

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java?rev=416373&r1=416372&r2=416373&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/net/PlainSocketImpl.java Thu Jun 22 06:56:57 2006
@@ -30,12 +30,10 @@
 import java.net.SocketOptions;
 import java.net.SocketTimeoutException;
 import java.net.UnknownHostException;
-import java.security.AccessController;
 
 import org.apache.harmony.luni.platform.INetworkSystem;
 import org.apache.harmony.luni.platform.Platform;
 import org.apache.harmony.luni.util.Msg;
-import org.apache.harmony.luni.util.PriviAction;
 
 /**
  * A concrete connected-socket implementation.
@@ -392,52 +390,36 @@
 		}
 	}
 
-	/**
-	 * Get the SOCKS proxy server port.
-	 */
-	private int socksGetServerPort() {
-		int portValue = -1;
-		
-		if(null != proxy && Proxy.Type.SOCKS == proxy.type()){
-			// get from proxy first
-			InetSocketAddress addr = (InetSocketAddress)proxy.address();
-			return addr.getPort();
-		}
-		
-		String proxyPort = AccessController
-				.doPrivileged(new PriviAction<String>("socksProxyPort"));
-
-		if (proxyPort != null) {
-			portValue = Integer.parseInt(proxyPort);
-		}
-		if (portValue < 0) {
-			portValue = 1080;
-		}
-
-		return portValue;
-	}
-
-	/**
-	 * Get the InetAddress of the SOCKS proxy server.
-	 */
-	private InetAddress socksGetServerAddress() throws UnknownHostException {
-		String proxyName;
-		if(null != proxy && Proxy.Type.SOCKS == proxy.type()){
-			// get from proxy first
-			InetSocketAddress addr = (InetSocketAddress)proxy.address();
-			proxyName = addr.getHostName();
-			if(null == proxyName){
-				proxyName = addr.getAddress().getHostAddress();
-			}
-		}else{
-			// get from system properties
-			proxyName = AccessController
-				.doPrivileged(new PriviAction<String>("socksProxyHost"));
-		}
-		InetAddress anAddr = netImpl.getHostByName(proxyName,
-                NetUtil.preferIPv6Addresses());
-		return anAddr;
-	}
+    /**
+     * Gets the SOCKS proxy server port.
+     */
+    private int socksGetServerPort() {
+        // get socks server port from proxy. It is unneccessary to check
+        // "socksProxyPort" property, since proxy setting should only be
+        // determined by ProxySelector.
+        InetSocketAddress addr = (InetSocketAddress) proxy.address();
+        return addr.getPort();
+
+    }
+
+    /**
+     * Gets the InetAddress of the SOCKS proxy server.
+     */
+    private InetAddress socksGetServerAddress() throws UnknownHostException {
+        String proxyName;
+        // get socks server address from proxy. It is unneccessary to check
+        // "socksProxyHost" property, since all proxy setting should be
+        // determined by ProxySelector.
+        InetSocketAddress addr = (InetSocketAddress) proxy.address();
+        proxyName = addr.getHostName();
+        if (null == proxyName) {
+            proxyName = addr.getAddress().getHostAddress();
+        }
+
+        InetAddress anAddr = netImpl.getHostByName(proxyName, NetUtil
+                .preferIPv6Addresses());
+        return anAddr;
+    }
 
 	/**
 	 * Connect using a SOCKS server.

Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/ServerSocketTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/ServerSocketTest.java?rev=416373&r1=416372&r2=416373&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/ServerSocketTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/net/ServerSocketTest.java Thu Jun 22 06:56:57 2006
@@ -25,6 +25,7 @@
 import java.net.SocketAddress;
 import java.net.SocketException;
 import java.util.Date;
+import java.util.Properties;
 
 import tests.support.Support_Configuration;
 import tests.support.Support_PortManager;
@@ -87,6 +88,25 @@
 		assertTrue("Used during tests", true);
 	}
 
+    /**
+     * @tests java.net.ServerSocket#ServerSocket(int)
+     */
+    public void test_ConstructorI_SocksSet() throws IOException {
+        //Harmony-623 regression test
+        ServerSocket ss = null;
+        Properties props = (Properties) System.getProperties().clone();
+        try {
+            System.setProperty("socksProxyHost", "127.0.0.1");
+            System.setProperty("socksProxyPort", "12345");
+            ss = new ServerSocket(Support_PortManager.getNextPort());
+        } finally {
+            System.setProperties(props);
+            if (null != ss) {
+                ss.close();
+            }
+        }
+    }
+    
 	/**
 	 * @tests java.net.ServerSocket#ServerSocket(int, int)
 	 */
@@ -360,9 +380,8 @@
 			fail("Exception during toString test : " + e.getMessage());
 		}
 
-		assertTrue("Returned incorrect string", s.toString().equals(
-				"ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport="
-						+ portNumber + "]"));
+        assertEquals("ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport="
+                        + portNumber + "]", s);
 	}
 
 	/**