Craig Tiller
1df153f46e
Revert "Revert "Move metadata setting into HPackParser ( #27545 )" ( #27686 )" ( #27688 )
...
This reverts commit 0e6ced8800
.
3 years ago
Craig Tiller
0e6ced8800
Revert "Move metadata setting into HPackParser ( #27545 )" ( #27686 )
...
This reverts commit f57a1f7d8c
.
3 years ago
Craig Tiller
f57a1f7d8c
Move metadata setting into HPackParser ( #27545 )
...
* forward work to get append, limit check into parser
* further cleanup
* Remove chttp2_incoming_metadata_buffer
* Automated change: Fix sanity tests
* test fixes
* fix cronet
* wip
* first pass mementofication of parsing - libgrpc compiles
* further progress
* fixes
* fixes
* fix leak
* Automated change: Fix sanity tests
* fix leak
* fixes
* x
* improve fuzzer
* init ordering fix
* Update hpack_parser_table.h
* Update hpack_parser.cc
* Update hpack_parser_test.cc
* Automated change: Fix sanity tests
* Automated change: Fix sanity tests
* i mustache myself why
* fix use after free
* Automated change: Fix sanity tests
* fixes
* eliminate second pass metadata - this is an illegal frame and fails the new parser
* handle mementos with size > sizeof(intptr_t)
* fix
* add parsed metadata header, test
* Automated change: Fix sanity tests
* fix includes
* phase1
* phase2
* Update parsed_metadata.h
* fix
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Ming-Chuan
f58f903a4f
Add helper function for getting endpoint binder in Java ( #27598 )
...
Also update the server side URI scheme to use path instead of authority
See gRFC L85-core-binder-transport.md for more details
3 years ago
Ming-Chuan
332713a35a
Implement BinderTransport SecurityPolicies that requires no JNI ( #27573 )
...
This commit
1. Implements the security policies that does not require JNI. This
includes a security policy that always allow connection and a security
policy that allows connection when remote UID is the same us local UID.
2. Add security policy as an argument in our interfaces. Old interfaces
are temporarily preserved so compilation will not suddenly break when we
import the code to internal repo.
3. Pumping the security policy from the public interfaces to the code
that handles SETUP_TRANSPORT transaction.
4. Abort the transport setup when the security policy is not satisfied.
Since meaningful tests will require to be run in real Android
environment, we will implement it later. For now, this change is
manually tested with example APKs.
For security policies that need to invoke Java to check authorization,
we will implement them in later.
3 years ago
Craig Tiller
d1e01ac139
Add a test for a (now-illegal) build file construct ( #27602 )
...
* Add a test for a (now-illegal) build file construct
* add to test suite!
* fix
* fix
* fix syntax
3 years ago
Ming-Chuan
6b922f871f
Temporarily remove binder fuzzers it fails to build with old llvm ( #27599 )
3 years ago
Esun Kim
1c6634ac44
Changed grpc_error_get|set_str to use std string instead of slice ( #27466 )
...
* Changed grpc_error_get|set_str to use std string
* Fix init order in tests with gtest
* Undo gtest-tify credentials_test
3 years ago
Craig Tiller
bed585bdcb
fix memory leak ( #27510 )
3 years ago
Craig Tiller
91a2db9bc2
Make deadline the first metadata trait ( #27468 )
3 years ago
Craig Tiller
9b41852a5e
channel_init --> core configuration system ( #27347 )
...
* channel_init --> core configuration system
* Automated change: Fix sanity tests
* fixes
* Automated change: Fix sanity tests
* fixes
* fixes
* eliminate grpc_base_c
* fixes
* fix merge
* fix
* update visibility
* fixes
* feedback
* fix comment
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Craig Tiller
902836215a
Remove usage of some more metadata_batch apis ( #27463 )
...
* Remove usage of some more metadata_batch apis
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Ta-Wei Tu
b7f27209cf
Server fuzzer for binder transport ( #27122 )
...
* [binder] Add server fuzzer
* Add a crash reproducer related to #27321
* Address coments & fix bugs
* Rebase & Deal with merge conflicts
3 years ago
Craig Tiller
66ae0d5c08
Separate slices from mdelems for static data ( #27372 )
...
* separate slice into internal and refcount, with refcount being the minimal base
* python3-ize
* Separate slices from mdelems for static data
Allows us to separate a small build target with just some slice basics
from the rest, which will help simplify the build system longer term.
Additionally exposed an opportunity to eliminate an init function.
Should also help in a month or so when it's time to jettison interned
metadata and slices entirely.
* fix compilation
* Automated change: Fix sanity tests
* fixes
* fixfixfix
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Craig Tiller
ffb2c5e599
Metadata: replace usage of grpc_metadata_batch_link_{head,tail} with Link{Head,Tail} method ( #27419 )
...
* Metadata: replace usage of grpc_metadata_batch_link_{head,tail} with Link{Head,Tail} method
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Esun Kim
47586fb36e
Revert "Revert "Added absl::Status support to error_utils ( #27358 )" ( #27418 )" ( #27429 )
...
This reverts commit 933676c56c
.
3 years ago
Craig Tiller
933676c56c
Revert "Added absl::Status support to error_utils ( #27358 )" ( #27418 )
...
This reverts commit 9b3f75d322
.
3 years ago
Craig Tiller
b669a3c521
Revert "Revert "a useful change ( #27381 )" ( #27411 )" ( #27412 )
...
This reverts commit 5db17f7350
.
3 years ago
Esun Kim
9b3f75d322
Added absl::Status support to error_utils ( #27358 )
3 years ago
Craig Tiller
9872da79a1
Eliminate grpc_metadata_batch_{init,destroy,move} ( #27349 )
...
* Eliminate grpc_metadata_batch_{init,destroy,move}
* fixes
* fixes
* fixes
* fixes
* portability fixes
* fixes
* fix
* fix
* fix
* be explicit about being explicit
3 years ago
Craig Tiller
5db17f7350
Revert "a useful change ( #27381 )" ( #27411 )
...
This reverts commit 11eb70bbed
.
3 years ago
Craig Tiller
11eb70bbed
a useful change ( #27381 )
...
* a useful change
* Automated change: Fix sanity tests
* fix
* fix
* QsortCompare it is!
* Automated change: Fix sanity tests
* add missing header
* clang-tidy fixes, tweak clamp to only use <
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Ta-Wei Tu
f7998db700
Migrate binder transport end-to-end tests to use the existing testing service ( #27179 )
...
* Use TestServiceImpl in binder end-to-end tests
* Fix TSAN warnings
3 years ago
Ming-Chuan
8c425189f3
Add uid to OnTransactCb argument ( #27328 )
...
* Add uid to OnTransactCb argument
This will allow callback functions to check if current RPC call conforms
to the security policy.
3 years ago
Ta-Wei Tu
b45568212f
[binder] Client fuzzer ( #27052 )
...
* Add client fuzzer
* Limit readable parcel size to 1MB
3 years ago
Esun Kim
91e0660638
Replace grpc_error* with grpc_error_handle ( #27311 )
...
* Replace grpc_error* with grpc_error_handle
* fix python build
3 years ago
Craig Tiller
fd233193ec
Encapsulate metadata aggregates ( #27262 )
...
* Encapsulate metadata aggregates
* Automated change: Fix sanity tests
* add const
* Automated change: Fix sanity tests
* add a comment about an awful api
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Ta-Wei Tu
8d5b93eacc
[binder] Clean up parcel interfaces ( #27322 )
...
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...
3 years ago
Ta-Wei Tu
d24f89d79d
[binder] Fix Android guard in binder server ( #27326 )
...
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.
3 years ago
Ming-Chuan
776b452e48
Fix ReadableParcelAndroid::ReadString interface ( #27260 )
...
* 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
3 years ago
Ta-Wei Tu
71ceae7369
[binder] Use AParcel_getDataSize() in flow-control ( #27257 )
3 years ago
Ta-Wei Tu
52e5b64c5b
[binder] Handle outbound flow control ( #27243 )
3 years ago
Ta-Wei Tu
554bbb6ca5
[binder] Fix WireReaderImpl bugs & races ( #27303 )
...
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.
3 years ago
Ta-Wei Tu
fa2d21716b
[binder] Fix server-side recv_trailing_metadata ( #27184 )
...
According to the [transport explainer](https://grpc.github.io/grpc/core/md_doc_core_transport_explainer.html ), the server-side `recv_trailing_metadata` should not be completed before sending trailing metadata to the client.
3 years ago
Ta-Wei Tu
27eae53d83
[binder] Use combiner & refs to prevent data race ( #27182 )
3 years ago
Craig Tiller
ea389c00c2
Adjust include order per style guide ( #27175 )
...
Introduce clang-format configuration to sort includes closer to our rules.
3 years ago
Ta-Wei Tu
dff9e84e35
[binder] Handle inbound flow control ( #27228 )
3 years ago
Ta-Wei Tu
3a5e844b38
[binder] Implicitly initialize the binder pool ( #27261 )
3 years ago
Craig Tiller
dc701787e2
Convert HPACK encoder to C++ ( #27226 )
...
* Rebuild HPACK encoder table as C++
* move comment
* incguards
* build
* Automated change: Fix sanity tests
* c++ initialization ftw
* Automated change: Fix sanity tests
* Add missing header
* Add missing header
* Begin converting HPACK encoder to c++
* First pass conversion to c++
* fixes
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Ta-Wei Tu
3df113f6d6
Add binder server ( #27036 )
...
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.
3 years ago
Craig Tiller
999e36fb31
Rebuild HPACK encoder table as C++ ( #27192 )
...
* Rebuild HPACK encoder table as C++
* move comment
* incguards
* build
* Automated change: Fix sanity tests
* c++ initialization ftw
* Automated change: Fix sanity tests
* Add missing header
* Add missing header
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Craig Tiller
b062fcd5c6
Ensure consistency of include style for <grpc.* headers ( #27233 )
...
* Add a tool to ensure consistency in how grpc public headers are included
* Apply tool
* add to test suite
* isort
3 years ago
Ta-Wei Tu
ab57f03b30
Reland: Import binder transport tests ( #27138 )
...
* Import binder transport tests
* Fix copybara import errors
* Add testonly labels
3 years ago
Craig Tiller
90c4a2a5eb
Revert "Import binder transport tests ( #26970 )" ( #27126 )
...
This reverts commit 006464c57d
.
3 years ago
Ta-Wei Tu
006464c57d
Import binder transport tests ( #26970 )
...
This PR imports unit tests and end-to-end tests of binder transport from the internal repository. No further changes will be made to internal repository.
3 years ago
AJ Heller
d10617edb5
Move resource_user ownership into chttp2 transport/server/connector v2 ( #27032 )
...
Reintroducing PR #26643 , which was reverted in #27029
Fixed a memory leak and added a test that would have caught it (ASAN build): ca0c8c4
3 years ago
Craig Tiller
f5d3ed2db1
Revert "Move resource_user ownership into chttp2 transport/server/connector ( #26643 )" ( #27029 )
...
This reverts commit d1935a65a1
. Will be rolled forward with a fix.
3 years ago
AJ Heller
d1935a65a1
Move resource_user ownership into chttp2 transport/server/connector ( #26643 )
3 years ago
Craig Tiller
152b79144c
Extract HPACK Encoder Hash Map to a separate file ( #26973 )
...
* comments
* Extract hash map from hpack encoder
* Automated change: Fix sanity tests
* x
* x
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Craig Tiller
bbea27de46
Reland HPACK parsing changes ( #26997 )
...
* Revert "Revert "HPACK Table --> C++ (#26851 )" (#26995 )"
This reverts commit 840bcce9c4
.
* fix bad parsing of trailing === in binary metadata
3 years ago