From 16cca9f4c1ced3d8ac2d21ac395249c8063e230b Mon Sep 17 00:00:00 2001 From: Carl Mastrangelo Date: Tue, 6 Feb 2018 12:29:01 -0800 Subject: [PATCH] Check return values from ServiceReflection calls, and print a more helpful message --- .../proto_reflection_descriptor_database.cc | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/test/cpp/util/proto_reflection_descriptor_database.cc b/test/cpp/util/proto_reflection_descriptor_database.cc index 0f779346725..42b1f4e75cd 100644 --- a/test/cpp/util/proto_reflection_descriptor_database.cc +++ b/test/cpp/util/proto_reflection_descriptor_database.cc @@ -43,6 +43,11 @@ ProtoReflectionDescriptorDatabase::~ProtoReflectionDescriptorDatabase() { stream_->WritesDone(); Status status = stream_->Finish(); if (!status.ok()) { + if (status.error_code() == StatusCode::UNIMPLEMENTED) { + gpr_log(GPR_INFO, + "Reflection request not implemented; " + "is the ServerReflection service enabled?"); + } gpr_log(GPR_INFO, "ServerReflectionInfo rpc failed. Error code: %d, details: %s", (int)status.error_code(), status.error_message().c_str()); @@ -64,7 +69,9 @@ bool ProtoReflectionDescriptorDatabase::FindFileByName( request.set_file_by_filename(filename); ServerReflectionResponse response; - DoOneRequest(request, response); + if (!DoOneRequest(request, response)) { + return false; + } if (response.message_response_case() == ServerReflectionResponse::MessageResponseCase::kFileDescriptorResponse) { @@ -109,7 +116,9 @@ bool ProtoReflectionDescriptorDatabase::FindFileContainingSymbol( request.set_file_containing_symbol(symbol_name); ServerReflectionResponse response; - DoOneRequest(request, response); + if (!DoOneRequest(request, response)) { + return false; + } if (response.message_response_case() == ServerReflectionResponse::MessageResponseCase::kFileDescriptorResponse) { @@ -163,7 +172,9 @@ bool ProtoReflectionDescriptorDatabase::FindFileContainingExtension( field_number); ServerReflectionResponse response; - DoOneRequest(request, response); + if (!DoOneRequest(request, response)) { + return false; + } if (response.message_response_case() == ServerReflectionResponse::MessageResponseCase::kFileDescriptorResponse) { @@ -213,7 +224,9 @@ bool ProtoReflectionDescriptorDatabase::FindAllExtensionNumbers( request.set_all_extension_numbers_of_type(extendee_type); ServerReflectionResponse response; - DoOneRequest(request, response); + if (!DoOneRequest(request, response)) { + return false; + } if (response.message_response_case() == ServerReflectionResponse::MessageResponseCase:: @@ -245,7 +258,9 @@ bool ProtoReflectionDescriptorDatabase::GetServices( request.set_list_services(""); ServerReflectionResponse response; - DoOneRequest(request, response); + if (!DoOneRequest(request, response)) { + return false; + } if (response.message_response_case() == ServerReflectionResponse::MessageResponseCase::kListServicesResponse) {