This PR addresses the following review comment: https://github.com/grpc/grpc/pull/37563#discussion_r2166825714
Changed `stdClass` to `\stdClass` to explicitly reference the global namespace.
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#39996
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39996 from sayuprc:use-global-namespace ea680d137bc413d79b8c58ac57c363b15edd134f
PiperOrigin-RevId: 775872442
Type information is added to the result of `UnaryCall::wait()` execution.
resolve#33431
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#37563
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/37563 from sayuprc:typing-support-for-php 0f1e6b257621db16e24f1e3305f1bff8a98bf600
PiperOrigin-RevId: 775541985
From PHP8.4, a parameter that has `null` as a default value has to be typed as a nullable type: https://www.php.net/manual/en/migration84.deprecated.php
In the code base, the factory methods of `Status` class have to be fixed to comply with this syntax. On the other hand, nullable type is not available in 7.0 (https://www.php.net/manual/en/migration71.new-features.php), which is supported in this library now.
<strike>Since the versions 7.0 - 8.0 have already reached the EOL (https://www.php.net/supported-versions.php) as of now, I would like to propose dropping support of these versions, and adding support of 8.4.</strike>
cc: @stanley-cheung
Closes#39199
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39199 from shu-yusa:master 29cc63f60b9adf6aa38bb283c6edf8fa4316d8ea
PiperOrigin-RevId: 775306237
This includes the following moves from src/core/lib/security:
- certificate_provider/* → src/core/credentials/transport/tls/
- context/* → split between src/core/call/security_context* and src/core/transport/auth_context*
- credentials/
- composite/ → split between src/core/credentials/call/composite/ and src/core/credentials/transport/composite/
- alts, google_default, insecure, local, ssl, tls, xds → src/core/credentials/transport/
- fake/ → split between test/core/test_util/test_call_creds* and src/core/credentials/transport/fake
- external, iam, jwt, oauth2, plugin, token_fetcher → src/core/credentials/call/
- call_creds_utils.* → src/core/credentials/call/
- channel_creds_registry* → src/core/credentials/transport/
- credentials.* → split between src/core/credentials/call/call_credentials.* and src/core/credentials/transport/transport_credentials.*
- security_connector/
- alts, fake, insecure, local, ssl, tls → src/core/credentials/transport/
- security_connector* → src/core/credentials/transport/
- ssl_utils*, load_system_roots* → src/core/credentials/transport/tls/
- transport/ → src/core/filter/auth/
- util/* → src/core/credentials/call/
The only thing left in src/core/lib/security is the authz code, which I will move in a separate PR.
I have also moved the tests from test/core/security into a similar structure. Some specific notes:
- I have removed print_google_default_creds_token.cc, since it does not appear in any build file and appears to be completely unused.
- I moved secure_endpoint_test.cc to test/core/handshaker, to match where the implementation lives in the tree.
Closes#38825
PiperOrigin-RevId: 731487339
The `method_exists` function requires a fully qualified class name to be
sent to check if a method exists. The current class was missing the
namespace, which means the function always returns `false`. In our
application this caused the credentials to be loaded many times over,
which ate up some CPU. This bug fix ensures that this is only run once
per request.
Moves the OP_RECV_INITIAL_METADATA out of the start() methods for
UnaryCall and ServerStreamingCall, and adds a check so that the
getMetadata methods for those objects will always contain the
metadata.