diff --git a/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpChannelBuilder.java b/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpChannelBuilder.java index 12ccab5fd8..234f5cbd9e 100644 --- a/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpChannelBuilder.java +++ b/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpChannelBuilder.java @@ -43,7 +43,6 @@ import io.grpc.SharedResourceHolder; import io.grpc.SharedResourceHolder.Resource; import io.grpc.transport.ClientTransportFactory; -import java.net.InetSocketAddress; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -84,18 +83,20 @@ public final class OkHttpChannelBuilder extends AbstractChannelBuilderShould only used by tests. */ public OkHttpChannelBuilder overrideHostForAuthority(String host) { - this.host = host; + this.authorityHost = host; return this; } @@ -144,7 +145,7 @@ public final class OkHttpChannelBuilder extends AbstractChannelBuilder pendingStreams = new LinkedList(); private final ConnectionSpec connectionSpec; - OkHttpClientTransport(InetSocketAddress address, String authorityHost, Executor executor, + OkHttpClientTransport(String host, int port, String authorityHost, Executor executor, @Nullable SSLSocketFactory sslSocketFactory, ConnectionSpec connectionSpec) { - this.address = Preconditions.checkNotNull(address); + this.host = Preconditions.checkNotNull(host); + this.port = port; this.authorityHost = authorityHost; - defaultAuthority = authorityHost + ":" + address.getPort(); + defaultAuthority = authorityHost + ":" + port; this.executor = Preconditions.checkNotNull(executor); // Client initiated streams are odd, server initiated ones are even. Server should not need to // use it. We start clients at 3 to avoid conflicting with HTTP negotiation. @@ -191,7 +192,8 @@ class OkHttpClientTransport implements ClientTransport { @VisibleForTesting OkHttpClientTransport(Executor executor, FrameReader frameReader, AsyncFrameWriter frameWriter, int nextStreamId, Socket socket, Ticker ticker) { - address = null; + host = null; + port = 0; authorityHost = null; defaultAuthority = "notarealauthority:80"; this.executor = Preconditions.checkNotNull(executor); @@ -318,18 +320,14 @@ class OkHttpClientTransport implements ClientTransport { public void start(Listener listener) { this.listener = Preconditions.checkNotNull(listener, "listener"); // We set host to null for test. - if (address != null) { + if (host != null) { BufferedSource source; BufferedSink sink; try { - if (address.isUnresolved()) { - socket = new Socket(address.getHostName(), address.getPort()); - } else { - socket = new Socket(address.getAddress(), address.getPort()); - } + socket = new Socket(host, port); if (sslSocketFactory != null) { socket = OkHttpTlsUpgrader.upgrade( - sslSocketFactory, socket, authorityHost, address.getPort(), connectionSpec); + sslSocketFactory, socket, authorityHost, port, connectionSpec); } socket.setTcpNoDelay(true); source = Okio.buffer(Okio.source(socket)); diff --git a/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpClientTransportFactory.java b/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpClientTransportFactory.java index 3bf1201fa5..c0305039e3 100644 --- a/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpClientTransportFactory.java +++ b/okhttp/src/main/java/io/grpc/transport/okhttp/OkHttpClientTransportFactory.java @@ -38,7 +38,6 @@ import com.squareup.okhttp.ConnectionSpec; import io.grpc.transport.ClientTransport; import io.grpc.transport.ClientTransportFactory; -import java.net.InetSocketAddress; import java.util.concurrent.ExecutorService; import javax.net.ssl.SSLSocketFactory; @@ -47,15 +46,17 @@ import javax.net.ssl.SSLSocketFactory; * Factory that manufactures instances of {@link OkHttpClientTransport}. */ class OkHttpClientTransportFactory implements ClientTransportFactory { - private final InetSocketAddress address; + private final String host; + private final int port; private final ExecutorService executor; private final String authorityHost; private final SSLSocketFactory sslSocketFactory; private final ConnectionSpec connectionSpec; - public OkHttpClientTransportFactory(InetSocketAddress address, String authorityHost, + public OkHttpClientTransportFactory(String host, int port, String authorityHost, ExecutorService executor, SSLSocketFactory factory, ConnectionSpec connectionSpec) { - this.address = Preconditions.checkNotNull(address, "address"); + this.host = Preconditions.checkNotNull(host, "host"); + this.port = port; this.executor = Preconditions.checkNotNull(executor, "executor"); this.authorityHost = Preconditions.checkNotNull(authorityHost, "authorityHost"); this.sslSocketFactory = factory; @@ -65,7 +66,7 @@ class OkHttpClientTransportFactory implements ClientTransportFactory { @Override public ClientTransport newClientTransport() { return new OkHttpClientTransport( - address, authorityHost, executor, sslSocketFactory, connectionSpec); + host, port, authorityHost, executor, sslSocketFactory, connectionSpec); } }