diff options
author | 2016-12-13 17:33:51 -0800 | |
---|---|---|
committer | 2017-01-06 14:52:21 -0800 | |
commit | dc21a4efb281459b4d3d046cc17ea89e5b56f878 (patch) | |
tree | adc378617d414bc154c19bbe9e94a00fce1bf92c /src/core/lib/surface | |
parent | 732351f8267e51711abd3a390d940c8177871c97 (diff) |
Error handling cleanup
Diffstat (limited to 'src/core/lib/surface')
-rw-r--r-- | src/core/lib/surface/call.c | 8 | ||||
-rw-r--r-- | src/core/lib/surface/server.c | 10 |
2 files changed, 9 insertions, 9 deletions
diff --git a/src/core/lib/surface/call.c b/src/core/lib/surface/call.c index 4abf981997..17fda435aa 100644 --- a/src/core/lib/surface/call.c +++ b/src/core/lib/surface/call.c @@ -336,10 +336,7 @@ grpc_error *grpc_call_create(grpc_exec_ctx *exec_ctx, args->server_transport_data, path, call->start_time, send_deadline, CALL_STACK_FROM_CALL(call)); if (error != GRPC_ERROR_NONE) { - grpc_status_code status; - const char *error_str; - grpc_error_get_status(error, &status, &error_str); - cancel_with_status(exec_ctx, call, status, error_str); + cancel_with_error(exec_ctx, call, GRPC_ERROR_REF(error)); } if (args->cq != NULL) { GPR_ASSERT( @@ -612,7 +609,8 @@ static void get_final_status(grpc_call *call, grpc_status_code code; const char *msg = NULL; - grpc_error_get_status(call->status[i].error, &code, &msg); + grpc_error_get_status(call->status[i].error, call->send_deadline, &code, + &msg, NULL); set_value(code, set_value_user_data); if (details != NULL) { *details = grpc_slice_from_copied_string(msg); diff --git a/src/core/lib/surface/server.c b/src/core/lib/surface/server.c index 7af951f2a0..b5f905bf04 100644 --- a/src/core/lib/surface/server.c +++ b/src/core/lib/surface/server.c @@ -280,18 +280,20 @@ static void shutdown_cleanup(grpc_exec_ctx *exec_ctx, void *arg, } static void send_shutdown(grpc_exec_ctx *exec_ctx, grpc_channel *channel, - int send_goaway, grpc_error *send_disconnect) { + bool send_goaway, grpc_error *send_disconnect) { struct shutdown_cleanup_args *sc = gpr_malloc(sizeof(*sc)); grpc_closure_init(&sc->closure, shutdown_cleanup, sc, grpc_schedule_on_exec_ctx); grpc_transport_op *op = grpc_make_transport_op(&sc->closure); grpc_channel_element *elem; - op->send_goaway = send_goaway; + op->goaway_error = + send_goaway + ? grpc_error_set_int(GRPC_ERROR_CREATE("Server shutdown"), + GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_OK) + : GRPC_ERROR_NONE; op->set_accept_stream = true; sc->slice = grpc_slice_from_copied_string("Server shutdown"); - op->goaway_message = &sc->slice; - op->goaway_status = GRPC_STATUS_OK; op->disconnect_with_error = send_disconnect; elem = grpc_channel_stack_element(grpc_channel_get_channel_stack(channel), 0); |