Some changes:
* OnTransactCb now takes a non-const ReadableParcel* so that testing
codes no longer have to rely on mutable.
* Remove GetReadableParcel() interface from binder since we only sent
one-way transaction and the output (readable) parcel is never used.
* Remove GetDataPosition() / SetDataPosition() interfaces since they are
both unused.
* Some changes that should've been made to #27257 but was somehow
missing...
* Ensure that per route retry policy (even when there are no supported
retry_on statuses) still takes precedence over virtual host level retry
policy.
Added a test to guard this case.
* Taking care of code review comments and removing unnecessary block
Android-related binder classes are only available if
GPR_SUPPORT_BINDER_TRANSPORT is defined. Thus, BinderServerCredentials
should only work if GPR_SUPPORT_BINDER_TRANSPORT (instead of
GPR_ANDROID) is defined as well.
* Fix ReadableParcelAndroid::ReadString interface
Also uses implementation from android/binder_parcel_utils.h to read
ByteArray and string from Parcel
Test example app on device, works correctly
There was a bug found by the fuzzer where we might access wire_writer_ before
finishing SETUP_TRANSPORT (and thus constructing wire_writer_). This PR
fixes such issue by making sure that we won't proceed with any requests
until the connection is fully established.
Since binder transactions may be coming from multiple different threads,
this PRs guard some of the WireReaderImpl's member with a mutex to make
sure there's no races between threads.
* xDS Security: Use new way to fetch certificate provider plugin instance
config
* Reviewer comments
* Additional fields to NACK
* Move NACKing tests for tls_certificates and tls_certificate_sds_securet_configs to client-side
Top-level messages may be broken into multiple pieces and streamed if
they are too long. Keep pulling them from the stream until we've got to
the desired length.
Add `grpc::BinderServerCredentials()` and other related functionalities for the server to listen to binder transactions through a phony "binder port".
The APIs are temporarily placed in internal headers until the corresponding gRFC is merged.
* Remove iterator interface from LBPolicy Metadata
Trying to clear the way to think about how metadata is handled in core.
Right now this interface is only used for tests, so a single method that
does what's needed for that (and marked TestOnly) is provided for now.
In the future we'll certainly likely need API to access metadata from
load balancing policies. However, it seems likely that we'll want to
encourage access via lookup-by-key rather than lookup-by-iteration, and
so it seems likely we'll want to expose interfaces phrased in those
terms.
In the meantime, this change localizes some complexity to make it easier
to transition to new internal API's.
* mdcleanup
* [csharp net472] Fix error loading library grpc_csharp_ext.x64.dll on Windows with charset on non ANSI encoding. Example library path: C:\Program Files (x86)\тест\grpc_csharp_ext.x64.dll
* cleanup
* Change charset to Unicode
Co-authored-by: Jan Tattermusch <jtattermusch@google.com>
Add `%(NuGetPackageId)` as is standard procedure for nuget package-provided assets,
so that other MSBuild targets can act on items contributed by Grpc.Core as needed, for
example, in Pack scenarios.
Fixes#26724