diff options
author | 2016-11-29 14:24:42 -0800 | |
---|---|---|
committer | 2016-11-29 14:24:42 -0800 | |
commit | 6c3d040ebf01605082d026fd721f87faacf966b5 (patch) | |
tree | ad7be6a55579061dbdbf679cba2382039e1996e6 /src/core/ext/transport | |
parent | 95fcb58fc1c3f71e42dd1a7a618d31bf2ae6e43e (diff) | |
parent | 0610434185cd528b72e5be936075cae4c4a07a8e (diff) |
Merge branch 'security_handshaker1' into security_handshaker2
Diffstat (limited to 'src/core/ext/transport')
3 files changed, 22 insertions, 6 deletions
diff --git a/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c b/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c index 86d43e5721..9284d19357 100644 --- a/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c +++ b/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c @@ -114,8 +114,6 @@ static void on_handshake_done(grpc_exec_ctx *exec_ctx, void *arg, const char *error_str = grpc_error_string(error); gpr_log(GPR_ERROR, "Handshaking failed: %s", error_str); grpc_error_free_string(error_str); - grpc_endpoint_destroy(exec_ctx, args->endpoint); - gpr_free(args->read_buffer); gpr_mu_lock(&connection_state->server_state->mu); } else { gpr_mu_lock(&connection_state->server_state->mu); @@ -132,7 +130,10 @@ static void on_handshake_done(grpc_exec_ctx *exec_ctx, void *arg, // Need to destroy this here, because the server may have already // gone away. grpc_endpoint_destroy(exec_ctx, args->endpoint); + grpc_slice_buffer_destroy(args->read_buffer); + gpr_free(args->read_buffer); } + grpc_channel_args_destroy(args->args); } pending_handshake_manager_remove_locked(connection_state->server_state, connection_state->handshake_mgr); @@ -140,7 +141,6 @@ static void on_handshake_done(grpc_exec_ctx *exec_ctx, void *arg, grpc_handshake_manager_destroy(exec_ctx, connection_state->handshake_mgr); grpc_tcp_server_unref(exec_ctx, connection_state->server_state->tcp_server); gpr_free(connection_state); - grpc_channel_args_destroy(args->args); } static void on_accept(grpc_exec_ctx *exec_ctx, void *arg, grpc_endpoint *tcp, diff --git a/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c b/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c index ab0cebe902..afdf93398f 100644 --- a/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c +++ b/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c @@ -121,8 +121,6 @@ static void on_handshake_done(grpc_exec_ctx *exec_ctx, void *arg, const char *error_str = grpc_error_string(error); gpr_log(GPR_ERROR, "Handshaking failed: %s", error_str); grpc_error_free_string(error_str); - grpc_endpoint_destroy(exec_ctx, args->endpoint); - gpr_free(args->read_buffer); gpr_mu_lock(&connection_state->server_state->mu); } else { gpr_mu_lock(&connection_state->server_state->mu); @@ -143,7 +141,10 @@ static void on_handshake_done(grpc_exec_ctx *exec_ctx, void *arg, // Need to destroy this here, because the server may have already // gone away. grpc_endpoint_destroy(exec_ctx, args->endpoint); + grpc_slice_buffer_destroy(args->read_buffer); + gpr_free(args->read_buffer); } + grpc_channel_args_destroy(args->args); } pending_handshake_manager_remove_locked(connection_state->server_state, connection_state->handshake_mgr); @@ -151,7 +152,6 @@ static void on_handshake_done(grpc_exec_ctx *exec_ctx, void *arg, grpc_handshake_manager_destroy(exec_ctx, connection_state->handshake_mgr); grpc_tcp_server_unref(exec_ctx, connection_state->server_state->tcp_server); gpr_free(connection_state); - grpc_channel_args_destroy(args->args); } static void on_accept(grpc_exec_ctx *exec_ctx, void *arg, grpc_endpoint *tcp, diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.c b/src/core/ext/transport/chttp2/transport/chttp2_transport.c index 127e1cdc13..4e3c7ff681 100644 --- a/src/core/ext/transport/chttp2/transport/chttp2_transport.c +++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.c @@ -954,6 +954,16 @@ static void complete_fetch(grpc_exec_ctx *exec_ctx, void *gs, static void do_nothing(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) {} +static void log_metadata(const grpc_metadata_batch *md_batch, uint32_t id, + bool is_client, bool is_initial) { + for (grpc_linked_mdelem *md = md_batch->list.head; md != md_batch->list.tail; + md = md->next) { + gpr_log(GPR_INFO, "HTTP:%d:%s:%s: %s: %s", id, is_initial ? "HDR" : "TRL", + is_client ? "CLI" : "SVR", grpc_mdstr_as_c_string(md->md->key), + grpc_mdstr_as_c_string(md->md->value)); + } +} + static void perform_stream_op_locked(grpc_exec_ctx *exec_ctx, void *stream_op, grpc_error *error_ignored) { GPR_TIMER_BEGIN("perform_stream_op_locked", 0); @@ -967,6 +977,12 @@ static void perform_stream_op_locked(grpc_exec_ctx *exec_ctx, void *stream_op, gpr_log(GPR_DEBUG, "perform_stream_op_locked: %s; on_complete = %p", str, op->on_complete); gpr_free(str); + if (op->send_initial_metadata) { + log_metadata(op->send_initial_metadata, s->id, t->is_client, true); + } + if (op->send_trailing_metadata) { + log_metadata(op->send_trailing_metadata, s->id, t->is_client, false); + } } grpc_closure *on_complete = op->on_complete; |