From 23da335e579c5a0bb61d664fc04226d30e9a6afd Mon Sep 17 00:00:00 2001 From: Devrandom Date: Thu, 24 Apr 2014 13:13:33 -0400 Subject: [PATCH] Orchid: allow creation of unconnected socket --- .../orchid/sockets/OrchidSocketFactory.java | 16 +++++++++++----- .../orchid/sockets/OrchidSocketImpl.java | 9 ++++++--- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/orchid/src/com/subgraph/orchid/sockets/OrchidSocketFactory.java b/orchid/src/com/subgraph/orchid/sockets/OrchidSocketFactory.java index 77b8a532..28febaf5 100644 --- a/orchid/src/com/subgraph/orchid/sockets/OrchidSocketFactory.java +++ b/orchid/src/com/subgraph/orchid/sockets/OrchidSocketFactory.java @@ -26,10 +26,16 @@ public class OrchidSocketFactory extends SocketFactory { this.exceptionOnLocalBind = exceptionOnLocalBind; } - @Override + @Override + public Socket createSocket() throws IOException { + return createSocketInstance(); + } + + @Override public Socket createSocket(String host, int port) throws IOException, UnknownHostException { - return createOrchidSocket(host, port); + final Socket s = createSocketInstance(); + return connectOrchidSocket(s, host, port); } @Override @@ -43,7 +49,8 @@ public class OrchidSocketFactory extends SocketFactory { @Override public Socket createSocket(InetAddress address, int port) throws IOException { - return createOrchidSocket(address.getHostAddress(), port); + final Socket s = createSocketInstance(); + return connectOrchidSocket(s, address.getHostAddress(), port); } @Override @@ -55,8 +62,7 @@ public class OrchidSocketFactory extends SocketFactory { return createSocket(address, port); } - private Socket createOrchidSocket(String host, int port) throws IOException { - final Socket s = createSocketInstance(); + private Socket connectOrchidSocket(Socket s, String host, int port) throws IOException { final SocketAddress endpoint = InetSocketAddress.createUnresolved(host, port); s.connect(endpoint); return s; diff --git a/orchid/src/com/subgraph/orchid/sockets/OrchidSocketImpl.java b/orchid/src/com/subgraph/orchid/sockets/OrchidSocketImpl.java index 9c6efc15..de33351c 100644 --- a/orchid/src/com/subgraph/orchid/sockets/OrchidSocketImpl.java +++ b/orchid/src/com/subgraph/orchid/sockets/OrchidSocketImpl.java @@ -53,13 +53,16 @@ public class OrchidSocketImpl extends SocketImpl { @Override protected void connect(String host, int port) throws IOException { - throw new UnsupportedOperationException(); + SocketAddress endpoint = + InetSocketAddress.createUnresolved(host, port); + connect(endpoint, 0); } @Override protected void connect(InetAddress address, int port) throws IOException { - throw new UnsupportedOperationException(); - + SocketAddress endpoint = + InetSocketAddress.createUnresolved(address.getHostAddress(), port); + connect(endpoint, 0); } @Override