From f7afa1f1ba4953c7bd6d20f0bbabc5742d3faea8 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Fri, 26 Jun 2015 09:02:20 -0700 Subject: client_config: chttp2_fullstack_no_op_unsecure_test passes --- src/core/client_config/subchannel.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/core/client_config/subchannel.c') diff --git a/src/core/client_config/subchannel.c b/src/core/client_config/subchannel.c index 588c63cdd3..037f0c0ab0 100644 --- a/src/core/client_config/subchannel.c +++ b/src/core/client_config/subchannel.c @@ -33,11 +33,22 @@ #include "src/core/client_config/subchannel.h" +#include + #include struct grpc_subchannel { gpr_refcount refs; grpc_connector *connector; + + /** non-transport related channel filters */ + const grpc_channel_filter **filters; + size_t filter_count; + /** channel arguments */ + grpc_channel_args *args; + /** address to connect to */ + struct sockaddr *addr; + size_t addr_len; }; struct grpc_subchannel_call { @@ -59,6 +70,23 @@ void grpc_subchannel_unref(grpc_subchannel *channel) { } } +grpc_subchannel *grpc_subchannel_create(grpc_connector *connector, + grpc_subchannel_args *args) { + grpc_subchannel *c = gpr_malloc(sizeof(*c)); + memset(c, 0, sizeof(*c)); + gpr_ref_init(&c->refs, 1); + c->connector = connector; + grpc_connector_ref(c->connector); + c->filters = gpr_malloc(sizeof(grpc_channel_filter *) * args->filter_count); + memcpy(c->filters, args->filters, + sizeof(grpc_channel_filter *) * args->filter_count); + c->filter_count = args->filter_count; + c->addr = gpr_malloc(args->addr_len); + memcpy(c->addr, args->addr, args->addr_len); + c->addr_len = args->addr_len; + return c; +} + /* * grpc_subchannel_call implementation */ -- cgit v1.2.3