[kaffe] CVS kaffe (robilad): Resynced with GNU Classpath: HTTP connection fixes

Kaffe CVS cvs-commits at kaffe.org
Wed Jan 12 23:19:56 PST 2005


PatchSet 5844 
Date: 2005/01/13 07:15:01
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Resynced with GNU Classpath: HTTP connection fixes

2005-01-13  Dalibor Topic  <robilad at kaffe.org>

Resynced with GNU Classpath.

2005-01-11  Chris Burdess  <dog at gnu.org>

* gnu/java/net/protocol/http/HTTPConnection.java: Use correct form of
Host header when using a non-default port number.

2005-01-11  Chris Burdess  <dog at gnu.org>

* javax/net/ssl/HttpsURLConnection.java: Do not request SSLv3
provider during class initialization.

Members: 
	ChangeLog:1.3388->1.3389 
	libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java:1.3->1.4 
	libraries/javalib/javax/net/ssl/HttpsURLConnection.java:1.4->1.5 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3388 kaffe/ChangeLog:1.3389
--- kaffe/ChangeLog:1.3388	Thu Jan 13 07:04:16 2005
+++ kaffe/ChangeLog	Thu Jan 13 07:15:01 2005
@@ -1,6 +1,20 @@
 2005-01-13  Dalibor Topic  <robilad at kaffe.org>
 
 	Resynced with GNU Classpath.
+
+	2005-01-11  Chris Burdess  <dog at gnu.org>
+
+	* gnu/java/net/protocol/http/HTTPConnection.java: Use correct form of
+	Host header when using a non-default port number.
+
+	2005-01-11  Chris Burdess  <dog at gnu.org>
+
+	* javax/net/ssl/HttpsURLConnection.java: Do not request SSLv3
+	provider during class initialization.
+	
+2005-01-13  Dalibor Topic  <robilad at kaffe.org>
+
+	Resynced with GNU Classpath.
 	
 	2005-01-11  Michael Koch  <konqueror at gmx.de>
 
Index: kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java
diff -u kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java:1.3 kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java:1.4
--- kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java:1.3	Sat Jan  8 21:54:52 2005
+++ kaffe/libraries/javalib/gnu/java/net/protocol/http/HTTPConnection.java	Thu Jan 13 07:15:04 2005
@@ -369,7 +369,15 @@
         path = "/";
       }
     Request ret = new Request(this, method, path);
-    ret.setHeader("Host", hostname);
+    if ((secure && port != HTTPS_PORT) ||
+        (!secure && port != HTTP_PORT))
+      {
+        ret.setHeader("Host", hostname + ":" + port);
+      }
+    else
+      {
+        ret.setHeader("Host", hostname);
+      }
     ret.setHeader("User-Agent", userAgent);
     ret.setHeader("Connection", "keep-alive");
     ret.setHeader("Accept-Encoding",
Index: kaffe/libraries/javalib/javax/net/ssl/HttpsURLConnection.java
diff -u kaffe/libraries/javalib/javax/net/ssl/HttpsURLConnection.java:1.4 kaffe/libraries/javalib/javax/net/ssl/HttpsURLConnection.java:1.5
--- kaffe/libraries/javalib/javax/net/ssl/HttpsURLConnection.java:1.4	Tue Sep 21 13:08:17 2004
+++ kaffe/libraries/javalib/javax/net/ssl/HttpsURLConnection.java	Thu Jan 13 07:15:04 2005
@@ -59,10 +59,18 @@
   // Fields.
   // ------------------------------------------------------------------
 
-  /** The default verifier. */
+  /**
+   * The default verifier.
+   * This is lazily initialized as required.
+   * @see #getDefaultHostnameVerifier
+   */
   private static HostnameVerifier defaultVerifier;
 
-  /** The default factory. */
+  /**
+   * The default factory.
+   * This is lazily initialized as required.
+   * @see #getDefaultSSLSocketFactory
+   */
   private static SSLSocketFactory defaultFactory;
 
   /**
@@ -75,21 +83,6 @@
    */
   private SSLSocketFactory factory;
 
-  // Static initializer.
-  // ------------------------------------------------------------------
-
-  static {
-    defaultVerifier = new TrivialHostnameVerifier();
-    try
-      {
-        defaultFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
-      }
-    catch (Throwable t)
-      {
-        t.printStackTrace();
-      }
-  }
-
   // Constructor.
   // ------------------------------------------------------------------
 
@@ -102,8 +95,6 @@
   protected HttpsURLConnection(URL url) throws IOException
   {
     super(url);
-    hostnameVerifier = defaultVerifier;
-    factory = defaultFactory;
   }
 
   // Class methods.
@@ -112,11 +103,17 @@
   /**
    * Returns the default hostname verifier used in all new
    * connections.
+   * If the default verifier has not been set, a new default one will be
+   * provided by this method.
    *
    * @return The default hostname verifier.
    */
-  public static HostnameVerifier getDefaultHostnameVerifier()
+  public static synchronized HostnameVerifier getDefaultHostnameVerifier()
   {
+    if (defaultVerifier == null)
+      {
+        defaultVerifier = new TrivialHostnameVerifier();
+      }
     return defaultVerifier;
   }
 
@@ -137,17 +134,33 @@
     SecurityManager sm = System.getSecurityManager();
     if (sm != null)
       sm.checkPermission(new SSLPermission("setHostnameVerifier"));
-    defaultVerifier = newDefault;
+    synchronized (HttpsURLConnection.class)
+      {
+        defaultVerifier = newDefault;
+      }
   }
 
   /**
    * Returns the default SSL socket factory used in all new
    * connections.
+   * If the default SSL socket factory has not been set, a new default one
+   * will be provided by this method.
    *
    * @return The default SSL socket factory.
    */
-  public static SSLSocketFactory getDefaultSSLSocketFactory()
+  public static synchronized SSLSocketFactory getDefaultSSLSocketFactory()
   {
+    if (defaultFactory == null)
+      {
+        try
+          {
+            defaultFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
+          }
+        catch (Throwable t)
+          {
+            t.printStackTrace();
+          }
+      }
     return defaultFactory;
   }
 
@@ -168,7 +181,10 @@
     SecurityManager sm = System.getSecurityManager();
     if (sm != null)
       sm.checkSetFactory();
-    defaultFactory = newDefault;
+    synchronized (HttpsURLConnection.class)
+      {
+        defaultFactory = newDefault;
+      }
   }
 
   // Instance methods.
@@ -181,6 +197,10 @@
    */
   public HostnameVerifier getHostnameVerifier()
   {
+    if (hostnameVerifier == null)
+      {
+        hostnameVerifier = getDefaultHostnameVerifier();
+      }
     return hostnameVerifier;
   }
 
@@ -205,6 +225,10 @@
    */
   public SSLSocketFactory getSSLSocketFactory()
   {
+    if (factory == null)
+      {
+        factory = getDefaultSSLSocketFactory();
+      }
     return factory;
   }
 



More information about the kaffe mailing list