grpc 1.80.0 → 1.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +301 -292
- data/include/grpc/context_types.h +28 -0
- data/include/grpc/credentials.h +11 -0
- data/include/grpc/grpc_security_constants.h +12 -0
- data/include/grpc/module.modulemap +1 -0
- data/src/core/call/call_spine.h +29 -6
- data/src/core/call/client_call.cc +2 -2
- data/src/core/call/client_call.h +6 -0
- data/src/core/call/interception_chain.h +12 -1
- data/src/core/call/metadata_batch.h +37 -2
- data/src/core/call/server_call.h +4 -0
- data/src/core/client_channel/client_channel.cc +2 -1
- data/src/core/client_channel/client_channel_filter.cc +2 -2
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +8 -0
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.h +9 -2
- data/src/core/credentials/transport/tls/ssl_utils.cc +4 -0
- data/src/core/credentials/transport/tls/ssl_utils.h +3 -0
- data/src/core/credentials/transport/tls/tls_security_connector.cc +3 -2
- data/src/core/ext/filters/http/client_authority_filter.cc +4 -0
- data/src/core/ext/filters/http/http_filters_plugin.cc +6 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +7 -0
- data/src/core/ext/transport/chttp2/transport/frame.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_security.cc +3 -1
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +8 -8
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +112 -155
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +38 -37
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +11 -1
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +0 -38
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +30 -37
- data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +74 -5
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/security_frame.h +1 -1
- data/src/core/ext/transport/chttp2/transport/stream.h +29 -11
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/writable_streams.h +2 -77
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +11 -93
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +15 -129
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +4 -30
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +4 -54
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +4 -28
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +15 -133
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +2 -46
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +10 -80
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +18 -162
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +16 -148
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +1 -35
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +13 -101
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +6 -48
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +29 -207
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +5 -59
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +11 -111
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +9 -97
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +10 -130
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +4 -26
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +2 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +2 -16
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +4 -28
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +6 -64
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +9 -53
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +4 -52
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +6 -68
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +1 -19
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +8 -52
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +11 -59
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +11 -93
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +2 -40
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +48 -550
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +3 -21
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +10 -80
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +1 -19
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +16 -182
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb.h +240 -0
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.c +78 -0
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb.h +73 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.c +42 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h +431 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c +111 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h +38 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +2 -30
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +2 -24
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +19 -187
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +3 -25
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +7 -71
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +3 -21
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +6 -70
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +2 -10
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +2 -26
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +13 -123
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +5 -53
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +5 -25
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +2 -16
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +2 -24
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +3 -21
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +5 -37
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +2 -8
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +4 -16
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +11 -91
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +16 -140
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +3 -33
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +1 -0
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +27 -410
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +5 -17
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +9 -37
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +34 -310
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +11 -83
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +8 -46
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +7 -45
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +12 -108
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +3 -17
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +2 -10
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +7 -61
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +3 -25
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +8 -72
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +3 -19
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +54 -234
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +3 -19
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +4 -22
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +12 -12
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +2 -10
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +8 -58
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +6 -30
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +2 -24
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +4 -16
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +1 -5
- data/src/core/ext/upbdefs-gen/envoy/extensions/common/matching/v3/extension_matcher.upbdefs.c +110 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/common/matching/v3/extension_matcher.upbdefs.h +42 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upbdefs.h +37 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/composite/v3/composite.upbdefs.c +138 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/composite/v3/composite.upbdefs.h +52 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +734 -731
- data/src/core/filter/composite/composite_filter.cc +227 -0
- data/src/core/filter/composite/composite_filter.h +154 -0
- data/src/core/filter/filter_args.h +4 -0
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +163 -41
- data/src/core/handshaker/security/pipelining_heuristic_selector.h +151 -0
- data/src/core/handshaker/security/secure_endpoint.cc +24 -8
- data/src/core/lib/channel/connected_channel.cc +13 -0
- data/src/core/lib/channel/promise_based_filter.h +267 -0
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +3 -2
- data/src/core/lib/event_engine/extensions/blocking_dns.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +4 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +11 -3
- data/src/core/lib/experiments/experiments.cc +120 -117
- data/src/core/lib/experiments/experiments.h +71 -58
- data/src/core/lib/promise/detail/promise_factory.h +16 -5
- data/src/core/lib/promise/detail/promise_like.h +19 -1
- data/src/core/lib/promise/inter_activity_latch.h +5 -8
- data/src/core/lib/promise/inter_activity_pipe.h +193 -0
- data/src/core/lib/promise/sleep.cc +5 -9
- data/src/core/lib/resource_quota/arena.h +1 -1
- data/src/core/lib/surface/call.cc +43 -6
- data/src/core/lib/surface/call.h +6 -0
- data/src/core/lib/surface/call_utils.cc +42 -3
- data/src/core/lib/surface/call_utils.h +30 -11
- data/src/core/lib/surface/channel_stack_type.cc +8 -0
- data/src/core/lib/surface/channel_stack_type.h +4 -0
- data/src/core/lib/surface/completion_queue.cc +15 -12
- data/src/core/lib/surface/filter_stack_call.h +5 -0
- data/src/core/lib/surface/legacy_channel.cc +1 -22
- data/src/core/lib/surface/legacy_channel.h +1 -3
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +6 -3
- data/src/core/lib/transport/promise_endpoint.h +13 -17
- data/src/core/load_balancing/endpoint_list.cc +0 -8
- data/src/core/load_balancing/pick_first/pick_first.cc +5 -14
- data/src/core/load_balancing/xds/cds.cc +100 -122
- data/src/core/load_balancing/xds/cds.h +58 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +1 -1
- data/src/core/server/server.cc +19 -35
- data/src/core/server/server.h +9 -17
- data/src/core/server/xds_server_config_fetcher.cc +0 -24
- data/src/core/telemetry/metrics.cc +26 -0
- data/src/core/transport/session_endpoint.cc +314 -0
- data/src/core/transport/session_endpoint.h +85 -0
- data/src/core/tsi/ssl_transport_security.cc +137 -100
- data/src/core/tsi/ssl_transport_security.h +8 -0
- data/src/core/tsi/ssl_transport_security_utils.cc +25 -1
- data/src/core/tsi/ssl_transport_security_utils.h +4 -0
- data/src/core/util/sorted_pack.h +69 -44
- data/src/core/util/string.cc +8 -0
- data/src/core/util/string.h +11 -0
- data/src/core/util/table.h +38 -102
- data/src/core/util/time_precise.cc +42 -1
- data/src/core/util/useful.h +0 -91
- data/src/core/util/windows/string_util.cc +4 -2
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +27 -15
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +148 -69
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +12 -0
- data/src/core/xds/grpc/xds_client_grpc.cc +1 -1
- data/src/core/xds/grpc/xds_cluster.cc +54 -37
- data/src/core/xds/grpc/xds_cluster.h +0 -1
- data/src/core/xds/grpc/xds_common_types.cc +59 -34
- data/src/core/xds/grpc/xds_common_types_parser.cc +33 -3
- data/src/core/xds/grpc/xds_common_types_parser.h +5 -1
- data/src/core/xds/grpc/xds_endpoint.cc +44 -24
- data/src/core/xds/grpc/xds_health_status.cc +10 -6
- data/src/core/xds/grpc/xds_http_composite_filter.cc +302 -0
- data/src/core/xds/grpc/xds_http_composite_filter.h +84 -0
- data/src/core/xds/grpc/xds_http_filter_registry.cc +34 -2
- data/src/core/xds/grpc/xds_http_filter_registry.h +4 -0
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +21 -10
- data/src/core/xds/grpc/xds_listener.cc +98 -59
- data/src/core/xds/grpc/xds_listener_parser.cc +64 -26
- data/src/core/xds/grpc/xds_matcher.cc +92 -49
- data/src/core/xds/grpc/xds_metadata.cc +40 -7
- data/src/core/xds/grpc/xds_metadata.h +3 -10
- data/src/core/xds/grpc/xds_route_config.cc +171 -100
- data/src/core/xds/grpc/xds_server_grpc.cc +27 -18
- data/src/ruby/bin/math_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +1 -15
- data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +40 -0
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/convert.cc +47 -31
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/exponentiation.cc +35 -17
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/cbb.cc +8 -14
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/derive_key.cc +15 -13
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_linux.cc +5 -28
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_linux.h +9 -11
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dh/dh_asn1.cc +14 -13
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/dsa.cc +34 -30
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/dsa_asn1.cc +35 -23
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/ec_asn1.cc +63 -47
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/hash_to_curve.cc +68 -60
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ecdsa/ecdsa_asn1.cc +17 -11
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp_asn1.cc +11 -10
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp_ctx.cc +11 -10
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dsa_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ec_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ed25519_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_rsa_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_x25519_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/sign.cc +42 -23
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/div.cc.inc +79 -0
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/exponentiation.cc.inc +6 -5
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/gcd.cc.inc +80 -58
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/gcd_extra.cc.inc +45 -29
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/jacobi.cc.inc +16 -7
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/montgomery.cc.inc +24 -10
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/mul.cc.inc +34 -24
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/prime.cc.inc +154 -102
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/shift.cc.inc +8 -3
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/sqrt.cc.inc +78 -1
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/check.cc.inc +53 -35
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/dh.cc.inc +76 -57
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/digest.cc.inc +10 -4
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec.cc.inc +5 -3
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/padding.cc.inc +26 -19
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/rsa.cc.inc +7 -7
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/rsa_impl.cc.inc +138 -117
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/self_check/self_check.cc.inc +30 -22
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj.cc +8 -2
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_lib.cc +13 -8
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/pkcs7.cc +6 -5
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/pkcs7_x509.cc +3 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/p5_pbev2.cc +14 -9
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/pkcs8.cc +29 -19
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/pkcs8_x509.cc +39 -34
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_crypt.cc +22 -14
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_sign.cc +5 -3
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/asn1_gen.cc +12 -8
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_conf.cc +24 -16
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_info.cc +21 -18
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_x509.cc +57 -52
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_x509a.cc +32 -16
- data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bytestring.h +0 -6
- data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handoff.cc +12 -12
- data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_asn1.cc +3 -2
- data/third_party/upb/upb/base/string_view.h +7 -3
- data/third_party/upb/upb/generated_code_support.h +17 -1
- data/third_party/upb/upb/hash/common.c +2 -1
- data/third_party/upb/upb/mem/alloc.c +2 -1
- data/third_party/upb/upb/mem/alloc.h +25 -6
- data/third_party/upb/upb/mem/arena.c +225 -73
- data/third_party/upb/upb/mem/arena.h +56 -0
- data/third_party/upb/upb/mem/arena.hpp +6 -0
- data/third_party/upb/upb/mem/internal/arena.h +69 -56
- data/third_party/upb/upb/message/accessors.h +4 -0
- data/third_party/upb/upb/message/array.h +3 -0
- data/third_party/upb/upb/message/copy.c +1 -1
- data/third_party/upb/upb/message/internal/accessors.h +10 -0
- data/third_party/upb/upb/message/internal/array.h +34 -3
- data/third_party/upb/upb/message/internal/message.h +23 -9
- data/third_party/upb/upb/mini_descriptor/decode.c +127 -66
- data/third_party/upb/upb/mini_descriptor/decode.h +6 -2
- data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +2 -0
- data/third_party/upb/upb/mini_descriptor/link.c +11 -0
- data/third_party/upb/upb/mini_table/extension.h +7 -0
- data/third_party/upb/upb/mini_table/extension_registry.c +10 -1
- data/third_party/upb/upb/mini_table/extension_registry.h +1 -0
- data/third_party/upb/upb/mini_table/internal/extension.h +10 -0
- data/third_party/upb/upb/mini_table/internal/field.h +1 -1
- data/third_party/upb/upb/mini_table/internal/message.h +69 -9
- data/third_party/upb/upb/mini_table/message.c +0 -38
- data/third_party/upb/upb/mini_table/message.h +5 -1
- data/third_party/upb/upb/port/def.inc +140 -111
- data/third_party/upb/upb/port/sanitizers.h +179 -0
- data/third_party/upb/upb/port/undef.inc +19 -9
- data/third_party/upb/upb/reflection/enum_def.c +7 -3
- data/third_party/upb/upb/reflection/enum_def.h +1 -0
- data/third_party/upb/upb/reflection/field_def.h +1 -0
- data/third_party/upb/upb/reflection/file_def.c +1 -1
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message_def.c +29 -2
- data/third_party/upb/upb/reflection/message_def.h +2 -0
- data/third_party/upb/upb/text/internal/encode.c +5 -5
- data/third_party/upb/upb/wire/decode.c +190 -239
- data/third_party/upb/upb/wire/decode.h +14 -5
- data/third_party/upb/upb/wire/decode_fast/combinations.h +217 -0
- data/third_party/upb/upb/wire/decode_fast/data.h +74 -0
- data/third_party/upb/upb/wire/decode_fast/select.c +235 -0
- data/third_party/upb/upb/wire/decode_fast/select.h +66 -0
- data/third_party/upb/upb/wire/encode.c +332 -203
- data/third_party/upb/upb/wire/encode.h +3 -6
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +64 -6
- data/third_party/upb/upb/wire/internal/decoder.c +43 -0
- data/third_party/upb/upb/wire/internal/decoder.h +73 -35
- data/third_party/upb/upb/wire/internal/reader.h +28 -9
- data/third_party/upb/upb/wire/reader.c +20 -2
- data/third_party/upb/upb/wire/reader.h +29 -19
- data/third_party/upb/upb/wire/writer.h +20 -0
- data/third_party/utf8_range/utf8_range.c +6 -6
- data/third_party/utf8_range/utf8_range_neon.inc +1 -1
- data/third_party/utf8_range/utf8_range_sse.inc +1 -1
- metadata +559 -531
- data/third_party/boringssl-with-bazel/src/crypto/bn/div.cc +0 -100
- data/third_party/boringssl-with-bazel/src/crypto/bn/sqrt.cc +0 -93
- data/third_party/upb/upb/wire/internal/decode_fast.c +0 -1000
- data/third_party/upb/upb/wire/internal/decode_fast.h +0 -152
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/aes/aes.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_bitstr.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_bool.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_d2i_fp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_dup.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_gentm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_i2d_fp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_int.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_mbstr.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_object.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_octet.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_strex.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_strnid.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_time.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_type.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_utctm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn1_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn1_par.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn_pack.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/f_int.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/f_string.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/posix_time.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_dec.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_enc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_fre.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_new.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_typ.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_utl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/base64/base64.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bcm_support.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/bio.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/bio_mem.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/connect.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/errno.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/fd.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/file.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/hexdump.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/pair.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/printf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/socket.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/socket_helper.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/blake2/blake2.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/bn_asn1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/buf/buf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/asn1_compat.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/ber.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/cbs.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/unicode.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/chacha/chacha.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/chacha/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aesctrhmac.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aeseax.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aesgcmsiv.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_chacha20poly1305.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_des.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_null.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_rc2.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_rc4.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_tls.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/get_cipher.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/tls_cbc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cms/cms.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/conf/conf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/conf/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_apple.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_fuchsia.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_linux.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_openbsd.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_sysreg.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_win.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_freebsd.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_intel.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/crypto.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519_64_adx.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519_tables.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/spake25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/des/des.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/des/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dh/params.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/digest/digest_extra.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/ec_derive.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ecdh/ecdh.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/engine/engine.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/err/err.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/err/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dh.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dh_asn1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ec.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ed25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_hkdf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_rsa.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_x25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/pbkdf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/print.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/scrypt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ex_data.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/aes.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/aes_nohw.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/cbc.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/cfb.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/ctr.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/gcm.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/gcm_nohw.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/key_wrap.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/mode_wrappers.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/ofb.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bcm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bcm_interface.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/add.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/asm/x86_64-gcc.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/bn.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/bytes.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/cmp.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/ctx.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/div_extra.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/generic.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/montgomery_inv.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/random.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/rsaz_exp.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/rsaz_exp.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/aead.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/cipher.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/e_aes.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/e_aesccm.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cmac/cmac.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/delocate.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/digests.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/md32_common.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digestsign/digestsign.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/builtin_curves.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec_key.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec_montgomery.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/felem.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/oct.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p224-64.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz-table.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256_table.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/scalar.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/simple.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/simple_mul.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/util.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/wnaf.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdh/ecdh.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdsa/ecdsa.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/fips_shared_support.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/hkdf/hkdf.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/hmac/hmac.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/keccak/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/keccak/keccak.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mldsa/fips_known_values.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mldsa/mldsa.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mlkem/fips_known_values.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mlkem/mlkem.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/ctrdrbg.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/rand.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/blinding.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/self_check/fips.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/service_indicator/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/service_indicator/service_indicator.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha1.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha256.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha512.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/address.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fips_known_values.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fors.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fors.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/merkle.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/merkle.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/params.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/slhdsa.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/thash.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/thash.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/wots.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/wots.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/tls/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/tls/kdf.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fuzzer_mode.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hpke/hpke.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hrss/hrss.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hrss/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/kyber/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/kyber/kyber.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/lhash/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/lhash/lhash.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md4/md4.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md5/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md5/md5.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mem.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mldsa/mldsa.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mlkem/mlkem.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj_dat.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj_xref.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_all.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_info.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_oth.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_pk8.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_pkey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_xaux.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305_arm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305_vec.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pool/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pool/pool.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/deterministic.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/fork_detect.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/forkunsafe.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/getentropy.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/getrandom_fillin.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/ios.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/passive.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/rand.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/trusty.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/urandom.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/windows.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rc4/rc4.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/refcount.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_asn1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_extra.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_print.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha256.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha512.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/siphash/siphash.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/slhdsa/slhdsa.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/spake2plus/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/spake2plus/spake2plus.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/stack/stack.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_none.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_pthread.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_win.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/pmbtoken.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/trust_token.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/voprf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_digest.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_verify.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/algorithm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/by_dir.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/by_file.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/ext_dat.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/i2d_pr.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/name_print.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/policy.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/rsa_pss.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_crl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_req.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_x509a.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_akey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_akeya.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_alt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_bcons.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_bitst.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_cpols.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_crld.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_enum.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_extku.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_genn.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ia5.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_int.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ncons.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ocsp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_pcons.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_pmaps.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_prn.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_purp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_skey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_utl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_att.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_cmp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_d2.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_def.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_ext.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_lu.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_obj.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_req.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_set.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_trs.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_txt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_v3.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_vfy.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_vpm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509cset.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509name.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509rset.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509spki.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_algor.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_all.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_attrib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_crl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_exten.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_name.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_pubkey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_req.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_sig.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_spki.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_val.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/gen → gen}/crypto/err_data.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/aead.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/aes.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/arm_arch.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asm_base.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1_mac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1t.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/base.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/base64.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bcm_public.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bio.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/blake2.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/blowfish.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bn.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/buf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/buffer.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cast.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/chacha.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cipher.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cmac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cms.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/conf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cpu.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/crypto.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ctrdrbg.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/curve25519.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/des.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dh.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/digest.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dtls1.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/e_os2.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ec.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ec_key.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ecdh.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ecdsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/engine.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/err.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/evp.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/evp_errors.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ex_data.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/experimental/kyber.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hkdf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hmac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hpke.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hrss.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/is_boringssl.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/kdf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/lhash.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/md4.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/md5.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mem.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mldsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mlkem.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/nid.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/obj.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/obj_mac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/objects.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/opensslconf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/opensslv.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ossl_typ.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pem.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs12.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs7.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs8.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/poly1305.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pool.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/posix_time.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rand.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rc4.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ripemd.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/safestack.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/service_indicator.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/sha.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/siphash.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/slhdsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/span.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/srtp.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ssl.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ssl3.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/stack.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/target.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/thread.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/time.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/tls1.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/trust_token.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/type_check.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509_vfy.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509v3.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509v3_errors.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/bio_ssl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_both.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_pkt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_srtp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/dtls_method.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/dtls_record.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/encrypted_client_hello.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/extensions.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake_client.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake_server.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_both.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_pkt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_aead_ctx.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_buffer.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_cert.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_cipher.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_credential.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_file.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_key_share.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_privkey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_session.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_stat.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_transcript.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_versions.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/t1_enc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_both.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_client.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_enc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_server.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls_method.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls_record.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_32.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64_adx.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64_msvc.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_32.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_64.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_64_msvc.h +0 -0
|
@@ -76,9 +76,9 @@ constexpr absl::string_view kAssemblerHpackError =
|
|
|
76
76
|
class HeaderAssembler {
|
|
77
77
|
public:
|
|
78
78
|
// Call this for each incoming HTTP2 Header frame.
|
|
79
|
-
// If
|
|
79
|
+
// If AppendFrame returns an OK status, the payload will be consumed.
|
|
80
80
|
// Else, the payload will be left in the frame.
|
|
81
|
-
Http2Status
|
|
81
|
+
Http2Status AppendFrame(Http2HeaderFrame& frame) {
|
|
82
82
|
// Validate input frame
|
|
83
83
|
GRPC_DCHECK_GT(frame.stream_id, 0u)
|
|
84
84
|
<< "RFC9113 : HEADERS frames MUST be associated with a stream.";
|
|
@@ -103,12 +103,12 @@ class HeaderAssembler {
|
|
|
103
103
|
|
|
104
104
|
// Manage payload
|
|
105
105
|
frame.payload.MoveFirstNBytesIntoSliceBuffer(current_len, buffer_);
|
|
106
|
-
ASSEMBLER_LOG << "HeaderAssembler::
|
|
106
|
+
ASSEMBLER_LOG << "HeaderAssembler::AppendFrame HEADERS " << current_len
|
|
107
107
|
<< " Bytes.";
|
|
108
108
|
|
|
109
109
|
// Manage if last frame
|
|
110
110
|
if (frame.end_headers) {
|
|
111
|
-
ASSEMBLER_LOG << "HeaderAssembler::
|
|
111
|
+
ASSEMBLER_LOG << "HeaderAssembler::AppendFrame HEADERS end_headers";
|
|
112
112
|
is_ready_ = true;
|
|
113
113
|
}
|
|
114
114
|
|
|
@@ -116,21 +116,21 @@ class HeaderAssembler {
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
// Call this for each incoming HTTP2 Continuation frame.
|
|
119
|
-
// If
|
|
119
|
+
// If AppendFrame returns an OK status, the payload will be
|
|
120
120
|
// consumed. Else, the payload will be left in the frame.
|
|
121
|
-
Http2Status
|
|
121
|
+
Http2Status AppendFrame(Http2ContinuationFrame& frame) {
|
|
122
122
|
// Validate Assembler state
|
|
123
123
|
GRPC_DCHECK(header_in_progress_);
|
|
124
124
|
|
|
125
125
|
// Manage payload
|
|
126
126
|
const size_t current_len = frame.payload.Length();
|
|
127
127
|
frame.payload.MoveFirstNBytesIntoSliceBuffer(current_len, buffer_);
|
|
128
|
-
ASSEMBLER_LOG << "HeaderAssembler::
|
|
128
|
+
ASSEMBLER_LOG << "HeaderAssembler::AppendFrame CONTINUATION " << current_len
|
|
129
129
|
<< " Bytes.";
|
|
130
130
|
|
|
131
131
|
// Manage if last frame
|
|
132
132
|
if (frame.end_headers) {
|
|
133
|
-
ASSEMBLER_LOG << "HeaderAssembler::
|
|
133
|
+
ASSEMBLER_LOG << "HeaderAssembler::AppendFrame CONTINUATION end_headers";
|
|
134
134
|
is_ready_ = true;
|
|
135
135
|
}
|
|
136
136
|
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
#include <memory>
|
|
29
29
|
#include <optional>
|
|
30
30
|
#include <string>
|
|
31
|
+
#include <type_traits>
|
|
31
32
|
#include <utility>
|
|
32
33
|
#include <vector>
|
|
33
34
|
|
|
@@ -92,10 +93,6 @@
|
|
|
92
93
|
namespace grpc_core {
|
|
93
94
|
namespace http2 {
|
|
94
95
|
|
|
95
|
-
// TODO(akshitpatel)(tjagtap) [PH2][P1] : When settings frame increases incoming
|
|
96
|
-
// window size, our transport must make the streams that were blocked on stream
|
|
97
|
-
// flow control as writeable.
|
|
98
|
-
|
|
99
96
|
// As a gRPC server never initiates a stream, the last incoming stream id on
|
|
100
97
|
// the client side will always be 0.
|
|
101
98
|
constexpr uint32_t kLastIncomingStreamIdClient = 0;
|
|
@@ -242,8 +239,6 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2DataFrame&& frame) {
|
|
|
242
239
|
<< frame.stream_id << ", end_stream:" << frame.end_stream
|
|
243
240
|
<< ", payload length=" << frame.payload.Length() << "}";
|
|
244
241
|
|
|
245
|
-
// TODO(akshitpatel) : [PH2][P3] : Investigate if we should do this even if
|
|
246
|
-
// the function returns a non-ok status?
|
|
247
242
|
ping_manager_->ReceivedDataFrame();
|
|
248
243
|
|
|
249
244
|
RefCountedPtr<Stream> stream = LookupStream(frame.stream_id);
|
|
@@ -276,7 +271,6 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2DataFrame&& frame) {
|
|
|
276
271
|
return stream_status;
|
|
277
272
|
}
|
|
278
273
|
|
|
279
|
-
// Add frame to assembler
|
|
280
274
|
GRPC_HTTP2_CLIENT_DLOG
|
|
281
275
|
<< "Http2ClientTransport::ProcessIncomingFrame(DataFrame) "
|
|
282
276
|
"AppendNewDataFrame";
|
|
@@ -328,15 +322,10 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(Http2DataFrame&& frame) {
|
|
|
328
322
|
return Http2Status::Ok();
|
|
329
323
|
}
|
|
330
324
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
// https://www.rfc-editor.org/rfc/rfc9113.html#name-headers
|
|
334
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
335
|
-
<< "Http2ClientTransport::ProcessIncomingFrame(HeaderFrame) { stream_id="
|
|
336
|
-
<< frame.stream_id << ", end_headers=" << frame.end_headers
|
|
337
|
-
<< ", end_stream=" << frame.end_stream << " }";
|
|
325
|
+
template <typename T>
|
|
326
|
+
Http2Status Http2ClientTransport::ProcessIncomingMetadata(T&& frame) {
|
|
338
327
|
// State update MUST happen before processing the frame.
|
|
339
|
-
incoming_headers_.
|
|
328
|
+
incoming_headers_.UpdateState(frame);
|
|
340
329
|
|
|
341
330
|
ping_manager_->ReceivedDataFrame();
|
|
342
331
|
|
|
@@ -349,53 +338,53 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
349
338
|
// frame and streams that are reserved using PUSH_PROMISE. An endpoint that
|
|
350
339
|
// receives an unexpected stream identifier MUST respond with a connection
|
|
351
340
|
// error (Section 5.4.1) of type PROTOCOL_ERROR.
|
|
352
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
341
|
+
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::ProcessIncomingMetadata { "
|
|
342
|
+
"stream_id="
|
|
343
|
+
<< frame.stream_id << "} Lookup Failed";
|
|
344
|
+
return incoming_headers_.ParseAndDiscardHeaders(
|
|
345
|
+
std::move(frame.payload), frame.end_headers, /*stream=*/nullptr,
|
|
346
|
+
Http2Status::Ok(), settings_->acked().max_header_list_size());
|
|
358
347
|
}
|
|
359
348
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
std::string(RFC9113::kHalfClosedRemoteState)));
|
|
349
|
+
Http2Status validation_status =
|
|
350
|
+
ValidateMetadataFrameState(frame, *stream, incoming_headers_,
|
|
351
|
+
settings_->acked().max_header_list_size());
|
|
352
|
+
if (!validation_status.IsOk()) {
|
|
353
|
+
return validation_status;
|
|
366
354
|
}
|
|
367
355
|
|
|
368
|
-
|
|
369
|
-
stream->IsInitialMetadataReceived(),
|
|
370
|
-
stream->IsTrailingMetadataReceived())) {
|
|
371
|
-
return ParseAndDiscardHeaders(
|
|
372
|
-
std::move(frame.payload), frame.end_headers, stream.get(),
|
|
373
|
-
Http2Status::Http2StreamError(
|
|
374
|
-
Http2ErrorCode::kInternalError,
|
|
375
|
-
std::string(GrpcErrors::kTooManyMetadata)));
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
Http2Status append_result =
|
|
379
|
-
stream->GetHeaderAssembler().AppendHeaderFrame(frame);
|
|
356
|
+
Http2Status append_result = stream->GetHeaderAssembler().AppendFrame(frame);
|
|
380
357
|
if (!append_result.IsOk()) {
|
|
381
|
-
// Frame payload is not consumed if
|
|
358
|
+
// Frame payload is not consumed if AppendFrame returns a non-OK
|
|
382
359
|
// status. We need to process it to keep our in consistent state.
|
|
383
|
-
return ParseAndDiscardHeaders(
|
|
384
|
-
|
|
360
|
+
return incoming_headers_.ParseAndDiscardHeaders(
|
|
361
|
+
std::move(frame.payload), frame.end_headers, stream.get(),
|
|
362
|
+
std::move(append_result), settings_->acked().max_header_list_size());
|
|
385
363
|
}
|
|
386
364
|
|
|
387
365
|
Http2Status status = ProcessMetadata(stream);
|
|
388
366
|
if (!status.IsOk()) {
|
|
389
367
|
// Frame payload has been moved to the HeaderAssembler. So calling
|
|
390
368
|
// ParseAndDiscardHeaders with an empty buffer.
|
|
391
|
-
return ParseAndDiscardHeaders(
|
|
392
|
-
|
|
369
|
+
return incoming_headers_.ParseAndDiscardHeaders(
|
|
370
|
+
SliceBuffer(), frame.end_headers, stream.get(), std::move(status),
|
|
371
|
+
settings_->acked().max_header_list_size());
|
|
393
372
|
}
|
|
394
373
|
|
|
395
374
|
// Frame payload has either been processed or moved to the HeaderAssembler.
|
|
396
375
|
return Http2Status::Ok();
|
|
397
376
|
}
|
|
398
377
|
|
|
378
|
+
Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
379
|
+
Http2HeaderFrame&& frame) {
|
|
380
|
+
// https://www.rfc-editor.org/rfc/rfc9113.html#name-headers
|
|
381
|
+
GRPC_HTTP2_CLIENT_DLOG
|
|
382
|
+
<< "Http2ClientTransport::ProcessIncomingFrame(HeaderFrame) { stream_id="
|
|
383
|
+
<< frame.stream_id << ", end_headers=" << frame.end_headers
|
|
384
|
+
<< ", end_stream=" << frame.end_stream << " }";
|
|
385
|
+
return ProcessIncomingMetadata(std::forward<Http2HeaderFrame>(frame));
|
|
386
|
+
}
|
|
387
|
+
|
|
399
388
|
Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
400
389
|
Http2RstStreamFrame&& frame) {
|
|
401
390
|
// https://www.rfc-editor.org/rfc/rfc9113.html#name-rst_stream
|
|
@@ -445,16 +434,16 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
445
434
|
}
|
|
446
435
|
} else {
|
|
447
436
|
if (settings_->OnSettingsAckReceived()) {
|
|
448
|
-
|
|
437
|
+
incoming_headers_.SetMaxHeaderTableSize(
|
|
449
438
|
settings_->acked().header_table_size());
|
|
450
439
|
ActOnFlowControlAction(flow_control_.SetAckedInitialWindow(
|
|
451
440
|
settings_->acked().initial_window_size()),
|
|
452
441
|
/*stream=*/nullptr);
|
|
453
442
|
} else {
|
|
454
|
-
//
|
|
455
|
-
//
|
|
456
|
-
//
|
|
457
|
-
LOG(ERROR) << "Settings ack received without sending settings";
|
|
443
|
+
// CHTTP2 returns a connection error for an unsolicited SETTINGS ACK.
|
|
444
|
+
// However, we ignore it in PH2 since RFC 9113 doesn't explicitly mandate
|
|
445
|
+
// an error.
|
|
446
|
+
LOG(ERROR) << "Settings ack received without sending settings. Ignore.";
|
|
458
447
|
}
|
|
459
448
|
}
|
|
460
449
|
|
|
@@ -588,9 +577,18 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
588
577
|
if (frame.stream_id != 0) {
|
|
589
578
|
stream = LookupStream(frame.stream_id);
|
|
590
579
|
}
|
|
580
|
+
|
|
581
|
+
const bool should_trigger_write = ProcessIncomingWindowUpdateFrameFlowControl(
|
|
582
|
+
frame, flow_control_, stream.get());
|
|
583
|
+
|
|
584
|
+
if (should_trigger_write) {
|
|
585
|
+
return ToHttpOkOrConnError(TriggerWriteCycle());
|
|
586
|
+
}
|
|
587
|
+
|
|
591
588
|
if (stream != nullptr) {
|
|
592
589
|
StreamWritabilityUpdate update =
|
|
593
|
-
stream->
|
|
590
|
+
stream->UpdateStreamWritability(GetStreamFlowControlTokens(
|
|
591
|
+
stream->GetStreamFlowControl(), settings_->peer()));
|
|
594
592
|
if (update.became_writable) {
|
|
595
593
|
absl::Status status = writable_stream_list_.EnqueueWrapper(
|
|
596
594
|
stream, update.priority, AreTransportFlowControlTokensAvailable());
|
|
@@ -599,12 +597,6 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
599
597
|
}
|
|
600
598
|
}
|
|
601
599
|
}
|
|
602
|
-
|
|
603
|
-
const bool should_trigger_write = ProcessIncomingWindowUpdateFrameFlowControl(
|
|
604
|
-
frame, flow_control_, stream.get());
|
|
605
|
-
if (should_trigger_write) {
|
|
606
|
-
return ToHttpOkOrConnError(TriggerWriteCycle());
|
|
607
|
-
}
|
|
608
600
|
return Http2Status::Ok();
|
|
609
601
|
}
|
|
610
602
|
|
|
@@ -615,50 +607,7 @@ Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
|
615
607
|
<< "Http2ClientTransport::ProcessIncomingFrame(ContinuationFrame) { "
|
|
616
608
|
"stream_id="
|
|
617
609
|
<< frame.stream_id << ", end_headers=" << frame.end_headers << " }";
|
|
618
|
-
|
|
619
|
-
// State update MUST happen before processing the frame.
|
|
620
|
-
incoming_headers_.OnContinuationReceived(frame);
|
|
621
|
-
|
|
622
|
-
RefCountedPtr<Stream> stream = LookupStream(frame.stream_id);
|
|
623
|
-
if (stream == nullptr) {
|
|
624
|
-
// TODO(tjagtap) : [PH2][P3] : Implement this.
|
|
625
|
-
// RFC9113 : The identifier of a newly established stream MUST be
|
|
626
|
-
// numerically greater than all streams that the initiating endpoint has
|
|
627
|
-
// opened or reserved. This governs streams that are opened using a HEADERS
|
|
628
|
-
// frame and streams that are reserved using PUSH_PROMISE. An endpoint that
|
|
629
|
-
// receives an unexpected stream identifier MUST respond with a connection
|
|
630
|
-
// error (Section 5.4.1) of type PROTOCOL_ERROR.
|
|
631
|
-
return ParseAndDiscardHeaders(std::move(frame.payload), frame.end_headers,
|
|
632
|
-
nullptr, Http2Status::Ok());
|
|
633
|
-
}
|
|
634
|
-
|
|
635
|
-
if (stream->IsStreamHalfClosedRemote()) {
|
|
636
|
-
return ParseAndDiscardHeaders(
|
|
637
|
-
std::move(frame.payload), frame.end_headers, stream.get(),
|
|
638
|
-
Http2Status::Http2StreamError(
|
|
639
|
-
Http2ErrorCode::kStreamClosed,
|
|
640
|
-
std::string(RFC9113::kHalfClosedRemoteState)));
|
|
641
|
-
}
|
|
642
|
-
|
|
643
|
-
Http2Status append_result =
|
|
644
|
-
stream->GetHeaderAssembler().AppendContinuationFrame(frame);
|
|
645
|
-
if (!append_result.IsOk()) {
|
|
646
|
-
// Frame payload is not consumed if AppendContinuationFrame returns a
|
|
647
|
-
// non-OK status. We need to process it to keep our in consistent state.
|
|
648
|
-
return ParseAndDiscardHeaders(std::move(frame.payload), frame.end_headers,
|
|
649
|
-
stream.get(), std::move(append_result));
|
|
650
|
-
}
|
|
651
|
-
|
|
652
|
-
Http2Status status = ProcessMetadata(stream);
|
|
653
|
-
if (!status.IsOk()) {
|
|
654
|
-
// Frame payload is consumed by HeaderAssembler. So passing an empty
|
|
655
|
-
// SliceBuffer to ParseAndDiscardHeaders.
|
|
656
|
-
return ParseAndDiscardHeaders(SliceBuffer(), frame.end_headers,
|
|
657
|
-
stream.get(), std::move(status));
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
// Frame payload has either been processed or moved to the HeaderAssembler.
|
|
661
|
-
return Http2Status::Ok();
|
|
610
|
+
return ProcessIncomingMetadata(std::forward<Http2ContinuationFrame>(frame));
|
|
662
611
|
}
|
|
663
612
|
|
|
664
613
|
Http2Status Http2ClientTransport::ProcessIncomingFrame(
|
|
@@ -694,7 +643,8 @@ Http2Status Http2ClientTransport::ProcessMetadata(
|
|
|
694
643
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::ProcessMetadata";
|
|
695
644
|
if (assembler.IsReady()) {
|
|
696
645
|
ValueOrHttp2Status<ServerMetadataHandle> read_result =
|
|
697
|
-
assembler.ReadMetadata(
|
|
646
|
+
assembler.ReadMetadata(incoming_headers_.parser(),
|
|
647
|
+
!incoming_headers_.HeaderHasEndStream(),
|
|
698
648
|
/*max_header_list_size_soft_limit=*/
|
|
699
649
|
incoming_headers_.soft_limit(),
|
|
700
650
|
/*max_header_list_size_hard_limit=*/
|
|
@@ -723,35 +673,6 @@ Http2Status Http2ClientTransport::ProcessMetadata(
|
|
|
723
673
|
return Http2Status::Ok();
|
|
724
674
|
}
|
|
725
675
|
|
|
726
|
-
Http2Status Http2ClientTransport::ParseAndDiscardHeaders(
|
|
727
|
-
SliceBuffer&& buffer, const bool is_end_headers, Stream* stream,
|
|
728
|
-
Http2Status&& original_status, DebugLocation whence) {
|
|
729
|
-
const bool is_initial_metadata = !incoming_headers_.HeaderHasEndStream();
|
|
730
|
-
const uint32_t incoming_stream_id = incoming_headers_.GetStreamId();
|
|
731
|
-
GRPC_HTTP2_CLIENT_DLOG
|
|
732
|
-
<< "Http2ClientTransport::ParseAndDiscardHeaders buffer size: "
|
|
733
|
-
<< buffer.Length() << " is_initial_metadata: " << is_initial_metadata
|
|
734
|
-
<< " is_end_headers: " << is_end_headers
|
|
735
|
-
<< " incoming_stream_id: " << incoming_stream_id
|
|
736
|
-
<< " stream_id: " << (stream == nullptr ? 0 : stream->GetStreamId())
|
|
737
|
-
<< " original_status: " << original_status.DebugString()
|
|
738
|
-
<< " whence: " << whence.file() << ":" << whence.line();
|
|
739
|
-
|
|
740
|
-
return http2::ParseAndDiscardHeaders(
|
|
741
|
-
parser_, std::move(buffer),
|
|
742
|
-
HeaderAssembler::ParseHeaderArgs{
|
|
743
|
-
/*is_initial_metadata=*/is_initial_metadata,
|
|
744
|
-
/*is_end_headers=*/is_end_headers,
|
|
745
|
-
/*is_client=*/kIsClient,
|
|
746
|
-
/*max_header_list_size_soft_limit=*/
|
|
747
|
-
incoming_headers_.soft_limit(),
|
|
748
|
-
/*max_header_list_size_hard_limit=*/
|
|
749
|
-
settings_->acked().max_header_list_size(),
|
|
750
|
-
/*stream_id=*/incoming_stream_id,
|
|
751
|
-
},
|
|
752
|
-
stream, std::move(original_status));
|
|
753
|
-
}
|
|
754
|
-
|
|
755
676
|
///////////////////////////////////////////////////////////////////////////////
|
|
756
677
|
// Read Related Promises and Promise Factories
|
|
757
678
|
auto Http2ClientTransport::ReadAndProcessOneFrame() {
|
|
@@ -762,14 +683,12 @@ auto Http2ClientTransport::ReadAndProcessOneFrame() {
|
|
|
762
683
|
// the frame header.
|
|
763
684
|
EndpointReadSlice(kFrameHeaderSize),
|
|
764
685
|
// Parse the frame header.
|
|
765
|
-
[](Slice header_bytes)
|
|
686
|
+
[this](Slice header_bytes) {
|
|
766
687
|
GRPC_HTTP2_CLIENT_DLOG
|
|
767
688
|
<< "Http2ClientTransport::ReadAndProcessOneFrame Parse "
|
|
768
689
|
<< header_bytes.as_string_view();
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
// Validate the incoming frame as per the current state of the transport
|
|
772
|
-
[this](Http2FrameHeader header) {
|
|
690
|
+
Http2FrameHeader header = Http2FrameHeader::Parse(header_bytes.begin());
|
|
691
|
+
// Validate the incoming frame as per the current state of the transport
|
|
773
692
|
Http2Status status = ValidateFrameHeader(
|
|
774
693
|
/*max_frame_size_setting*/ settings_->acked().max_frame_size(),
|
|
775
694
|
/*incoming_header_in_progress*/
|
|
@@ -917,6 +836,32 @@ void Http2ClientTransport::ActOnFlowControlAction(
|
|
|
917
836
|
}
|
|
918
837
|
}
|
|
919
838
|
|
|
839
|
+
absl::Status Http2ClientTransport::UpdateAllStreamsWritability() {
|
|
840
|
+
MutexLock lock(&transport_mutex_);
|
|
841
|
+
GRPC_HTTP2_CLIENT_DLOG
|
|
842
|
+
<< "Http2ClientTransport::UpdateAllStreamsWritability total streams: "
|
|
843
|
+
<< stream_list_.size();
|
|
844
|
+
// This loop iterates over all active streams. For each stream this would
|
|
845
|
+
// internally take a stream specific lock and update the stream writability.
|
|
846
|
+
// This is not optimal but should be fine as this function is only called when
|
|
847
|
+
// initial window size is increased which in theory should not be very
|
|
848
|
+
// frequent.
|
|
849
|
+
for (const auto& [stream_id, stream] : stream_list_) {
|
|
850
|
+
StreamWritabilityUpdate update =
|
|
851
|
+
stream->UpdateStreamWritability(GetStreamFlowControlTokens(
|
|
852
|
+
stream->GetStreamFlowControl(), settings_->peer()));
|
|
853
|
+
absl::Status status = MaybeAddStreamToWritableStreamList(stream, update);
|
|
854
|
+
if (GPR_UNLIKELY(!status.ok())) {
|
|
855
|
+
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::"
|
|
856
|
+
"UpdateAllStreamsWritability failed for stream "
|
|
857
|
+
<< stream_id << " with status " << status;
|
|
858
|
+
return status;
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
return absl::OkStatus();
|
|
863
|
+
}
|
|
864
|
+
|
|
920
865
|
///////////////////////////////////////////////////////////////////////////////
|
|
921
866
|
// Write Related Promises and Promise Factories
|
|
922
867
|
auto Http2ClientTransport::EndpointWrite(SliceBuffer&& output_buf) {
|
|
@@ -967,9 +912,30 @@ absl::Status Http2ClientTransport::PrepareControlFrames() {
|
|
|
967
912
|
|
|
968
913
|
goaway_manager_.MaybeGetSerializedGoawayFrame(frame_sender);
|
|
969
914
|
bool should_spawn_security_frame_loop = false;
|
|
915
|
+
|
|
916
|
+
const uint32_t old_initial_window_size =
|
|
917
|
+
settings_->peer().initial_window_size();
|
|
970
918
|
http2::Http2ErrorCode apply_status =
|
|
971
919
|
settings_->MaybeReportAndApplyBufferedPeerSettings(
|
|
972
920
|
event_engine_.get(), should_spawn_security_frame_loop);
|
|
921
|
+
|
|
922
|
+
if (apply_status == http2::Http2ErrorCode::kNoError) {
|
|
923
|
+
const uint32_t new_initial_window_size =
|
|
924
|
+
settings_->peer().initial_window_size();
|
|
925
|
+
if (new_initial_window_size > old_initial_window_size) {
|
|
926
|
+
// TODO(akshitpatel) [PH2][P5] : Currently, if calling
|
|
927
|
+
// UpdateAllStreamsWritability() makes one or more streams writable. Once
|
|
928
|
+
// a stream is writable, it is enqueued to the writable stream list.
|
|
929
|
+
// However, these streams are not written out until the next write cycle.
|
|
930
|
+
// Might be worth considering to write out these streams immediately.
|
|
931
|
+
settings_->IncrementInitialWindowSizeIncreaseCount();
|
|
932
|
+
absl::Status status = UpdateAllStreamsWritability();
|
|
933
|
+
if (GPR_UNLIKELY(!status.ok())) {
|
|
934
|
+
return status;
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
|
|
973
939
|
if (should_spawn_security_frame_loop) {
|
|
974
940
|
const SecurityFrameHandler::EndpointExtensionState state =
|
|
975
941
|
security_frame_handler_->Initialize(event_engine_);
|
|
@@ -1260,9 +1226,9 @@ absl::Status Http2ClientTransport::InitializeStream(Stream& stream) {
|
|
|
1260
1226
|
<< next_stream_id.value() << " to stream: " << &stream
|
|
1261
1227
|
<< ", allow_true_binary_metadata:"
|
|
1262
1228
|
<< settings_->peer().allow_true_binary_metadata();
|
|
1263
|
-
stream.
|
|
1264
|
-
|
|
1265
|
-
|
|
1229
|
+
stream.InitializeClientStream(
|
|
1230
|
+
next_stream_id.value(), settings_->peer().allow_true_binary_metadata(),
|
|
1231
|
+
settings_->acked().allow_true_binary_metadata());
|
|
1266
1232
|
return absl::OkStatus();
|
|
1267
1233
|
}
|
|
1268
1234
|
|
|
@@ -1345,7 +1311,8 @@ Http2ClientTransport::Http2ClientTransport(
|
|
|
1345
1311
|
std::move(on_receive_settings))),
|
|
1346
1312
|
next_stream_id_(/*Initial Stream ID*/ 1),
|
|
1347
1313
|
should_reset_ping_clock_(false),
|
|
1348
|
-
incoming_headers_(IncomingMetadataTracker::GetPeerString(endpoint_)
|
|
1314
|
+
incoming_headers_(IncomingMetadataTracker::GetPeerString(endpoint_),
|
|
1315
|
+
kIsClient),
|
|
1349
1316
|
transport_write_context_(kIsClient),
|
|
1350
1317
|
ping_manager_(std::nullopt),
|
|
1351
1318
|
keepalive_manager_(std::nullopt),
|
|
@@ -1486,19 +1453,10 @@ void Http2ClientTransport::CloseStream(Stream& stream, CloseStreamArgs args,
|
|
|
1486
1453
|
// should still parse the enqueued buffer to maintain HPACK state between
|
|
1487
1454
|
// peers.
|
|
1488
1455
|
if (incoming_headers_.IsWaitingForContinuationFrame()) {
|
|
1489
|
-
Http2Status result =
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
/*is_end_headers=*/false,
|
|
1494
|
-
/*is_client=*/kIsClient,
|
|
1495
|
-
/*max_header_list_size_soft_limit=*/
|
|
1496
|
-
incoming_headers_.soft_limit(),
|
|
1497
|
-
/*max_header_list_size_hard_limit=*/
|
|
1498
|
-
settings_->acked().max_header_list_size(),
|
|
1499
|
-
/*stream_id=*/incoming_headers_.GetStreamId(),
|
|
1500
|
-
},
|
|
1501
|
-
&stream, /*original_status=*/Http2Status::Ok());
|
|
1456
|
+
Http2Status result = incoming_headers_.ParseAndDiscardHeaders(
|
|
1457
|
+
SliceBuffer(), /*is_end_headers=*/false, &stream,
|
|
1458
|
+
/*original_status=*/Http2Status::Ok(),
|
|
1459
|
+
settings_->acked().max_header_list_size());
|
|
1502
1460
|
if (result.GetType() == Http2Status::Http2ErrorType::kConnectionError) {
|
|
1503
1461
|
GRPC_HTTP2_CLIENT_DLOG
|
|
1504
1462
|
<< "Http2ClientTransport::CloseStream for stream id: "
|
|
@@ -1948,9 +1906,8 @@ bool Http2ClientTransport::SetOnDone(CallHandler call_handler,
|
|
|
1948
1906
|
|
|
1949
1907
|
std::optional<RefCountedPtr<Stream>> Http2ClientTransport::MakeStream(
|
|
1950
1908
|
CallHandler call_handler) {
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
stream = MakeRefCounted<Stream>(call_handler, flow_control_);
|
|
1909
|
+
RefCountedPtr<Stream> stream =
|
|
1910
|
+
MakeRefCounted<Stream>(call_handler, flow_control_);
|
|
1954
1911
|
const bool on_done_added = SetOnDone(std::move(call_handler), stream);
|
|
1955
1912
|
if (!on_done_added) return std::nullopt;
|
|
1956
1913
|
return std::move(stream);
|
|
@@ -183,9 +183,9 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
183
183
|
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION auto EndpointReadSlice(
|
|
184
184
|
const size_t num_bytes) {
|
|
185
185
|
return Map(endpoint_.ReadSlice(num_bytes),
|
|
186
|
-
[this, num_bytes](absl::StatusOr<Slice
|
|
186
|
+
[this, num_bytes](absl::StatusOr<Slice>&& status) {
|
|
187
187
|
OnEndpointRead(status.ok(), num_bytes);
|
|
188
|
-
return status;
|
|
188
|
+
return std::move(status);
|
|
189
189
|
});
|
|
190
190
|
}
|
|
191
191
|
|
|
@@ -194,9 +194,9 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
194
194
|
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION auto EndpointRead(
|
|
195
195
|
const size_t num_bytes) {
|
|
196
196
|
return Map(endpoint_.Read(num_bytes),
|
|
197
|
-
[this, num_bytes](absl::StatusOr<SliceBuffer
|
|
197
|
+
[this, num_bytes](absl::StatusOr<SliceBuffer>&& status) {
|
|
198
198
|
OnEndpointRead(status.ok(), num_bytes);
|
|
199
|
-
return status;
|
|
199
|
+
return std::move(status);
|
|
200
200
|
});
|
|
201
201
|
}
|
|
202
202
|
|
|
@@ -243,11 +243,6 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
243
243
|
|
|
244
244
|
Http2Status ProcessMetadata(RefCountedPtr<Stream> stream);
|
|
245
245
|
|
|
246
|
-
Http2Status ParseAndDiscardHeaders(SliceBuffer&& buffer, bool is_end_headers,
|
|
247
|
-
Stream* stream,
|
|
248
|
-
Http2Status&& original_status,
|
|
249
|
-
DebugLocation whence = {});
|
|
250
|
-
|
|
251
246
|
GPR_ATTRIBUTE_ALWAYS_INLINE_FUNCTION Http2Status
|
|
252
247
|
ProcessOneIncomingFrame(Http2Frame&& frame) {
|
|
253
248
|
GRPC_HTTP2_CLIENT_DLOG << "Http2ClientTransport::ProcessOneIncomingFrame";
|
|
@@ -258,6 +253,9 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
258
253
|
std::forward<Http2Frame>(frame));
|
|
259
254
|
}
|
|
260
255
|
|
|
256
|
+
template <typename T>
|
|
257
|
+
Http2Status ProcessIncomingMetadata(T&& frame);
|
|
258
|
+
|
|
261
259
|
auto ReadAndProcessOneFrame();
|
|
262
260
|
|
|
263
261
|
// Returns a promise to keep reading in a Loop till a fail/close is received.
|
|
@@ -328,8 +326,6 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
328
326
|
return false;
|
|
329
327
|
}
|
|
330
328
|
|
|
331
|
-
absl::Status InitializeStream(Stream& stream);
|
|
332
|
-
|
|
333
329
|
//////////////////////////////////////////////////////////////////////////////
|
|
334
330
|
// Spawn Helpers and Promise Helpers
|
|
335
331
|
|
|
@@ -395,24 +391,12 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
395
391
|
std::forward<OnDone>(on_done));
|
|
396
392
|
}
|
|
397
393
|
|
|
398
|
-
// Runs on the call party.
|
|
399
|
-
std::optional<RefCountedPtr<Stream>> MakeStream(CallHandler call_handler);
|
|
400
|
-
|
|
401
|
-
// This function MUST be idempotent.
|
|
402
|
-
void CloseStream(Stream& stream, CloseStreamArgs args,
|
|
403
|
-
DebugLocation whence = {});
|
|
404
|
-
|
|
405
|
-
void BeginCloseStream(RefCountedPtr<Stream> stream,
|
|
406
|
-
std::optional<uint32_t> reset_stream_error_code,
|
|
407
|
-
ServerMetadataHandle&& metadata,
|
|
408
|
-
DebugLocation whence = {});
|
|
409
|
-
|
|
410
394
|
//////////////////////////////////////////////////////////////////////////////
|
|
411
395
|
// Settings
|
|
412
396
|
|
|
397
|
+
void EnforceLatestIncomingSettings();
|
|
413
398
|
auto WaitForSettingsTimeoutOnDone();
|
|
414
399
|
void MaybeSpawnWaitForSettingsTimeout();
|
|
415
|
-
void EnforceLatestIncomingSettings();
|
|
416
400
|
|
|
417
401
|
//////////////////////////////////////////////////////////////////////////////
|
|
418
402
|
// Flow Control and BDP
|
|
@@ -423,6 +407,12 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
423
407
|
|
|
424
408
|
void MaybeGetWindowUpdateFrames(FrameSender& frame_sender);
|
|
425
409
|
|
|
410
|
+
// On receiving an increase in the initial_window size, update the writability
|
|
411
|
+
// for all active streams. This may un-stall streams that are stalled due to
|
|
412
|
+
// lack of flow control tokens. This is needed as the stream flow control
|
|
413
|
+
// tokens are calculated based on the initial window size.
|
|
414
|
+
absl::Status UpdateAllStreamsWritability();
|
|
415
|
+
|
|
426
416
|
auto FlowControlPeriodicUpdateLoop();
|
|
427
417
|
|
|
428
418
|
// TODO(tjagtap) [PH2][P2][BDP] Remove this when the BDP code is done.
|
|
@@ -490,25 +480,25 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
490
480
|
//////////////////////////////////////////////////////////////////////////////
|
|
491
481
|
// Stream Operations
|
|
492
482
|
|
|
493
|
-
|
|
494
|
-
void CloseTransport();
|
|
495
|
-
|
|
496
|
-
void MaybeSpawnCloseTransport(Http2Status http2_status,
|
|
497
|
-
DebugLocation whence = {});
|
|
483
|
+
absl::Status InitializeStream(Stream& stream);
|
|
498
484
|
|
|
499
|
-
|
|
485
|
+
// Runs on the call party.
|
|
486
|
+
std::optional<RefCountedPtr<Stream>> MakeStream(CallHandler call_handler);
|
|
500
487
|
|
|
501
|
-
void
|
|
488
|
+
void BeginCloseStream(RefCountedPtr<Stream> stream,
|
|
489
|
+
std::optional<uint32_t> reset_stream_error_code,
|
|
490
|
+
ServerMetadataHandle&& metadata,
|
|
491
|
+
DebugLocation whence = {});
|
|
502
492
|
|
|
503
|
-
|
|
504
|
-
|
|
493
|
+
// This function MUST be idempotent.
|
|
494
|
+
void CloseStream(Stream& stream, CloseStreamArgs args,
|
|
495
|
+
DebugLocation whence = {});
|
|
505
496
|
|
|
506
497
|
//////////////////////////////////////////////////////////////////////////////
|
|
507
498
|
// Ping Keepalive and Goaway
|
|
508
499
|
|
|
509
500
|
void MaybeSpawnPingTimeout(std::optional<uint64_t> opaque_data);
|
|
510
501
|
void MaybeSpawnDelayedPing(std::optional<Duration> delayed_ping_wait);
|
|
511
|
-
void MaybeSpawnKeepaliveLoop();
|
|
512
502
|
|
|
513
503
|
auto SendPing(absl::AnyInvocable<void()> on_initiate, bool important) {
|
|
514
504
|
return ping_manager_->RequestPing(std::move(on_initiate), important);
|
|
@@ -516,7 +506,6 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
516
506
|
|
|
517
507
|
auto WaitForPingAck() { return ping_manager_->WaitForPingAck(); }
|
|
518
508
|
|
|
519
|
-
// Ping Helper functions
|
|
520
509
|
Duration NextAllowedPingInterval() {
|
|
521
510
|
MutexLock lock(&transport_mutex_);
|
|
522
511
|
return (!keepalive_permit_without_calls_ &&
|
|
@@ -527,9 +516,23 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
527
516
|
|
|
528
517
|
absl::Status AckPing(uint64_t opaque_data);
|
|
529
518
|
|
|
519
|
+
void MaybeSpawnKeepaliveLoop();
|
|
520
|
+
|
|
521
|
+
uint32_t GetMaxAllowedStreamId() const;
|
|
522
|
+
void SetMaxAllowedStreamId(uint32_t max_allowed_stream_id);
|
|
523
|
+
|
|
530
524
|
//////////////////////////////////////////////////////////////////////////////
|
|
531
525
|
// Error Path and Close Path
|
|
532
526
|
|
|
527
|
+
void MaybeSpawnCloseTransport(Http2Status http2_status,
|
|
528
|
+
DebugLocation whence = {});
|
|
529
|
+
|
|
530
|
+
bool CanCloseTransportLocked() const
|
|
531
|
+
ABSL_EXCLUSIVE_LOCKS_REQUIRED(transport_mutex_);
|
|
532
|
+
|
|
533
|
+
// This function MUST run on the transport party.
|
|
534
|
+
void CloseTransport();
|
|
535
|
+
|
|
533
536
|
// Handles the error status and returns the corresponding absl status. Absl
|
|
534
537
|
// Status is returned so that the error can be gracefully handled
|
|
535
538
|
// by promise primitives.
|
|
@@ -653,7 +656,6 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
653
656
|
|
|
654
657
|
uint32_t next_stream_id_;
|
|
655
658
|
HPackCompressor encoder_;
|
|
656
|
-
HPackParser parser_;
|
|
657
659
|
bool is_transport_closed_ ABSL_GUARDED_BY(transport_mutex_) = false;
|
|
658
660
|
Latch<void> transport_closed_latch_;
|
|
659
661
|
|
|
@@ -679,7 +681,6 @@ class Http2ClientTransport final : public ClientTransport,
|
|
|
679
681
|
std::optional<PingManager> ping_manager_;
|
|
680
682
|
std::optional<KeepaliveManager> keepalive_manager_;
|
|
681
683
|
|
|
682
|
-
// Flags
|
|
683
684
|
bool keepalive_permit_without_calls_;
|
|
684
685
|
|
|
685
686
|
GoawayManager goaway_manager_;
|