aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext/filters/client_channel/subchannel.cc
diff options
context:
space:
mode:
authorGravatar ncteisen <ncteisen@gmail.com>2018-09-27 09:45:59 -0500
committerGravatar ncteisen <ncteisen@gmail.com>2018-09-27 09:45:59 -0500
commit4cc16f951c0909196a9ed62774adcbbaf9cc88c1 (patch)
tree6ce70223a7ba7af7bdc449381a27b534ae5705e3 /src/core/ext/filters/client_channel/subchannel.cc
parentf13a74312672aaf7c72e984f59dbd351dcda4e8a (diff)
Simplifiy transport querying function
Diffstat (limited to 'src/core/ext/filters/client_channel/subchannel.cc')
-rw-r--r--src/core/ext/filters/client_channel/subchannel.cc16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/core/ext/filters/client_channel/subchannel.cc b/src/core/ext/filters/client_channel/subchannel.cc
index 29aeb06e7b..4c33636646 100644
--- a/src/core/ext/filters/client_channel/subchannel.cc
+++ b/src/core/ext/filters/client_channel/subchannel.cc
@@ -97,7 +97,9 @@ struct grpc_subchannel {
/** set during connection */
grpc_connect_out_args connecting_result;
- grpc_transport* transport;
+ /** uuid of this subchannel's socket. 0 if this subchannel is not
+ connected */
+ intptr_t socket_uuid;
/** callback for connection finishing */
grpc_closure on_connected;
@@ -256,6 +258,7 @@ static void disconnect(grpc_subchannel* c) {
c->disconnected = true;
grpc_connector_shutdown(c->connector, GRPC_ERROR_CREATE_FROM_STATIC_STRING(
"Subchannel disconnected"));
+ c->socket_uuid = 0;
c->connected_subchannel.reset();
gpr_mu_unlock(&c->mu);
}
@@ -413,11 +416,9 @@ grpc_core::channelz::SubchannelNode* grpc_subchannel_get_channelz_node(
return subchannel->channelz_subchannel.get();
}
-void grpc_subchannel_populate_child_sockets(
- grpc_subchannel* subchannel, grpc_core::ChildRefsList* child_sockets) {
- if (subchannel->transport != nullptr) {
- grpc_transport_populate_sockets(subchannel->transport, child_sockets);
- }
+intptr_t grpc_subchannel_get_child_socket_uuid(
+ grpc_subchannel* subchannel) {
+ return subchannel->socket_uuid;
}
static void continue_connect_locked(grpc_subchannel* c) {
@@ -578,6 +579,7 @@ static void on_connected_subchannel_connectivity_changed(void* p,
grpc_connectivity_state_name(
connected_subchannel_watcher->connectivity_state));
}
+ c->socket_uuid = 0;
c->connected_subchannel.reset();
grpc_connectivity_state_set(&c->state_tracker,
GRPC_CHANNEL_TRANSIENT_FAILURE,
@@ -630,7 +632,7 @@ static bool publish_transport_locked(grpc_subchannel* c) {
GRPC_ERROR_UNREF(error);
return false;
}
- c->transport = c->connecting_result.transport;
+ c->socket_uuid = grpc_transport_get_socket_uuid(c->connecting_result.transport);
memset(&c->connecting_result, 0, sizeof(c->connecting_result));
/* initialize state watcher */