This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Patch: FYI: minor fix in SSLSocketFactoryImpl
- From: Tom Tromey <tromey at redhat dot com>
- To: GCJ-patches <java-patches at gcc dot gnu dot org>
- Cc: GNU Classpath Patches <classpath-patches at gnu dot org>
- Date: 16 Apr 2007 13:55:37 -0600
- Subject: Patch: FYI: minor fix in SSLSocketFactoryImpl
- Reply-to: tromey at redhat dot com
I'm checking this in to gcc svn trunk, RH 4.1 branch, and Classpath
cvs.
This fixes a bug found by Tom Fitzsimmons.
In SSLSocketFactoryImpl we were delegating createSocket calls in a way
where the 4-argument form would end up calling bind() twice on a
socket, yielding an exception. This changes the code to delegate the
other way around.
I tested this on the test case (also hacked to try the 2-arg call) and
also on the javax.net subset of Mauve.
Tom
Index: classpath/ChangeLog
from Tom Tromey <tromey@redhat.com>
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614
* gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
(createSocket): Change order of delegation.
Index: classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
===================================================================
--- classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java (revision 123877)
+++ classpath/gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java (working copy)
@@ -1,5 +1,5 @@
/* SSLSocketFactoryImpl.java --
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is a part of GNU Classpath.
@@ -93,10 +93,7 @@
@Override public SSLSocketImpl createSocket(String host, int port)
throws IOException, UnknownHostException
{
- SSLSocketImpl socket = new SSLSocketImpl(contextImpl, host, port);
- InetSocketAddress endpoint = new InetSocketAddress(host, port);
- socket.connect(endpoint);
- return socket;
+ return createSocket(host, port, null, 0);
}
/* (non-Javadoc)
@@ -106,8 +103,10 @@
InetAddress localHost, int localPort)
throws IOException, UnknownHostException
{
- SSLSocketImpl socket = createSocket(host, port);
+ SSLSocketImpl socket = new SSLSocketImpl(contextImpl, host, port);
+ InetSocketAddress endpoint = new InetSocketAddress(host, port);
socket.bind(new InetSocketAddress(localHost, localPort));
+ socket.connect(endpoint);
return socket;
}
@@ -117,10 +116,7 @@
@Override public SSLSocketImpl createSocket(InetAddress host, int port)
throws IOException
{
- SSLSocketImpl socket = new SSLSocketImpl(contextImpl,
- host.getCanonicalHostName(), port);
- socket.connect(new InetSocketAddress(host, port));
- return socket;
+ return createSocket(host, port, null, 0);
}
/* (non-Javadoc)
@@ -130,8 +126,10 @@
InetAddress localHost, int localPort)
throws IOException
{
- SSLSocketImpl socket = createSocket(host, port);
+ SSLSocketImpl socket = new SSLSocketImpl(contextImpl,
+ host.getCanonicalHostName(), port);
socket.bind(new InetSocketAddress(localHost, localPort));
+ socket.connect(new InetSocketAddress(host, port));
return socket;
}
}