From a09aaf06ecd52ed4c2d623dc9a617d9411a1f3c3 Mon Sep 17 00:00:00 2001 From: Hannah Shi Date: Thu, 15 Aug 2024 09:16:58 -0700 Subject: [PATCH] [ObjC] fix error handling in CFWriteStreamWrite (#37344) follow up of #37255 Closes #37344 COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/37344 from HannahShiSFB:cfstream-write-error-handling c9a751d9d73debb53c1d2f8b81808ca874e76836 PiperOrigin-RevId: 663329438 --- .../lib/event_engine/cf_engine/cfstream_endpoint.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc b/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc index 47e67d8e4a48f..4721437860b91 100644 --- a/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +++ b/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc @@ -335,9 +335,18 @@ void CFStreamEndpointImpl::DoWrite( continue; } - size_t written_size = + CFIndex written_size = CFWriteStreamWrite(cf_write_stream_, slice.begin(), slice.size()); + if (written_size < 0) { + auto status = CFErrorToStatus(CFWriteStreamCopyError(cf_write_stream_)); + GRPC_TRACE_LOG(event_engine_endpoint, INFO) + << "CFStream write error: " << status + << ", written_size: " << written_size; + on_writable(status); + return; + } + total_written_size += written_size; if (written_size < slice.size()) { SliceBuffer written;