diff options
author | Yang Gao <yangg@google.com> | 2015-11-17 00:56:45 -0800 |
---|---|---|
committer | Yang Gao <yangg@google.com> | 2015-11-17 00:56:45 -0800 |
commit | 42630b010f398ca072a0ba89648855c3052c6594 (patch) | |
tree | 6aa2eec382a11e0d9cfe145426f68704d98fe5e8 /test | |
parent | 9e52a2dd81d1a1bda0aa78100d915816b0deebfd (diff) |
use a temp buffer to do read
Diffstat (limited to 'test')
-rw-r--r-- | test/core/client_config/set_initial_connect_string_test.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/test/core/client_config/set_initial_connect_string_test.c b/test/core/client_config/set_initial_connect_string_test.c index 25ef01d862..0b51eba732 100644 --- a/test/core/client_config/set_initial_connect_string_test.c +++ b/test/core/client_config/set_initial_connect_string_test.c @@ -54,6 +54,7 @@ struct rpc_state { grpc_call *call; grpc_op op; gpr_slice_buffer incoming_buffer; + gpr_slice_buffer temp_incoming_buffer; grpc_endpoint *tcp; int done; }; @@ -65,12 +66,15 @@ static grpc_closure on_read; static void handle_read(grpc_exec_ctx *exec_ctx, void *arg, int success) { GPR_ASSERT(success); + gpr_slice_buffer_move_into( + &state.temp_incoming_buffer, &state.incoming_buffer); if (state.incoming_buffer.length > strlen(magic_connect_string)) { state.done = 1; grpc_endpoint_shutdown(exec_ctx, state.tcp); grpc_endpoint_destroy(exec_ctx, state.tcp); } else { - grpc_endpoint_read(exec_ctx, state.tcp, &state.incoming_buffer, &on_read); + grpc_endpoint_read( + exec_ctx, state.tcp, &state.temp_incoming_buffer, &on_read); } } @@ -78,9 +82,10 @@ static void on_connect(grpc_exec_ctx *exec_ctx, void *arg, grpc_endpoint *tcp) { test_tcp_server *server = arg; grpc_closure_init(&on_read, handle_read, NULL); gpr_slice_buffer_init(&state.incoming_buffer); + gpr_slice_buffer_init(&state.temp_incoming_buffer); state.tcp = tcp; grpc_endpoint_add_to_pollset(exec_ctx, tcp, &server->pollset); - grpc_endpoint_read(exec_ctx, tcp, &state.incoming_buffer, &on_read); + grpc_endpoint_read(exec_ctx, tcp, &state.temp_incoming_buffer, &on_read); } static void set_magic_initial_string(struct sockaddr **addr, size_t *addr_len, @@ -139,6 +144,7 @@ static void start_rpc(int use_creds, int target_port) { static void cleanup_rpc(void) { grpc_event ev; gpr_slice_buffer_destroy(&state.incoming_buffer); + gpr_slice_buffer_destroy(&state.temp_incoming_buffer); grpc_credentials_unref(state.creds); grpc_call_destroy(state.call); grpc_completion_queue_shutdown(state.cq); |