@ -170,6 +170,8 @@ struct grpc_call {
bool destroy_called = false ;
bool destroy_called = false ;
/** flag indicating that cancellation is inherited */
/** flag indicating that cancellation is inherited */
bool cancellation_is_inherited = false ;
bool cancellation_is_inherited = false ;
// Trailers-only response status
bool is_trailers_only = false ;
/** which ops are in-flight */
/** which ops are in-flight */
bool sent_initial_metadata = false ;
bool sent_initial_metadata = false ;
bool sending_message = false ;
bool sending_message = false ;
@ -1825,7 +1827,10 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
& call - > metadata_batch [ 1 /* is_receiving */ ] [ 0 /* is_trailing */ ] ;
& call - > metadata_batch [ 1 /* is_receiving */ ] [ 0 /* is_trailing */ ] ;
stream_op_payload - > recv_initial_metadata . recv_initial_metadata_ready =
stream_op_payload - > recv_initial_metadata . recv_initial_metadata_ready =
& call - > receiving_initial_metadata_ready ;
& call - > receiving_initial_metadata_ready ;
if ( ! call - > is_client ) {
if ( call - > is_client ) {
stream_op_payload - > recv_initial_metadata . trailing_metadata_available =
& call - > is_trailers_only ;
} else {
stream_op_payload - > recv_initial_metadata . peer_string =
stream_op_payload - > recv_initial_metadata . peer_string =
& call - > peer_string ;
& call - > peer_string ;
}
}
@ -2017,6 +2022,10 @@ grpc_compression_algorithm grpc_call_compression_for_level(
return algo ;
return algo ;
}
}
bool grpc_call_is_trailers_only ( const grpc_call * call ) {
return call - > is_trailers_only ;
}
bool grpc_call_failed_before_recv_message ( const grpc_call * c ) {
bool grpc_call_failed_before_recv_message ( const grpc_call * c ) {
return c - > call_failed_before_recv_message ;
return c - > call_failed_before_recv_message ;
}
}