aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext/transport
diff options
context:
space:
mode:
authorGravatar ncteisen <ncteisen@gmail.com>2018-09-26 17:19:39 -0700
committerGravatar ncteisen <ncteisen@gmail.com>2018-09-26 17:19:39 -0700
commitf13a74312672aaf7c72e984f59dbd351dcda4e8a (patch)
tree840716a1eb06ae803131e116db3e7f4dcd8109df /src/core/ext/transport
parentc3db7d21ce1dfbd6f25bde500af62fd1c197928f (diff)
Implement child socket support
Diffstat (limited to 'src/core/ext/transport')
-rw-r--r--src/core/ext/transport/chttp2/transport/chttp2_transport.cc12
-rw-r--r--src/core/ext/transport/cronet/transport/cronet_transport.cc6
-rw-r--r--src/core/ext/transport/inproc/inproc_transport.cc5
3 files changed, 20 insertions, 3 deletions
diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
index d3232f4d26..202da652de 100644
--- a/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
+++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.cc
@@ -3157,6 +3157,15 @@ static grpc_endpoint* chttp2_get_endpoint(grpc_transport* t) {
return (reinterpret_cast<grpc_chttp2_transport*>(t))->ep;
}
+static void populate_sockets(grpc_transport* transport,
+ grpc_core::ChildRefsList* child_sockets) {
+ grpc_chttp2_transport* t =
+ reinterpret_cast<grpc_chttp2_transport*>(transport);
+ if (t->channelz_socket != nullptr) {
+ child_sockets->push_back(t->channelz_socket->uuid());
+ }
+}
+
static const grpc_transport_vtable vtable = {sizeof(grpc_chttp2_stream),
"chttp2",
init_stream,
@@ -3166,7 +3175,8 @@ static const grpc_transport_vtable vtable = {sizeof(grpc_chttp2_stream),
perform_transport_op,
destroy_stream,
destroy_transport,
- chttp2_get_endpoint};
+ chttp2_get_endpoint,
+ populate_sockets};
static const grpc_transport_vtable* get_vtable(void) { return &vtable; }
diff --git a/src/core/ext/transport/cronet/transport/cronet_transport.cc b/src/core/ext/transport/cronet/transport/cronet_transport.cc
index 81e2634e3a..f3826a78de 100644
--- a/src/core/ext/transport/cronet/transport/cronet_transport.cc
+++ b/src/core/ext/transport/cronet/transport/cronet_transport.cc
@@ -1439,6 +1439,9 @@ static grpc_endpoint* get_endpoint(grpc_transport* gt) { return nullptr; }
static void perform_op(grpc_transport* gt, grpc_transport_op* op) {}
+static void populate_sockets(grpc_transport* t,
+ grpc_core::ChildRefsList* child_sockets) {}
+
static const grpc_transport_vtable grpc_cronet_vtable = {
sizeof(stream_obj),
"cronet_http",
@@ -1449,7 +1452,8 @@ static const grpc_transport_vtable grpc_cronet_vtable = {
perform_op,
destroy_stream,
destroy_transport,
- get_endpoint};
+ get_endpoint,
+ populate_sockets};
grpc_transport* grpc_create_cronet_transport(void* engine, const char* target,
const grpc_channel_args* args,
diff --git a/src/core/ext/transport/inproc/inproc_transport.cc b/src/core/ext/transport/inproc/inproc_transport.cc
index b0ca7f8207..2deaacb2e0 100644
--- a/src/core/ext/transport/inproc/inproc_transport.cc
+++ b/src/core/ext/transport/inproc/inproc_transport.cc
@@ -1170,6 +1170,9 @@ static void set_pollset_set(grpc_transport* gt, grpc_stream* gs,
static grpc_endpoint* get_endpoint(grpc_transport* t) { return nullptr; }
+static void populate_sockets(grpc_transport* t,
+ grpc_core::ChildRefsList* child_sockets) {}
+
/*******************************************************************************
* GLOBAL INIT AND DESTROY
*/
@@ -1194,7 +1197,7 @@ static const grpc_transport_vtable inproc_vtable = {
sizeof(inproc_stream), "inproc", init_stream,
set_pollset, set_pollset_set, perform_stream_op,
perform_transport_op, destroy_stream, destroy_transport,
- get_endpoint};
+ get_endpoint, populate_sockets};
/*******************************************************************************
* Main inproc transport functions