diff options
author | ncteisen <ncteisen@gmail.com> | 2018-10-03 18:29:38 -0700 |
---|---|---|
committer | ncteisen <ncteisen@gmail.com> | 2018-10-09 12:06:46 -0700 |
commit | 9b0223f1c5b5b2e8eb4ad2763f19415a7f26b09f (patch) | |
tree | f9e70c6f6d8779f78b11f577342a65aa59098caf /src/core/lib/surface/server.cc | |
parent | a74885d47806af16054648ee6ac886f014b19b1e (diff) |
Add skeleton listen socket support
Diffstat (limited to 'src/core/lib/surface/server.cc')
-rw-r--r-- | src/core/lib/surface/server.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/core/lib/surface/server.cc b/src/core/lib/surface/server.cc index 3a536b07d7..35ab2c3bce 100644 --- a/src/core/lib/surface/server.cc +++ b/src/core/lib/surface/server.cc @@ -54,6 +54,7 @@ struct listener { size_t pollset_count); void (*destroy)(grpc_server* server, void* arg, grpc_closure* closure); struct listener* next; + intptr_t socket_uuid; grpc_closure destroy_done; }; @@ -1230,6 +1231,15 @@ void grpc_server_populate_server_sockets( gpr_mu_unlock(&s->mu_global); } +void grpc_server_populate_listen_sockets( + grpc_server* server, grpc_core::channelz::ChildRefsList* listen_sockets) { + gpr_mu_lock(&server->mu_global); + for (listener* l = server->listeners; l != nullptr; l = l->next) { + listen_sockets->push_back(l->socket_uuid); + } + gpr_mu_unlock(&server->mu_global); +} + void done_published_shutdown(void* done_arg, grpc_cq_completion* storage) { (void)done_arg; gpr_free(storage); @@ -1363,11 +1373,13 @@ void grpc_server_add_listener(grpc_server* server, void* arg, grpc_pollset** pollsets, size_t pollset_count), void (*destroy)(grpc_server* server, void* arg, - grpc_closure* on_done)) { + grpc_closure* on_done), + intptr_t socket_uuid) { listener* l = static_cast<listener*>(gpr_malloc(sizeof(listener))); l->arg = arg; l->start = start; l->destroy = destroy; + l->socket_uuid = socket_uuid; l->next = server->listeners; server->listeners = l; } |