aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/client_config/subchannel.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-06-26 09:02:20 -0700
committerGravatar Craig Tiller <ctiller@google.com>2015-06-26 09:02:20 -0700
commitf7afa1f1ba4953c7bd6d20f0bbabc5742d3faea8 (patch)
tree651bfcbdb62fb9e464ed360ddd639c216469a484 /src/core/client_config/subchannel.c
parent916246625bad68c6ea63d5a2cfca644a7e01cfe1 (diff)
client_config: chttp2_fullstack_no_op_unsecure_test passes
Diffstat (limited to 'src/core/client_config/subchannel.c')
-rw-r--r--src/core/client_config/subchannel.c28
1 files changed, 28 insertions, 0 deletions
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 <string.h>
+
#include <grpc/support/alloc.h>
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
*/