From 9e0953c001286e422697f1916e22e8037071086b Mon Sep 17 00:00:00 2001 From: Bogdan Drutu Date: Sun, 24 Jan 2016 18:00:26 -0800 Subject: [PATCH] Fix the census initialization on the server. Remove duplicate initialization logic and also enable census per channel if census is initialized. --- src/core/surface/server.c | 12 ++++++------ src/core/surface/server_create.c | 5 +---- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/core/surface/server.c b/src/core/surface/server.c index 79db13810aa..43f32a06b80 100644 --- a/src/core/surface/server.c +++ b/src/core/surface/server.c @@ -37,6 +37,7 @@ #include #include +#include #include #include #include @@ -779,9 +780,8 @@ grpc_server *grpc_server_create_from_filters( const grpc_channel_filter **filters, size_t filter_count, const grpc_channel_args *args) { size_t i; - /* TODO(census): restore this once we finalize census filter etc. - int census_enabled = grpc_channel_args_is_census_enabled(args); */ - int census_enabled = 0; + int enable_census = + grpc_channel_args_is_census_enabled(args) || census_enabled(); grpc_server *server = gpr_malloc(sizeof(grpc_server)); @@ -815,15 +815,15 @@ grpc_server *grpc_server_create_from_filters( grpc_server_census_filter (optional) - for stats collection and tracing {passed in filter stack} grpc_connected_channel_filter - for interfacing with transports */ - server->channel_filter_count = filter_count + 1u + (census_enabled ? 1u : 0u); + server->channel_filter_count = filter_count + 1u + (enable_census ? 1u : 0u); server->channel_filters = gpr_malloc(server->channel_filter_count * sizeof(grpc_channel_filter *)); server->channel_filters[0] = &server_surface_filter; - if (census_enabled) { + if (enable_census) { server->channel_filters[1] = &grpc_server_census_filter; } for (i = 0; i < filter_count; i++) { - server->channel_filters[i + 1u + (census_enabled ? 1u : 0u)] = filters[i]; + server->channel_filters[i + 1u + (enable_census ? 1u : 0u)] = filters[i]; } server->channel_args = grpc_channel_args_copy(args); diff --git a/src/core/surface/server_create.c b/src/core/surface/server_create.c index f30093e06b9..79cc3c3fc67 100644 --- a/src/core/surface/server_create.c +++ b/src/core/surface/server_create.c @@ -40,12 +40,9 @@ #include "src/core/surface/server.h" grpc_server *grpc_server_create(const grpc_channel_args *args, void *reserved) { - const grpc_channel_filter *filters[3]; + const grpc_channel_filter *filters[2]; size_t num_filters = 0; filters[num_filters++] = &grpc_compress_filter; - if (grpc_channel_args_is_census_enabled(args)) { - filters[num_filters++] = &grpc_server_census_filter; - } GRPC_API_TRACE("grpc_server_create(%p, %p)", 2, (args, reserved)); return grpc_server_create_from_filters(filters, num_filters, args); }