diff options
author | 2016-11-11 15:03:39 -0800 | |
---|---|---|
committer | 2016-11-11 15:03:39 -0800 | |
commit | 27588bbfb9fb38c2ac7a3eb98fb1de459a014af6 (patch) | |
tree | 2d0b2532b7679b15d52d0ac32176a2f5e93dac03 /src/core/ext/transport/chttp2/server/secure | |
parent | aaefa958d796e8f9ec1fe48df61ca0fd9425be48 (diff) |
Change handshake manager to invoke callbacks via an exec_ctx.
Diffstat (limited to 'src/core/ext/transport/chttp2/server/secure')
-rw-r--r-- | src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c | 20 |
1 files changed, 11 insertions, 9 deletions
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 942638ad7f..0002a5cb30 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 @@ -115,18 +115,19 @@ static void on_secure_handshake_done(grpc_exec_ctx *exec_ctx, void *statep, gpr_free(connection_state); } -static void on_handshake_done(grpc_exec_ctx *exec_ctx, grpc_endpoint *endpoint, - grpc_channel_args *args, - grpc_slice_buffer *read_buffer, void *user_data, +static void on_handshake_done(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) { - server_secure_connect *connection_state = user_data; + grpc_handshaker_args* args = arg; + server_secure_connect *connection_state = args->user_data; if (error != GRPC_ERROR_NONE) { const char *error_str = grpc_error_string(error); gpr_log(GPR_ERROR, "Handshaking failed: %s", error_str); grpc_error_free_string(error_str); - GRPC_ERROR_UNREF(error); - grpc_channel_args_destroy(args); - gpr_free(read_buffer); +// FIXME: remove? +// GRPC_ERROR_UNREF(error); + grpc_channel_args_destroy(args->args); + gpr_free(args->read_buffer); + gpr_free(args); grpc_handshake_manager_shutdown(exec_ctx, connection_state->handshake_mgr); grpc_handshake_manager_destroy(exec_ctx, connection_state->handshake_mgr); grpc_tcp_server_unref(exec_ctx, connection_state->server_state->tcp); @@ -138,11 +139,12 @@ static void on_handshake_done(grpc_exec_ctx *exec_ctx, grpc_endpoint *endpoint, // TODO(roth, jboeuf): Convert security connector handshaking to use new // handshake API, and then move the code from on_secure_handshake_done() // into this function. - connection_state->args = args; + connection_state->args = args->args; grpc_server_security_connector_do_handshake( exec_ctx, connection_state->server_state->sc, connection_state->acceptor, - endpoint, read_buffer, connection_state->deadline, + args->endpoint, args->read_buffer, connection_state->deadline, on_secure_handshake_done, connection_state); + gpr_free(args); } static void on_accept(grpc_exec_ctx *exec_ctx, void *statep, grpc_endpoint *tcp, |