Skip to content

Commit 016d4a5

Browse files
committed
Use bytes instead of a string for IP address.
Ported from internal.
1 parent 9913d1d commit 016d4a5

File tree

6 files changed

+68
-129
lines changed

6 files changed

+68
-129
lines changed

grpclb/src/generated/main/java/io/grpc/grpclb/LoadBalancerProto.java

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

grpclb/src/generated/main/java/io/grpc/grpclb/Server.java

Lines changed: 41 additions & 106 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

grpclb/src/generated/main/java/io/grpc/grpclb/ServerOrBuilder.java

Lines changed: 6 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

grpclb/src/main/java/io/grpc/grpclb/GrpclbLoadBalancer.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import com.google.common.base.Preconditions;
3636
import com.google.common.base.Supplier;
3737
import com.google.common.base.Suppliers;
38+
import com.google.common.base.Throwables;
3839

3940
import io.grpc.Attributes;
4041
import io.grpc.Channel;
@@ -49,8 +50,10 @@
4950
import io.grpc.internal.SharedResourceHolder;
5051
import io.grpc.stub.StreamObserver;
5152

53+
import java.net.InetAddress;
5254
import java.net.InetSocketAddress;
5355
import java.net.SocketAddress;
56+
import java.net.UnknownHostException;
5457
import java.util.ArrayList;
5558
import java.util.HashMap;
5659
import java.util.HashSet;
@@ -285,13 +288,17 @@ private class LbResponseObserver implements StreamObserver<LoadBalanceResponse>
285288
if (server.getDropRequest()) {
286289
listBuilder.add(null);
287290
} else {
288-
InetSocketAddress address = new InetSocketAddress(
289-
server.getIpAddress(), server.getPort());
290-
listBuilder.add(address);
291-
// TODO(zhangkun83): fill the LB token to the attributes, and insert it to the
292-
// application RPCs.
293-
if (!newServerMap.containsKey(address)) {
294-
newServerMap.put(address, new ResolvedServerInfo(address, Attributes.EMPTY));
291+
try {
292+
InetSocketAddress address = new InetSocketAddress(
293+
InetAddress.getByAddress(server.getIpAddress().toByteArray()), server.getPort());
294+
listBuilder.add(address);
295+
// TODO(zhangkun83): fill the LB token to the attributes, and insert it to the
296+
// application RPCs.
297+
if (!newServerMap.containsKey(address)) {
298+
newServerMap.put(address, new ResolvedServerInfo(address, Attributes.EMPTY));
299+
}
300+
} catch (UnknownHostException e) {
301+
Throwables.propagate(e);
295302
}
296303
}
297304
}

grpclb/src/main/proto/load_balancer.proto

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,11 @@ message ServerList {
8989
}
9090

9191
message Server {
92-
// A resolved address and port for the server. The IP address string may
92+
// A resolved address for the server, serialized in network-byte-order. It may
9393
// either be an IPv4 or IPv6 address.
94-
string ip_address = 1;
94+
bytes ip_address = 1;
95+
96+
// A resolved port number for the server.
9597
int32 port = 2;
9698

9799
// An opaque token that is passed from the client to the server in metadata.

grpclb/src/test/java/io/grpc/grpclb/GrpclbLoadBalancerTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import static org.mockito.Mockito.withSettings;
4747

4848
import com.google.common.base.Supplier;
49+
import com.google.protobuf.ByteString;
4950

5051
import io.grpc.Attributes;
5152
import io.grpc.EquivalentAddressGroup;
@@ -476,7 +477,7 @@ private static LoadBalanceResponse buildLbResponse(List<ResolvedServerInfo> serv
476477
for (ResolvedServerInfo server : servers) {
477478
InetSocketAddress addr = (InetSocketAddress) server.getAddress();
478479
serverListBuilder.addServers(Server.newBuilder()
479-
.setIpAddress(addr.getHostString())
480+
.setIpAddress(ByteString.copyFrom(addr.getAddress().getAddress()))
480481
.setPort(addr.getPort())
481482
.build());
482483
}

0 commit comments

Comments
 (0)