From 0571bdf2ff311f8e968191552921193ebbc85eda Mon Sep 17 00:00:00 2001 From: Shaun McCormick Date: Thu, 22 Mar 2018 12:21:10 -0500 Subject: [PATCH 1/3] Modify PHP codegen to store responses so they can be looked up in real time --- src/compiler/php_generator.cc | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/compiler/php_generator.cc b/src/compiler/php_generator.cc index 78d9541971228..4b2b1df60c84a 100644 --- a/src/compiler/php_generator.cc +++ b/src/compiler/php_generator.cc @@ -275,10 +275,27 @@ void PrintService(const ServiceDescriptor* service, out->Print(GetPHPComments(service, " *").c_str()); out->Print(" */\n"); vars["name"] = GetPHPServiceClassname(service, class_suffix, is_server); - vars["extends"] = is_server ? "" : "extends \\Grpc\\BaseStub "; + vars["extends"] = is_server ? "" : "extends BaseStub "; out->Print(vars, "class $name$ $extends${\n\n"); out->Indent(); out->Indent(); + + out->Print("public function getExpectedResponseMessages() {\n"); + out->Indent(); + out->Print("return [\n"); + out->Indent(); + map response_vars; + for (int i = 0; i < service->method_count(); i++) { + const Descriptor* output_type = service->method(i)->output_type(); + response_vars["method_name"] = grpc_generator::LowercaseFirstLetter(service->method(i)->name()); + response_vars["output_type_id"] = MessageIdentifierName(GeneratedClassName(output_type), output_type->file()); + out->Print(response_vars, "'$method_name$' => '\\$output_type_id$',\n"); + } + out->Outdent(); + out->Print("];\n"); + out->Outdent(); + out->Print("}\n\n"); + if (!is_server) { out->Print( "/**\n * @param string $$hostname hostname\n" @@ -332,6 +349,8 @@ std::string GenerateFile(const FileDescriptor* file, vars["package"] = php_namespace; out.Print(vars, "namespace $package$;\n\n"); + out.Print("use \\Grpc\\BaseStub;\n\n"); + PrintService(service, class_suffix, is_server, &out); } return output; From 98da3f58e62ed70c554abe52691606d592594736 Mon Sep 17 00:00:00 2001 From: Shaun McCormick Date: Wed, 13 Jul 2022 18:41:34 -0500 Subject: [PATCH 2/3] Update grpc with our compiler additions --- src/compiler/php_generator.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/compiler/php_generator.cc b/src/compiler/php_generator.cc index 4b2b1df60c84a..47207c8317340 100644 --- a/src/compiler/php_generator.cc +++ b/src/compiler/php_generator.cc @@ -296,6 +296,15 @@ void PrintService(const ServiceDescriptor* service, out->Outdent(); out->Print("}\n\n"); + // getServiceName() -> string - The name of the gRPC service + map service_vars; + service_vars["service_name"] = service->full_name(); + out->Print("public function getServiceName() {\n"); + out->Indent(); + out->Print(service_vars, "return '$service_name$';\n"); + out->Outdent(); + out->Print("}\n\n"); + if (!is_server) { out->Print( "/**\n * @param string $$hostname hostname\n" From 07f36a056d6f8fe800a1e99a2d2d1d42a67aef32 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Sat, 14 Jan 2023 07:59:28 +0000 Subject: [PATCH 3/3] fix: templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-DEBIAN11-CURL-2936229 - https://snyk.io/vuln/SNYK-DEBIAN11-DPKG-2847942 - https://snyk.io/vuln/SNYK-DEBIAN11-LIBTASN16-3061097 - https://snyk.io/vuln/SNYK-DEBIAN11-OPENSSL-2807596 - https://snyk.io/vuln/SNYK-DEBIAN11-OPENSSL-2933518 --- .../dockerfile/interoptest/grpc_interop_go/Dockerfile.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template index 11ba1c89ac788..955cf04fea313 100644 --- a/templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template +++ b/templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. - FROM golang:1.16 + FROM golang:1.20rc3 <%include file="../../go_path.include"/> <%include file="../../run_tests_python_deps.include"/>