aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Bogdan Drutu <bdrutu@google.com>2016-01-24 18:00:26 -0800
committerGravatar Bogdan Drutu <bdrutu@google.com>2016-01-24 18:00:26 -0800
commit9e0953c001286e422697f1916e22e8037071086b (patch)
treeb17764756ba0742b13cd498e073a19b508b6a04d /src/core
parent50b58e1a346373bd6929db8e4af6fd56bdf7fa1a (diff)
Fix the census initialization on the server. Remove duplicate initialization logic and also enable census per channel if census is initialized.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/surface/server.c12
-rw-r--r--src/core/surface/server_create.c5
2 files changed, 7 insertions, 10 deletions
diff --git a/src/core/surface/server.c b/src/core/surface/server.c
index 79db13810a..43f32a06b8 100644
--- a/src/core/surface/server.c
+++ b/src/core/surface/server.c
@@ -37,6 +37,7 @@
#include <stdlib.h>
#include <string.h>
+#include <grpc/census.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
@@ -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 f30093e06b..79cc3c3fc6 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);
}