grpc 1.78.0 → 1.80.0.pre1
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 +22 -8
- data/include/grpc/credentials.h +47 -37
- data/include/grpc/credentials_cpp.h +39 -0
- data/include/grpc/event_engine/event_engine.h +8 -3
- data/include/grpc/grpc.h +4 -0
- data/include/grpc/impl/call.h +9 -0
- data/include/grpc/impl/channel_arg_names.h +7 -0
- data/include/grpc/module.modulemap +2 -0
- data/include/grpc/private_key_signer.h +104 -0
- data/include/grpc/support/port_platform.h +6 -0
- data/src/core/call/call_filters.h +101 -78
- data/src/core/call/call_spine.h +91 -68
- data/src/core/call/call_state.h +60 -4
- data/src/core/call/client_call.cc +9 -9
- data/src/core/call/client_call.h +1 -1
- data/src/core/call/metadata_batch.cc +2 -0
- data/src/core/call/metadata_batch.h +48 -1
- data/src/core/call/metadata_info.cc +35 -0
- data/src/core/call/metadata_info.h +2 -0
- data/src/core/call/simple_slice_based_metadata.h +2 -1
- data/src/core/channelz/channelz.cc +9 -6
- data/src/core/channelz/channelz.h +7 -4
- data/src/core/channelz/property_list.h +5 -0
- data/src/core/channelz/v2tov1/convert.cc +1 -1
- data/src/core/channelz/v2tov1/legacy_api.cc +164 -307
- data/src/core/client_channel/buffered_call.cc +7 -3
- data/src/core/client_channel/buffered_call.h +11 -5
- data/src/core/client_channel/client_channel.cc +106 -44
- data/src/core/client_channel/client_channel.h +3 -6
- data/src/core/client_channel/client_channel_filter.cc +90 -64
- data/src/core/client_channel/client_channel_filter.h +3 -6
- data/src/core/client_channel/client_channel_internal.h +5 -0
- data/src/core/client_channel/config_selector.h +17 -12
- data/src/core/client_channel/dynamic_filters.cc +8 -7
- data/src/core/client_channel/dynamic_filters.h +7 -5
- data/src/core/client_channel/retry_filter.cc +1 -1
- data/src/core/client_channel/retry_filter.h +2 -2
- data/src/core/client_channel/subchannel.cc +1682 -266
- data/src/core/client_channel/subchannel.h +411 -134
- data/src/core/client_channel/subchannel_stream_client.cc +22 -18
- data/src/core/client_channel/subchannel_stream_client.h +8 -9
- data/src/core/client_channel/subchannel_stream_limiter.cc +76 -0
- data/src/core/client_channel/subchannel_stream_limiter.h +51 -0
- data/src/core/config/config_vars.cc +9 -1
- data/src/core/config/config_vars.h +6 -0
- data/src/core/credentials/call/call_creds_registry.h +51 -22
- data/src/core/credentials/call/call_creds_registry_init.cc +86 -2
- data/src/core/credentials/call/external/aws_external_account_credentials.cc +2 -2
- data/src/core/credentials/call/external/external_account_credentials.cc +11 -4
- data/src/core/credentials/call/external/file_external_account_credentials.cc +2 -2
- data/src/core/credentials/transport/channel_creds_registry.h +71 -20
- data/src/core/credentials/transport/channel_creds_registry_init.cc +338 -29
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +43 -24
- data/src/core/credentials/transport/ssl/ssl_credentials.h +7 -1
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +2 -8
- data/src/core/credentials/transport/ssl/ssl_security_connector.h +4 -3
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +25 -5
- data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +7 -5
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +181 -109
- data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.h +55 -42
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +28 -23
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.h +26 -23
- data/src/core/credentials/transport/tls/spiffe_utils.cc +2 -2
- data/src/core/credentials/transport/tls/ssl_utils.cc +18 -18
- data/src/core/credentials/transport/tls/ssl_utils.h +12 -10
- data/src/core/credentials/transport/tls/tls_security_connector.cc +106 -74
- data/src/core/credentials/transport/tls/tls_security_connector.h +12 -8
- data/src/core/credentials/transport/xds/xds_credentials.cc +76 -32
- data/src/core/credentials/transport/xds/xds_credentials.h +4 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +117 -35
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +42 -4
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +58 -29
- data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +19 -11
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +82 -25
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +28 -3
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +9 -7
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +1 -1
- data/src/core/ext/transport/chttp2/transport/call_tracer_wrapper.h +7 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +117 -67
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +2 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +11 -1
- data/src/core/ext/transport/chttp2/transport/frame.cc +2 -15
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
- data/src/core/ext/transport/chttp2/transport/goaway.cc +17 -2
- data/src/core/ext/transport/chttp2/transport/goaway.h +27 -6
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +8 -21
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +101 -40
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +95 -0
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +923 -772
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +406 -423
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +8 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +25 -13
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +71 -24
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +25 -49
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +29 -9
- data/src/core/ext/transport/chttp2/transport/internal.h +6 -2
- data/src/core/ext/transport/chttp2/transport/keepalive.cc +14 -20
- data/src/core/ext/transport/chttp2/transport/keepalive.h +9 -6
- data/src/core/ext/transport/chttp2/transport/parsing.cc +11 -0
- data/src/core/ext/transport/chttp2/transport/ping_promise.cc +34 -74
- data/src/core/ext/transport/chttp2/transport/ping_promise.h +123 -79
- data/src/core/ext/transport/chttp2/transport/security_frame.h +233 -3
- data/src/core/ext/transport/chttp2/transport/stream.h +152 -73
- data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +155 -85
- data/src/core/ext/transport/chttp2/transport/transport_common.h +0 -5
- data/src/core/ext/transport/chttp2/transport/writable_streams.h +8 -7
- data/src/core/ext/transport/chttp2/transport/write_cycle.cc +86 -0
- data/src/core/ext/transport/chttp2/transport/write_cycle.h +355 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +31 -29
- data/src/core/ext/upb-gen/cel/expr/checked.upb.h +1875 -0
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +409 -0
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.h +56 -0
- data/src/core/ext/upb-gen/cel/expr/syntax.upb.h +2223 -0
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +489 -0
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.h +60 -0
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +130 -18
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +18 -13
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +70 -38
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +20 -17
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +26 -10
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +8 -7
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb.h +495 -0
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +114 -0
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.h +36 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +26 -10
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +8 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb.h +121 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +54 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +143 -9
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +18 -6
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +112 -11
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +22 -9
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb.h +276 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +60 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.h +4 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +72 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +23 -2
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +129 -13
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +36 -10
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +5 -3
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb.h +16 -0
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +4 -3
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +31 -0
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +5 -3
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +2 -1
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +63 -0
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +12 -7
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +97 -81
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +40 -23
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +604 -228
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +146 -100
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +30 -0
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +5 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb.h +35 -3
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +7 -4
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb.h +66 -14
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +22 -11
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +87 -0
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +29 -2
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +0 -1
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +20 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +5 -4
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +239 -60
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +59 -28
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb.h +89 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +50 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb.h +135 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.c +53 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/tls/v3/tls_credentials.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb.h +105 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.c +51 -0
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/channel_credentials/xds/v3/xds_credentials.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +32 -0
- 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 +6 -3
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +206 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +41 -8
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +64 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +4 -3
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +64 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +31 -5
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +283 -14
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +48 -11
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb.h +144 -6
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +35 -7
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +42 -21
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +9 -8
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb.h +164 -1
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +37 -6
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.h +2 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb.h +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/http_inputs.upb_minitable.c +0 -1
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +26 -11
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +8 -8
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +33 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +14 -3
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +90 -10
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +18 -7
- data/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.c +248 -0
- data/src/core/ext/upbdefs-gen/cel/expr/checked.upbdefs.h +97 -0
- data/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.c +283 -0
- data/src/core/ext/upbdefs-gen/cel/expr/syntax.upbdefs.h +107 -0
- data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +213 -211
- data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +635 -614
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +1012 -1000
- data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +276 -273
- data/src/core/ext/upbdefs-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upbdefs.c +152 -0
- data/src/core/ext/upbdefs-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upbdefs.h +47 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +149 -144
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +367 -370
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/cel.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/cel.upbdefs.h +37 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +297 -284
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +492 -469
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +74 -43
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +60 -59
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +202 -184
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +354 -339
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +28 -19
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +30 -27
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +71 -66
- data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +94 -91
- data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +386 -369
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +60 -57
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +1974 -1884
- data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +119 -112
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +62 -51
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +109 -88
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +54 -36
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +78 -84
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +48 -46
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +1041 -984
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +304 -290
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +94 -77
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +246 -193
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +37 -23
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +5 -3
- data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +4 -5
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.c +113 -87
- data/src/core/ext/upbdefs-gen/src/proto/grpc/channelz/v2/promise.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +6 -5
- data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +25 -30
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +14 -20
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +180 -183
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +56 -47
- data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +69 -47
- data/src/core/filter/filter_chain.h +95 -0
- data/src/core/handshaker/http_connect/{http_connect_handshaker.cc → http_connect_client_handshaker.cc} +32 -31
- data/src/core/handshaker/http_connect/{http_connect_handshaker.h → http_connect_client_handshaker.h} +4 -4
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +1 -1
- data/src/core/handshaker/http_connect/xds_http_proxy_mapper.cc +1 -1
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +14 -13
- data/src/core/handshaker/security/secure_endpoint.cc +282 -68
- data/src/core/handshaker/security/secure_endpoint.h +0 -7
- data/src/core/lib/channel/channel_args.h +1 -1
- data/src/core/lib/channel/promise_based_filter.cc +17 -4
- data/src/core/lib/channel/promise_based_filter.h +3 -2
- data/src/core/lib/debug/trace_flags.cc +2 -0
- data/src/core/lib/debug/trace_flags.h +1 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +35 -8
- data/src/core/lib/event_engine/cf_engine/dns_service_resolver.h +1 -2
- data/src/core/lib/event_engine/event_engine.cc +9 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +0 -3
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +2 -2
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +34 -9
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +24 -2
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +1 -3
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +141 -14
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +19 -2
- data/src/core/lib/event_engine/posix_engine/posix_interface.h +7 -0
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +21 -3
- data/src/core/lib/event_engine/posix_engine/posix_interface_windows.cc +16 -0
- data/src/core/lib/experiments/experiments.cc +309 -201
- data/src/core/lib/experiments/experiments.h +141 -80
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
- data/src/core/lib/iomgr/resolve_address.h +0 -2
- data/src/core/lib/iomgr/resolved_address.h +0 -2
- data/src/core/lib/iomgr/tcp_posix.cc +13 -5
- data/src/core/lib/iomgr/tcp_server.cc +0 -5
- data/src/core/lib/iomgr/tcp_server.h +0 -7
- data/src/core/lib/iomgr/tcp_server_posix.cc +0 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -3
- data/src/core/lib/iomgr/tcp_server_windows.cc +12 -51
- data/src/core/lib/promise/all_ok.h +17 -12
- data/src/core/lib/promise/cancel_callback.h +12 -13
- data/src/core/lib/promise/detail/join_state.h +626 -0
- data/src/core/lib/promise/detail/promise_factory.h +14 -14
- data/src/core/lib/promise/for_each.h +32 -8
- data/src/core/lib/promise/if.h +9 -7
- data/src/core/lib/promise/loop.h +18 -16
- data/src/core/lib/promise/map.h +54 -47
- data/src/core/lib/promise/mpsc.h +11 -10
- data/src/core/lib/promise/observable.h +6 -6
- data/src/core/lib/promise/party.h +25 -19
- data/src/core/lib/promise/poll.h +5 -5
- data/src/core/lib/promise/prioritized_race.h +10 -7
- data/src/core/lib/promise/promise.h +16 -11
- data/src/core/lib/promise/race.h +6 -5
- data/src/core/lib/promise/seq.h +109 -74
- data/src/core/lib/promise/try_join.h +14 -6
- data/src/core/lib/promise/try_seq.h +76 -60
- data/src/core/lib/resource_quota/api.cc +7 -0
- data/src/core/lib/resource_quota/arena.h +1 -1
- data/src/core/lib/resource_quota/memory_quota.cc +4 -1
- data/src/core/lib/resource_quota/resource_quota.cc +2 -1
- data/src/core/lib/resource_quota/resource_quota.h +3 -0
- data/src/core/lib/resource_quota/stream_quota.cc +77 -1
- data/src/core/lib/resource_quota/stream_quota.h +64 -1
- data/src/core/lib/resource_quota/telemetry.h +1 -1
- data/src/core/lib/surface/call.cc +13 -0
- data/src/core/lib/surface/call_utils.h +58 -43
- data/src/core/lib/surface/channel.h +1 -4
- data/src/core/lib/surface/completion_queue.cc +13 -6
- data/src/core/lib/surface/validate_metadata.cc +20 -15
- data/src/core/lib/surface/validate_metadata.h +3 -1
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/promise_endpoint.cc +1 -1
- data/src/core/lib/transport/promise_endpoint.h +1 -1
- data/src/core/lib/transport/transport.h +5 -0
- data/src/core/load_balancing/health_check_client.cc +1 -15
- data/src/core/load_balancing/health_check_client_internal.h +0 -2
- data/src/core/load_balancing/oob_backend_metric.cc +1 -5
- data/src/core/load_balancing/oob_backend_metric_internal.h +0 -1
- data/src/core/load_balancing/xds/xds_cluster_impl.cc +12 -9
- data/src/core/plugin_registry/grpc_plugin_registry.cc +3 -2
- data/src/core/resolver/xds/xds_resolver.cc +162 -116
- data/src/core/server/server.cc +18 -1
- data/src/core/server/server.h +2 -0
- data/src/core/server/xds_server_config_fetcher.cc +4 -4
- data/src/core/telemetry/call_tracer.cc +87 -2
- data/src/core/telemetry/call_tracer.h +46 -8
- data/src/core/telemetry/instrument.cc +102 -40
- data/src/core/telemetry/instrument.h +246 -65
- data/src/core/tsi/fake_transport_security.cc +3 -1
- data/src/core/tsi/ssl_transport_security.cc +516 -137
- data/src/core/tsi/ssl_transport_security.h +28 -22
- data/src/core/tsi/ssl_transport_security_utils.cc +2 -2
- data/src/core/tsi/ssl_transport_security_utils.h +2 -2
- data/src/core/util/bitset.h +6 -0
- data/src/core/util/function_signature.h +3 -1
- data/src/core/util/http_client/httpcli_security_connector.cc +2 -1
- data/src/core/util/json/json_reader.cc +0 -4
- data/src/core/xds/grpc/certificate_provider_store.cc +2 -1
- data/src/core/xds/grpc/certificate_provider_store.h +3 -17
- data/src/core/xds/grpc/certificate_provider_store_interface.h +61 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +48 -0
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +18 -0
- data/src/core/xds/grpc/xds_certificate_provider.cc +7 -2
- data/src/core/xds/grpc/xds_certificate_provider.h +13 -2
- data/src/core/xds/grpc/xds_client_grpc.cc +13 -6
- data/src/core/xds/grpc/xds_client_grpc.h +10 -7
- data/src/core/xds/grpc/xds_cluster.cc +18 -4
- data/src/core/xds/grpc/xds_cluster.h +17 -2
- data/src/core/xds/grpc/xds_cluster_parser.cc +36 -11
- data/src/core/xds/grpc/xds_common_types.cc +45 -0
- data/src/core/xds/grpc/xds_common_types.h +31 -0
- data/src/core/xds/grpc/xds_common_types_parser.cc +274 -16
- data/src/core/xds/grpc/xds_common_types_parser.h +12 -0
- data/src/core/xds/grpc/xds_http_fault_filter.cc +128 -24
- data/src/core/xds/grpc/xds_http_fault_filter.h +19 -10
- data/src/core/xds/grpc/xds_http_filter.cc +38 -0
- data/src/core/xds/grpc/xds_http_filter.h +70 -47
- data/src/core/xds/grpc/xds_http_filter_registry.cc +48 -14
- data/src/core/xds/grpc/xds_http_filter_registry.h +29 -15
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.cc +88 -22
- data/src/core/xds/grpc/xds_http_gcp_authn_filter.h +22 -11
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +36 -20
- data/src/core/xds/grpc/xds_http_rbac_filter.h +19 -10
- data/src/core/xds/grpc/xds_http_stateful_session_filter.cc +143 -26
- data/src/core/xds/grpc/xds_http_stateful_session_filter.h +19 -10
- data/src/core/xds/grpc/xds_listener.cc +4 -1
- data/src/core/xds/grpc/xds_listener.h +10 -2
- data/src/core/xds/grpc/xds_listener_parser.cc +23 -18
- data/src/core/xds/grpc/xds_matcher.cc +40 -5
- data/src/core/xds/grpc/xds_matcher.h +13 -0
- data/src/core/xds/grpc/xds_matcher_action.h +1 -1
- data/src/core/xds/grpc/xds_matcher_parse.cc +60 -40
- data/src/core/xds/grpc/xds_matcher_parse.h +2 -1
- data/src/core/xds/grpc/xds_route_config.cc +12 -1
- data/src/core/xds/grpc/xds_route_config.h +15 -2
- data/src/core/xds/grpc/xds_route_config_parser.cc +11 -5
- data/src/core/xds/grpc/xds_routing.cc +181 -6
- data/src/core/xds/grpc/xds_routing.h +57 -0
- data/src/core/xds/grpc/xds_server_grpc.cc +55 -43
- data/src/core/xds/grpc/xds_server_grpc.h +13 -6
- data/src/core/xds/grpc/xds_server_grpc_interface.h +3 -2
- data/src/core/xds/grpc/xds_transport_grpc.cc +12 -6
- data/src/core/xds/grpc/xds_transport_grpc.h +5 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +12 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +18 -12
- data/src/ruby/lib/grpc/grpc.rb +7 -9
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -1
- data/src/ruby/spec/client_server_spec.rb +1 -1
- data/src/ruby/spec/generic/rpc_server_pool_spec.rb +1 -1
- data/src/ruby/spec/generic/rpc_server_spec.rb +3 -4
- data/src/ruby/spec/spec_helper.rb +1 -1
- metadata +64 -14
- data/src/core/ext/transport/chttp2/transport/security_frame.cc +0 -31
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +0 -597
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
//
|
|
17
17
|
//
|
|
18
18
|
|
|
19
|
-
#include "src/core/handshaker/http_connect/
|
|
19
|
+
#include "src/core/handshaker/http_connect/http_connect_client_handshaker.h"
|
|
20
20
|
|
|
21
21
|
#include <grpc/slice.h>
|
|
22
22
|
#include <grpc/slice_buffer.h>
|
|
@@ -58,17 +58,17 @@ namespace grpc_core {
|
|
|
58
58
|
|
|
59
59
|
namespace {
|
|
60
60
|
|
|
61
|
-
class
|
|
61
|
+
class HttpConnectClientHandshaker : public Handshaker {
|
|
62
62
|
public:
|
|
63
|
-
|
|
64
|
-
absl::string_view name() const override { return "
|
|
63
|
+
HttpConnectClientHandshaker();
|
|
64
|
+
absl::string_view name() const override { return "http_connect_client"; }
|
|
65
65
|
void DoHandshake(
|
|
66
66
|
HandshakerArgs* args,
|
|
67
67
|
absl::AnyInvocable<void(absl::Status)> on_handshake_done) override;
|
|
68
68
|
void Shutdown(absl::Status error) override;
|
|
69
69
|
|
|
70
70
|
private:
|
|
71
|
-
~
|
|
71
|
+
~HttpConnectClientHandshaker() override;
|
|
72
72
|
void HandshakeFailedLocked(absl::Status error)
|
|
73
73
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
|
74
74
|
void FinishLocked(absl::Status error) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
|
|
@@ -93,14 +93,14 @@ class HttpConnectHandshaker : public Handshaker {
|
|
|
93
93
|
grpc_http_response http_response_ ABSL_GUARDED_BY(mu_);
|
|
94
94
|
};
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
HttpConnectClientHandshaker::~HttpConnectClientHandshaker() {
|
|
97
97
|
grpc_http_parser_destroy(&http_parser_);
|
|
98
98
|
grpc_http_response_destroy(&http_response_);
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
// If the handshake failed or we're shutting down, clean up and invoke the
|
|
102
102
|
// callback with the error.
|
|
103
|
-
void
|
|
103
|
+
void HttpConnectClientHandshaker::HandshakeFailedLocked(absl::Status error) {
|
|
104
104
|
if (error.ok()) {
|
|
105
105
|
// If we were shut down after an endpoint operation succeeded but
|
|
106
106
|
// before the endpoint callback was invoked, we need to generate our
|
|
@@ -117,7 +117,7 @@ void HttpConnectHandshaker::HandshakeFailedLocked(absl::Status error) {
|
|
|
117
117
|
FinishLocked(std::move(error));
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
void
|
|
120
|
+
void HttpConnectClientHandshaker::FinishLocked(absl::Status error) {
|
|
121
121
|
InvokeOnHandshakeDone(args_, std::move(on_handshake_done_), std::move(error));
|
|
122
122
|
}
|
|
123
123
|
|
|
@@ -125,9 +125,9 @@ void HttpConnectHandshaker::FinishLocked(absl::Status error) {
|
|
|
125
125
|
// avoid deadlocks, schedule OnWriteDone on ExecCtx.
|
|
126
126
|
// TODO(roth): This hop will no longer be needed when we migrate to the
|
|
127
127
|
// EventEngine endpoint API.
|
|
128
|
-
void
|
|
129
|
-
|
|
130
|
-
auto* handshaker = static_cast<
|
|
128
|
+
void HttpConnectClientHandshaker::OnWriteDoneScheduler(
|
|
129
|
+
void* arg, grpc_error_handle error) {
|
|
130
|
+
auto* handshaker = static_cast<HttpConnectClientHandshaker*>(arg);
|
|
131
131
|
handshaker->args_->event_engine->Run(
|
|
132
132
|
[handshaker, error = std::move(error)]() mutable {
|
|
133
133
|
ExecCtx exec_ctx;
|
|
@@ -136,7 +136,7 @@ void HttpConnectHandshaker::OnWriteDoneScheduler(void* arg,
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
// Callback invoked when finished writing HTTP CONNECT request.
|
|
139
|
-
void
|
|
139
|
+
void HttpConnectClientHandshaker::OnWriteDone(absl::Status error) {
|
|
140
140
|
ReleasableMutexLock lock(&mu_);
|
|
141
141
|
if (!error.ok() || args_->endpoint == nullptr) {
|
|
142
142
|
// If the write failed or we're shutting down, clean up and invoke the
|
|
@@ -150,8 +150,8 @@ void HttpConnectHandshaker::OnWriteDone(absl::Status error) {
|
|
|
150
150
|
grpc_endpoint_read(
|
|
151
151
|
args_->endpoint.get(), args_->read_buffer.c_slice_buffer(),
|
|
152
152
|
GRPC_CLOSURE_INIT(&on_read_done_scheduler_,
|
|
153
|
-
&
|
|
154
|
-
grpc_schedule_on_exec_ctx),
|
|
153
|
+
&HttpConnectClientHandshaker::OnReadDoneScheduler,
|
|
154
|
+
this, grpc_schedule_on_exec_ctx),
|
|
155
155
|
/*urgent=*/true, /*min_progress_size=*/1);
|
|
156
156
|
}
|
|
157
157
|
}
|
|
@@ -160,9 +160,9 @@ void HttpConnectHandshaker::OnWriteDone(absl::Status error) {
|
|
|
160
160
|
// avoid deadlocks, schedule OnReadDone on ExecCtx.
|
|
161
161
|
// TODO(roth): This hop will no longer be needed when we migrate to the
|
|
162
162
|
// EventEngine endpoint API.
|
|
163
|
-
void
|
|
164
|
-
|
|
165
|
-
auto* handshaker = static_cast<
|
|
163
|
+
void HttpConnectClientHandshaker::OnReadDoneScheduler(void* arg,
|
|
164
|
+
grpc_error_handle error) {
|
|
165
|
+
auto* handshaker = static_cast<HttpConnectClientHandshaker*>(arg);
|
|
166
166
|
handshaker->args_->event_engine->Run(
|
|
167
167
|
[handshaker, error = std::move(error)]() mutable {
|
|
168
168
|
ExecCtx exec_ctx;
|
|
@@ -171,7 +171,7 @@ void HttpConnectHandshaker::OnReadDoneScheduler(void* arg,
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
// Callback invoked for reading HTTP CONNECT response.
|
|
174
|
-
void
|
|
174
|
+
void HttpConnectClientHandshaker::OnReadDone(absl::Status error) {
|
|
175
175
|
bool done;
|
|
176
176
|
{
|
|
177
177
|
MutexLock lock(&mu_);
|
|
@@ -180,7 +180,7 @@ void HttpConnectHandshaker::OnReadDone(absl::Status error) {
|
|
|
180
180
|
if (done) Unref();
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
bool
|
|
183
|
+
bool HttpConnectClientHandshaker::OnReadDoneLocked(absl::Status error) {
|
|
184
184
|
if (!error.ok() || args_->endpoint == nullptr) {
|
|
185
185
|
// If the read failed or we're shutting down, clean up and invoke the
|
|
186
186
|
// callback with the error.
|
|
@@ -227,8 +227,8 @@ bool HttpConnectHandshaker::OnReadDoneLocked(absl::Status error) {
|
|
|
227
227
|
grpc_endpoint_read(
|
|
228
228
|
args_->endpoint.get(), args_->read_buffer.c_slice_buffer(),
|
|
229
229
|
GRPC_CLOSURE_INIT(&on_read_done_scheduler_,
|
|
230
|
-
&
|
|
231
|
-
grpc_schedule_on_exec_ctx),
|
|
230
|
+
&HttpConnectClientHandshaker::OnReadDoneScheduler,
|
|
231
|
+
this, grpc_schedule_on_exec_ctx),
|
|
232
232
|
/*urgent=*/true, /*min_progress_size=*/1);
|
|
233
233
|
return false;
|
|
234
234
|
}
|
|
@@ -248,12 +248,12 @@ bool HttpConnectHandshaker::OnReadDoneLocked(absl::Status error) {
|
|
|
248
248
|
// Public handshaker methods
|
|
249
249
|
//
|
|
250
250
|
|
|
251
|
-
void
|
|
251
|
+
void HttpConnectClientHandshaker::Shutdown(absl::Status /*error*/) {
|
|
252
252
|
MutexLock lock(&mu_);
|
|
253
253
|
if (on_handshake_done_ != nullptr) args_->endpoint.reset();
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
void
|
|
256
|
+
void HttpConnectClientHandshaker::DoHandshake(
|
|
257
257
|
HandshakerArgs* args,
|
|
258
258
|
absl::AnyInvocable<void(absl::Status)> on_handshake_done) {
|
|
259
259
|
// Check for HTTP CONNECT channel arg.
|
|
@@ -323,12 +323,12 @@ void HttpConnectHandshaker::DoHandshake(
|
|
|
323
323
|
grpc_endpoint_write(
|
|
324
324
|
args->endpoint.get(), write_buffer_.c_slice_buffer(),
|
|
325
325
|
GRPC_CLOSURE_INIT(&on_write_done_scheduler_,
|
|
326
|
-
&
|
|
327
|
-
grpc_schedule_on_exec_ctx),
|
|
326
|
+
&HttpConnectClientHandshaker::OnWriteDoneScheduler,
|
|
327
|
+
this, grpc_schedule_on_exec_ctx),
|
|
328
328
|
std::move(write_args));
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
-
|
|
331
|
+
HttpConnectClientHandshaker::HttpConnectClientHandshaker() {
|
|
332
332
|
grpc_http_parser_init(&http_parser_, GRPC_HTTP_RESPONSE, &http_response_);
|
|
333
333
|
}
|
|
334
334
|
|
|
@@ -336,24 +336,25 @@ HttpConnectHandshaker::HttpConnectHandshaker() {
|
|
|
336
336
|
// handshaker factory
|
|
337
337
|
//
|
|
338
338
|
|
|
339
|
-
class
|
|
339
|
+
class HttpConnectClientHandshakerFactory : public HandshakerFactory {
|
|
340
340
|
public:
|
|
341
341
|
void AddHandshakers(const ChannelArgs& /*args*/,
|
|
342
342
|
grpc_pollset_set* /*interested_parties*/,
|
|
343
343
|
HandshakeManager* handshake_mgr) override {
|
|
344
|
-
handshake_mgr->Add(MakeRefCounted<
|
|
344
|
+
handshake_mgr->Add(MakeRefCounted<HttpConnectClientHandshaker>());
|
|
345
345
|
}
|
|
346
346
|
HandshakerPriority Priority() override {
|
|
347
347
|
return HandshakerPriority::kHTTPConnectHandshakers;
|
|
348
348
|
}
|
|
349
|
-
~
|
|
349
|
+
~HttpConnectClientHandshakerFactory() override = default;
|
|
350
350
|
};
|
|
351
351
|
|
|
352
352
|
} // namespace
|
|
353
353
|
|
|
354
|
-
void
|
|
354
|
+
void RegisterHttpConnectClientHandshaker(CoreConfiguration::Builder* builder) {
|
|
355
355
|
builder->handshaker_registry()->RegisterHandshakerFactory(
|
|
356
|
-
HANDSHAKER_CLIENT,
|
|
356
|
+
HANDSHAKER_CLIENT,
|
|
357
|
+
std::make_unique<HttpConnectClientHandshakerFactory>());
|
|
357
358
|
}
|
|
358
359
|
|
|
359
360
|
} // namespace grpc_core
|
data/src/core/handshaker/http_connect/{http_connect_handshaker.h → http_connect_client_handshaker.h}
RENAMED
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
//
|
|
17
17
|
//
|
|
18
18
|
|
|
19
|
-
#ifndef
|
|
20
|
-
#define
|
|
19
|
+
#ifndef GRPC_SRC_CORE_HANDSHAKER_HTTP_CONNECT_HTTP_CONNECT_CLIENT_HANDSHAKER_H
|
|
20
|
+
#define GRPC_SRC_CORE_HANDSHAKER_HTTP_CONNECT_HTTP_CONNECT_CLIENT_HANDSHAKER_H
|
|
21
21
|
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
|
23
23
|
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
namespace grpc_core {
|
|
36
36
|
|
|
37
37
|
// Register the HTTP Connect handshaker into the configuration builder.
|
|
38
|
-
void
|
|
38
|
+
void RegisterHttpConnectClientHandshaker(CoreConfiguration::Builder* builder);
|
|
39
39
|
|
|
40
40
|
} // namespace grpc_core
|
|
41
41
|
|
|
42
|
-
#endif //
|
|
42
|
+
#endif // GRPC_SRC_CORE_HANDSHAKER_HTTP_CONNECT_HTTP_CONNECT_CLIENT_HANDSHAKER_H
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
#include <string>
|
|
30
30
|
#include <utility>
|
|
31
31
|
|
|
32
|
-
#include "src/core/handshaker/http_connect/
|
|
32
|
+
#include "src/core/handshaker/http_connect/http_connect_client_handshaker.h"
|
|
33
33
|
#include "src/core/lib/address_utils/parse_address.h"
|
|
34
34
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
|
35
35
|
#include "src/core/lib/channel/channel_args.h"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
#include <optional>
|
|
21
21
|
#include <string>
|
|
22
22
|
|
|
23
|
-
#include "src/core/handshaker/http_connect/
|
|
23
|
+
#include "src/core/handshaker/http_connect/http_connect_client_handshaker.h"
|
|
24
24
|
#include "src/core/lib/address_utils/parse_address.h"
|
|
25
25
|
#include "src/core/lib/address_utils/sockaddr_utils.h"
|
|
26
26
|
#include "src/core/lib/channel/channel_args.h"
|
|
@@ -479,7 +479,7 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
|
|
|
479
479
|
|
|
480
480
|
bool Read(absl::AnyInvocable<void(absl::Status)> on_read, SliceBuffer* buffer,
|
|
481
481
|
ReadArgs in_args) override {
|
|
482
|
-
return impl_->Read(std::move(on_read), buffer,
|
|
482
|
+
return impl_->Read(std::move(on_read), buffer, in_args);
|
|
483
483
|
}
|
|
484
484
|
|
|
485
485
|
bool Write(absl::AnyInvocable<void(absl::Status)> on_writable,
|
|
@@ -614,7 +614,7 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
|
|
|
614
614
|
GRPC_CHECK(on_read_ == nullptr);
|
|
615
615
|
pending_output_buffer_ = buffer;
|
|
616
616
|
on_read_ = std::move(on_read);
|
|
617
|
-
last_read_args_ =
|
|
617
|
+
last_read_args_ = args;
|
|
618
618
|
return false;
|
|
619
619
|
}
|
|
620
620
|
|
|
@@ -695,7 +695,7 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
|
|
|
695
695
|
ReadArgs args;
|
|
696
696
|
args.set_read_hint_bytes(frame_protector_.min_progress_size());
|
|
697
697
|
lock.Release();
|
|
698
|
-
event_engine_->Run([impl = Ref(), args =
|
|
698
|
+
event_engine_->Run([impl = Ref(), args = args]() mutable {
|
|
699
699
|
grpc_core::ExecCtx exec_ctx;
|
|
700
700
|
// If the endpoint closed whilst waiting for this callback, then
|
|
701
701
|
// fail out the read and we're done.
|
|
@@ -711,7 +711,7 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
|
|
|
711
711
|
grpc_core::ExecCtx exec_ctx;
|
|
712
712
|
FinishFirstRead(std::move(impl), status);
|
|
713
713
|
},
|
|
714
|
-
impl->staging_protected_data_buffer_.get(),
|
|
714
|
+
impl->staging_protected_data_buffer_.get(), args);
|
|
715
715
|
if (read_finished_immediately) {
|
|
716
716
|
lock.Release();
|
|
717
717
|
{
|
|
@@ -810,7 +810,7 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
|
|
|
810
810
|
source_buffer = std::move(impl->protected_data_buffer_);
|
|
811
811
|
impl->frame_protector_.TraceOp("data",
|
|
812
812
|
source_buffer->c_slice_buffer());
|
|
813
|
-
args =
|
|
813
|
+
args = impl->last_read_args_;
|
|
814
814
|
if (impl->frame_protector_.IsZeroCopyProtector()) {
|
|
815
815
|
// We currently only track min progress size for zero copy
|
|
816
816
|
// protectors. Once we add this for non-zero copy protectors, we
|
|
@@ -822,18 +822,19 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
|
|
|
822
822
|
std::max<size_t>(1, impl->frame_protector_.min_progress_size() -
|
|
823
823
|
source_buffer->Length()));
|
|
824
824
|
} else if (args.read_hint_bytes() > 0) {
|
|
825
|
-
|
|
826
|
-
|
|
825
|
+
// This effectively disables read coalescing for non zerocopy
|
|
826
|
+
// protectors, but this is necessary since it is not trivial to
|
|
827
|
+
// determine the encrypted payload size in advance.
|
|
828
|
+
args.set_read_hint_bytes(1);
|
|
827
829
|
}
|
|
828
830
|
}
|
|
829
831
|
|
|
830
832
|
// Kick off the next read in another thread while we unprotect in this
|
|
831
833
|
// thread.
|
|
832
|
-
impl->event_engine_->Run(
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
});
|
|
834
|
+
impl->event_engine_->Run([impl = impl->Ref(), args = args]() mutable {
|
|
835
|
+
grpc_core::ExecCtx exec_ctx;
|
|
836
|
+
StartAsyncRead(std::move(impl), args);
|
|
837
|
+
});
|
|
837
838
|
|
|
838
839
|
{
|
|
839
840
|
grpc_core::ReleasableMutexLock lock(impl->frame_protector_.read_mu());
|
|
@@ -889,7 +890,7 @@ class PipelinedSecureEndpoint final : public EventEngine::Endpoint {
|
|
|
889
890
|
grpc_core::ExecCtx exec_ctx;
|
|
890
891
|
FinishAsyncRead(std::move(impl), status);
|
|
891
892
|
},
|
|
892
|
-
impl->staging_protected_data_buffer_.get(),
|
|
893
|
+
impl->staging_protected_data_buffer_.get(), args);
|
|
893
894
|
if (read_finished_immediately) {
|
|
894
895
|
lock.Release();
|
|
895
896
|
bool should_unprotect = false;
|