grpc 1.72.0 → 1.73.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 +23 -6
- data/include/grpc/event_engine/event_engine.h +125 -8
- data/include/grpc/event_engine/internal/write_event.h +34 -0
- data/include/grpc/impl/channel_arg_names.h +17 -9
- data/include/grpc/impl/compression_types.h +3 -2
- data/include/grpc/impl/slice_type.h +1 -1
- data/include/grpc/support/json.h +3 -21
- data/include/grpc/support/port_platform.h +8 -5
- data/src/core/call/call_filters.h +28 -19
- data/src/core/call/call_spine.h +2 -0
- data/src/core/call/metadata.h +17 -0
- data/src/core/channelz/channel_trace.cc +50 -42
- data/src/core/channelz/channel_trace.h +35 -4
- data/src/core/channelz/channelz.cc +338 -125
- data/src/core/channelz/channelz.h +276 -34
- data/src/core/channelz/channelz_registry.cc +322 -117
- data/src/core/channelz/channelz_registry.h +179 -21
- data/src/core/channelz/ztrace_collector.h +315 -0
- data/src/core/client_channel/client_channel.cc +30 -29
- data/src/core/client_channel/client_channel_filter.cc +21 -20
- data/src/core/client_channel/client_channel_filter.h +0 -2
- data/src/core/client_channel/connector.h +0 -3
- data/src/core/client_channel/global_subchannel_pool.cc +68 -7
- data/src/core/client_channel/global_subchannel_pool.h +37 -4
- data/src/core/client_channel/subchannel.cc +7 -9
- data/src/core/client_channel/subchannel.h +2 -8
- data/src/core/client_channel/subchannel_pool_interface.cc +5 -6
- data/src/core/client_channel/subchannel_pool_interface.h +11 -1
- data/src/core/config/config_vars.cc +11 -1
- data/src/core/config/config_vars.h +8 -0
- data/src/core/config/core_configuration.cc +50 -11
- data/src/core/config/core_configuration.h +89 -7
- data/src/core/credentials/call/external/aws_request_signer.cc +3 -2
- data/src/core/credentials/call/external/url_external_account_credentials.cc +2 -2
- data/src/core/credentials/call/gcp_service_account_identity/gcp_service_account_identity_credentials.cc +1 -1
- data/src/core/credentials/call/jwt/jwt_verifier.cc +4 -4
- data/src/core/credentials/call/oauth2/oauth2_credentials.cc +4 -2
- data/src/core/credentials/transport/alts/alts_security_connector.cc +9 -8
- data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -3
- data/src/core/credentials/transport/ssl/ssl_credentials.cc +2 -2
- data/src/core/credentials/transport/ssl/ssl_security_connector.cc +41 -11
- data/src/core/credentials/transport/ssl/ssl_security_connector.h +2 -1
- data/src/core/credentials/transport/tls/ssl_utils.cc +18 -0
- data/src/core/credentials/transport/tls/ssl_utils.h +5 -0
- data/src/core/credentials/transport/tls/tls_security_connector.cc +2 -1
- data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +6 -3
- data/src/core/ext/filters/http/message_compress/compression_filter.h +34 -4
- data/src/core/ext/filters/http/server/http_server_filter.cc +1 -1
- data/src/core/ext/filters/http/server/http_server_filter.h +14 -3
- data/src/core/ext/transport/chttp2/chttp2_plugin.cc +40 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +11 -112
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +3 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +33 -962
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -47
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +0 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +18 -0
- data/src/core/ext/transport/chttp2/transport/frame.cc +213 -105
- data/src/core/ext/transport/chttp2/transport/frame.h +78 -6
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +10 -0
- data/src/core/ext/transport/chttp2/transport/frame_data.h +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +5 -3
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +11 -4
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -1
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +7 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +26 -0
- data/src/core/ext/transport/chttp2/transport/http2_status.h +358 -1
- data/src/core/ext/transport/chttp2/transport/http2_ztrace_collector.h +252 -0
- data/src/core/ext/transport/chttp2/transport/internal.h +29 -5
- data/src/core/ext/transport/chttp2/transport/internal_channel_arg_names.h +24 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +36 -21
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.cc +10 -9
- data/src/core/ext/transport/chttp2/transport/ping_rate_policy.h +6 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +60 -49
- data/src/core/ext/transport/inproc/inproc_transport.cc +7 -2
- data/src/core/ext/transport/inproc/legacy_inproc_transport.cc +6 -2
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb.h +12 -0
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb.h +12 -22
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +12 -22
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb.h +28 -22
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb.h +12 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +24 -67
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb.h +29 -31
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb.h +12 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +8 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb.h +0 -23
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb.h +8 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb.h +8 -0
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +12 -0
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb.h +20 -0
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +12 -0
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +8 -22
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb.h +0 -23
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +64 -66
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb.h +12 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb.h +4 -95
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb.h +8 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +28 -0
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +12 -0
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb.h +8 -0
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +8 -36
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb.h +8 -0
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb.h +8 -0
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb.h +4 -0
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb.h +4 -0
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb.h +8 -44
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb.h +12 -40
- data/src/core/ext/upb-gen/google/api/http.upb.h +4 -0
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +193 -20
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +59 -21
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.h +4 -0
- data/src/core/ext/upb-gen/google/protobuf/struct.upb.h +4 -22
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb.h +0 -18
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb.h +113 -53
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +20 -14
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb.h +154 -0
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +40 -2
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.h +4 -0
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb.h +8 -0
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb.h +0 -18
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb.h +0 -36
- data/src/core/ext/upb-gen/validate/validate.upb.h +12 -0
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb.h +4 -0
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb.h +0 -18
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb.h +8 -0
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb.h +0 -54
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb.h +20 -22
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb.h +4 -0
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb.h +4 -0
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb.h +4 -0
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.c +123 -62
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/certs.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.c +200 -101
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/clusters.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.c +152 -77
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +524 -255
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.c +44 -23
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/init_dump.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.c +66 -34
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/listeners.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.c +54 -28
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/memory.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.c +46 -25
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/metrics.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.c +47 -25
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/mutex_stats.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.c +256 -126
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/server_info.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.c +50 -28
- data/src/core/ext/upbdefs-gen/envoy/admin/v3/tap.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.c +55 -28
- data/src/core/ext/upbdefs-gen/envoy/annotations/deprecation.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.c +34 -18
- data/src/core/ext/upbdefs-gen/envoy/annotations/resource.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.c +414 -206
- data/src/core/ext/upbdefs-gen/envoy/config/accesslog/v3/accesslog.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +831 -413
- data/src/core/ext/upbdefs-gen/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +143 -73
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +1132 -557
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.c +63 -34
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/filter.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.c +255 -127
- data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/outlier_detection.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.c +363 -178
- data/src/core/ext/upbdefs-gen/envoy/config/common/matcher/v3/matcher.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.c +227 -114
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/address.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.c +57 -31
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/backoff.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +596 -295
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.c +271 -137
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/config_source.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.c +56 -30
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/event_service_config.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.c +45 -25
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/extension.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.c +59 -31
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_method_list.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.c +438 -217
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/grpc_service.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.c +441 -221
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/health_check.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.c +55 -30
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_service.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.c +57 -31
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/http_uri.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +619 -303
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.c +70 -36
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.c +62 -33
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/resolver.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c +47 -25
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +97 -49
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.c +97 -51
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/substitution_format_string.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.c +51 -27
- data/src/core/ext/upbdefs-gen/envoy/config/core/v3/udp_socket_config.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.c +147 -76
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +230 -116
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.c +277 -138
- data/src/core/ext/upbdefs-gen/envoy/config/endpoint/v3/load_report.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.c +48 -26
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/api_listener.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.c +388 -197
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +304 -153
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +173 -90
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.c +90 -47
- data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/udp_listener_config.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.c +98 -51
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/metrics_service.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.c +196 -99
- data/src/core/ext/upbdefs-gen/envoy/config/metrics/v3/stats.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +237 -118
- data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +418 -210
- data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.c +194 -99
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +2003 -973
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.c +101 -53
- data/src/core/ext/upbdefs-gen/envoy/config/route/v3/scoped_route.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.c +352 -176
- data/src/core/ext/upbdefs-gen/envoy/config/tap/v3/common.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.c +79 -42
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/datadog.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.c +67 -37
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/dynamic_ot.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.c +63 -34
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/http_tracer.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.c +88 -47
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/lightstep.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.c +80 -43
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opentelemetry.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.c +53 -29
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/service.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.c +86 -46
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/skywalking.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +55 -32
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.c +91 -49
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/xray.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.c +105 -55
- data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/zipkin.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.c +775 -379
- data/src/core/ext/upbdefs-gen/envoy/data/accesslog/v3/accesslog.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +52 -28
- data/src/core/ext/upbdefs-gen/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +134 -68
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +189 -96
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.c +116 -61
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +112 -58
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.c +160 -82
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/router/v3/router.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +75 -39
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +1161 -570
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +52 -28
- data/src/core/ext/upbdefs-gen/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +55 -29
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -26
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +390 -194
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +126 -65
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +498 -246
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +74 -38
- data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.c +221 -110
- data/src/core/ext/upbdefs-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.c +68 -36
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/ads.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +378 -187
- data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.c +100 -52
- data/src/core/ext/upbdefs-gen/envoy/service/load_stats/v3/lrs.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +257 -129
- data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.c +44 -24
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/cookie.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.c +68 -35
- data/src/core/ext/upbdefs-gen/envoy/type/http/v3/path_transformation.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.c +38 -20
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/address.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.c +59 -32
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/filter_state.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.c +65 -34
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.c +72 -38
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/metadata.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.c +57 -31
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/node.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.c +52 -29
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/number.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.c +51 -28
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/path.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.c +89 -47
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/regex.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.c +37 -20
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/status_code_input.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.c +89 -47
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/string.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.c +67 -35
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/struct.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.c +112 -58
- data/src/core/ext/upbdefs-gen/envoy/type/matcher/v3/value.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.c +110 -56
- data/src/core/ext/upbdefs-gen/envoy/type/metadata/v3/metadata.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.c +123 -62
- data/src/core/ext/upbdefs-gen/envoy/type/tracing/v3/custom_tag.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.c +59 -31
- data/src/core/ext/upbdefs-gen/envoy/type/v3/hash_policy.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.c +30 -16
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.c +143 -72
- data/src/core/ext/upbdefs-gen/envoy/type/v3/http_status.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.c +61 -32
- data/src/core/ext/upbdefs-gen/envoy/type/v3/percent.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.c +51 -27
- data/src/core/ext/upbdefs-gen/envoy/type/v3/range.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.c +85 -45
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_strategy.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.c +35 -19
- data/src/core/ext/upbdefs-gen/envoy/type/v3/ratelimit_unit.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.c +44 -23
- data/src/core/ext/upbdefs-gen/envoy/type/v3/semantic_version.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.c +61 -33
- data/src/core/ext/upbdefs-gen/envoy/type/v3/token_bucket.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.c +35 -19
- data/src/core/ext/upbdefs-gen/google/api/annotations.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.c +272 -133
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/checked.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.c +315 -154
- data/src/core/ext/upbdefs-gen/google/api/expr/v1alpha1/syntax.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.c +64 -33
- data/src/core/ext/upbdefs-gen/google/api/http.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.c +35 -19
- data/src/core/ext/upbdefs-gen/google/api/httpbody.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.c +26 -15
- data/src/core/ext/upbdefs-gen/google/protobuf/any.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +1106 -508
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.h +10 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.c +28 -16
- data/src/core/ext/upbdefs-gen/google/protobuf/duration.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.c +23 -13
- data/src/core/ext/upbdefs-gen/google/protobuf/empty.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.c +69 -35
- data/src/core/ext/upbdefs-gen/google/protobuf/struct.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.c +29 -16
- data/src/core/ext/upbdefs-gen/google/protobuf/timestamp.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.c +51 -26
- data/src/core/ext/upbdefs-gen/google/protobuf/wrappers.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.c +32 -17
- data/src/core/ext/upbdefs-gen/google/rpc/status.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +161 -79
- data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.c +84 -42
- data/src/core/ext/upbdefs-gen/udpa/annotations/migrate.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.c +48 -26
- data/src/core/ext/upbdefs-gen/udpa/annotations/security.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.c +26 -14
- data/src/core/ext/upbdefs-gen/udpa/annotations/sensitive.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.c +50 -26
- data/src/core/ext/upbdefs-gen/udpa/annotations/status.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.c +36 -19
- data/src/core/ext/upbdefs-gen/udpa/annotations/versioning.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.c +538 -261
- data/src/core/ext/upbdefs-gen/validate/validate.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.c +86 -43
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/migrate.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.c +49 -26
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/security.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.c +27 -15
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/sensitive.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.c +87 -44
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/status.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.c +37 -20
- data/src/core/ext/upbdefs-gen/xds/annotations/v3/versioning.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.c +30 -17
- data/src/core/ext/upbdefs-gen/xds/core/v3/authority.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.c +41 -23
- data/src/core/ext/upbdefs-gen/xds/core/v3/cidr.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.c +62 -33
- data/src/core/ext/upbdefs-gen/xds/core/v3/collection_entry.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.c +36 -19
- data/src/core/ext/upbdefs-gen/xds/core/v3/context_params.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.c +36 -20
- data/src/core/ext/upbdefs-gen/xds/core/v3/extension.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.c +42 -23
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.c +76 -39
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_locator.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.c +45 -24
- data/src/core/ext/upbdefs-gen/xds/core/v3/resource_name.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.c +41 -23
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/cel.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.c +53 -29
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/domain.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.c +29 -16
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/http_inputs.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.c +58 -32
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/ip.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.c +207 -103
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/matcher.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.c +95 -49
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/range.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.c +38 -20
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/regex.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.c +60 -31
- data/src/core/ext/upbdefs-gen/xds/type/matcher/v3/string.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.c +67 -36
- data/src/core/ext/upbdefs-gen/xds/type/v3/cel.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.c +31 -17
- data/src/core/ext/upbdefs-gen/xds/type/v3/range.upbdefs.h +5 -1
- data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.c +31 -17
- data/src/core/ext/upbdefs-gen/xds/type/v3/typed_struct.upbdefs.h +5 -1
- data/src/core/handshaker/http_connect/http_proxy_mapper.cc +7 -22
- data/src/core/handshaker/security/legacy_secure_endpoint.cc +596 -0
- data/src/core/handshaker/security/secure_endpoint.cc +769 -312
- data/src/core/handshaker/security/secure_endpoint.h +17 -0
- data/src/core/handshaker/security/security_handshaker.cc +3 -3
- data/src/core/lib/address_utils/sockaddr_utils.cc +5 -5
- data/src/core/lib/channel/channel_args.h +4 -0
- data/src/core/lib/channel/channel_stack.cc +29 -0
- data/src/core/lib/channel/channel_stack.h +9 -0
- data/src/core/lib/channel/promise_based_filter.h +707 -299
- data/src/core/lib/debug/trace_flags.cc +2 -2
- data/src/core/lib/debug/trace_flags.h +1 -1
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +6 -2
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +4 -4
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +14 -6
- data/src/core/lib/event_engine/default_event_engine_factory.cc +1 -1
- data/src/core/lib/event_engine/extensions/blocking_dns.h +46 -0
- data/src/core/lib/event_engine/extensions/channelz.h +62 -0
- data/src/core/lib/event_engine/extensions/tcp_trace.h +2 -2
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.cc +4 -7
- data/src/core/lib/event_engine/posix_engine/native_posix_dns_resolver.h +3 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +6 -7
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +28 -22
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +22 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +15 -15
- data/src/core/lib/event_engine/query_extensions.h +10 -21
- data/src/core/lib/event_engine/tcp_socket_utils.cc +10 -9
- data/src/core/lib/event_engine/utils.cc +34 -0
- data/src/core/lib/event_engine/utils.h +3 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +2 -2
- data/src/core/lib/event_engine/windows/windows_endpoint.h +9 -2
- data/src/core/lib/experiments/experiments.cc +198 -51
- data/src/core/lib/experiments/experiments.h +78 -35
- data/src/core/lib/iomgr/combiner.cc +3 -2
- data/src/core/lib/iomgr/ev_poll_posix.cc +4 -0
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +11 -8
- data/src/core/lib/iomgr/fork_posix.cc +0 -7
- data/src/core/lib/iomgr/iomgr.cc +0 -3
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +3 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +37 -47
- data/src/core/lib/iomgr/resolve_address_posix.h +15 -0
- data/src/core/lib/iomgr/resolve_address_windows.cc +22 -45
- data/src/core/lib/iomgr/resolve_address_windows.h +15 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +14 -6
- data/src/core/lib/iomgr/tcp_posix.cc +14 -12
- data/src/core/lib/iomgr/tcp_server_windows.cc +14 -2
- data/src/core/lib/promise/detail/promise_like.h +24 -0
- data/src/core/lib/promise/detail/seq_state.h +741 -0
- data/src/core/lib/promise/map.h +22 -5
- data/src/core/lib/promise/promise.h +2 -0
- data/src/core/lib/promise/seq.h +2 -0
- data/src/core/lib/promise/sleep.cc +6 -3
- data/src/core/lib/promise/try_seq.h +2 -0
- data/src/core/lib/resource_quota/memory_quota.cc +9 -0
- data/src/core/lib/resource_quota/memory_quota.h +1 -3
- data/src/core/lib/slice/slice_buffer.h +6 -0
- data/src/core/lib/surface/call.cc +4 -0
- data/src/core/lib/surface/channel_create.cc +61 -1
- data/src/core/lib/surface/init.cc +2 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/status_conversion.cc +7 -34
- data/src/core/lib/transport/transport.cc +2 -2
- data/src/core/lib/transport/transport.h +3 -0
- data/src/core/load_balancing/backend_metric_parser.cc +12 -18
- data/src/core/load_balancing/grpclb/grpclb.cc +2 -2
- data/src/core/load_balancing/health_check_client.cc +2 -4
- data/src/core/load_balancing/oob_backend_metric.cc +2 -4
- data/src/core/load_balancing/outlier_detection/outlier_detection.cc +4 -3
- data/src/core/load_balancing/pick_first/pick_first.cc +3 -3
- data/src/core/load_balancing/rls/rls.cc +6 -5
- data/src/core/load_balancing/round_robin/round_robin.cc +2 -3
- data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +4 -4
- data/src/core/load_balancing/weighted_target/weighted_target.cc +3 -9
- data/src/core/load_balancing/xds/xds_override_host.cc +55 -34
- data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
- data/src/core/resolver/sockaddr/sockaddr_resolver.cc +2 -1
- data/src/core/resolver/xds/xds_resolver.cc +2 -1
- data/src/core/server/add_port.cc +87 -0
- data/src/core/server/server.cc +48 -53
- data/src/core/server/server.h +3 -5
- data/src/core/telemetry/call_tracer.cc +2 -2
- data/src/core/telemetry/call_tracer.h +1 -1
- data/src/core/{ext/transport/chttp2/transport → telemetry}/context_list_entry.h +3 -3
- data/src/core/telemetry/default_tcp_tracer.cc +26 -0
- data/src/core/telemetry/default_tcp_tracer.h +44 -0
- data/src/core/telemetry/stats.h +0 -5
- data/src/core/telemetry/stats_data.cc +376 -334
- data/src/core/telemetry/stats_data.h +260 -166
- data/src/core/telemetry/tcp_tracer.cc +38 -0
- data/src/core/telemetry/tcp_tracer.h +14 -16
- data/src/core/transport/auth_context.cc +0 -1
- data/src/core/transport/auth_context.h +0 -1
- data/src/core/transport/endpoint_transport.h +90 -0
- data/src/core/transport/endpoint_transport_client_channel_factory.cc +61 -0
- data/src/core/transport/endpoint_transport_client_channel_factory.h +57 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +33 -1
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +3 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +76 -22
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +8 -2
- data/src/core/tsi/ssl_transport_security.cc +189 -71
- data/src/core/tsi/ssl_transport_security.h +6 -1
- data/src/core/tsi/transport_security.h +3 -0
- data/src/core/tsi/transport_security_grpc.h +7 -3
- data/src/core/tsi/transport_security_interface.h +30 -25
- data/src/core/util/backoff.cc +7 -14
- data/src/core/util/backoff.h +0 -1
- data/src/core/util/dual_ref_counted.h +48 -0
- data/src/core/util/function_signature.h +66 -0
- data/src/core/util/gcp_metadata_query.cc +3 -2
- data/src/core/util/http_client/httpcli_security_connector.cc +2 -1
- data/src/core/util/json/json_object_loader.h +3 -3
- data/src/core/util/latent_see.cc +28 -2
- data/src/core/util/latent_see.h +11 -23
- data/src/core/util/linux/env.cc +3 -1
- data/src/core/util/ref_counted_ptr.h +26 -0
- data/src/core/util/shared_bit_gen.cc +21 -0
- data/src/core/util/shared_bit_gen.h +44 -0
- data/src/core/util/single_set_ptr.h +35 -4
- data/src/core/util/uri.cc +75 -17
- data/src/core/util/uri.h +13 -8
- data/src/core/xds/grpc/xds_common_types_parser.cc +1 -9
- data/src/core/xds/grpc/xds_http_filter_registry.cc +1 -3
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +10 -17
- data/src/core/xds/grpc/xds_metadata_parser.cc +40 -64
- data/src/core/xds/grpc/xds_metadata_parser.h +0 -2
- data/src/core/xds/grpc/xds_route_config_parser.cc +55 -77
- data/src/core/xds/xds_client/xds_client.cc +1 -1
- data/src/ruby/ext/grpc/extconf.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +2 -6
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/algorithm.h +2 -2
- data/third_party/abseil-cpp/absl/algorithm/container.h +79 -48
- data/third_party/abseil-cpp/absl/base/attributes.h +66 -16
- data/third_party/abseil-cpp/absl/base/call_once.h +8 -5
- data/third_party/abseil-cpp/absl/base/config.h +4 -4
- data/third_party/abseil-cpp/absl/base/internal/nullability_impl.h +17 -56
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +14 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +5 -1
- data/third_party/abseil-cpp/absl/base/internal/tracing.cc +39 -0
- data/third_party/abseil-cpp/absl/base/internal/tracing.h +81 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +0 -10
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -0
- data/third_party/abseil-cpp/absl/base/macros.h +35 -4
- data/third_party/abseil-cpp/absl/base/nullability.h +72 -16
- data/third_party/abseil-cpp/absl/base/optimization.h +8 -12
- data/third_party/abseil-cpp/absl/base/options.h +5 -2
- data/third_party/abseil-cpp/absl/base/policy_checks.h +2 -0
- data/third_party/abseil-cpp/absl/container/btree_map.h +889 -0
- data/third_party/abseil-cpp/absl/container/btree_set.h +824 -0
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -1
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +17 -3
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +17 -3
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/btree.h +3046 -0
- data/third_party/abseil-cpp/absl/container/internal/btree_container.h +763 -0
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +9 -0
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +1 -0
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +4 -2
- data/third_party/abseil-cpp/absl/container/internal/layout.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +142 -114
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +397 -231
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +56 -0
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +21 -7
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +4 -2
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +17 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +7 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +9 -6
- data/third_party/abseil-cpp/absl/debugging/leak_check.cc +73 -0
- data/third_party/abseil-cpp/absl/debugging/leak_check.h +150 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +48 -9
- data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +1 -0
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +7 -0
- data/third_party/abseil-cpp/absl/flags/flag.h +14 -12
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +12 -4
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +16 -5
- data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +4 -0
- data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +3 -0
- data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +13 -12
- data/third_party/abseil-cpp/absl/flags/usage_config.cc +9 -4
- data/third_party/abseil-cpp/absl/hash/hash.h +26 -2
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +17 -17
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +196 -91
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +2 -4
- data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +2 -0
- data/third_party/abseil-cpp/absl/log/internal/check_op.cc +27 -22
- data/third_party/abseil-cpp/absl/log/internal/check_op.h +102 -80
- data/third_party/abseil-cpp/absl/log/internal/log_message.cc +90 -38
- data/third_party/abseil-cpp/absl/log/internal/log_message.h +80 -48
- data/third_party/abseil-cpp/absl/log/internal/proto.cc +0 -3
- data/third_party/abseil-cpp/absl/log/internal/proto.h +25 -15
- data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +115 -0
- data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +107 -0
- data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +8 -1
- data/third_party/abseil-cpp/absl/log/log_sink_registry.h +5 -2
- data/third_party/abseil-cpp/absl/log/vlog_is_on.h +2 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -6
- data/third_party/abseil-cpp/absl/numeric/int128.h +15 -3
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +6 -4
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +6 -3
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +3 -1
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +3 -1
- data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +2 -1
- data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +10 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +4 -2
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +3 -1
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +5 -2
- data/third_party/abseil-cpp/absl/random/internal/platform.h +12 -12
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +56 -5
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +2 -2
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +0 -1
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +1 -4
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +4 -3
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +2 -3
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +1 -2
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +2 -1
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +2 -0
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +5 -4
- data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +8 -4
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +1 -1
- data/third_party/abseil-cpp/absl/status/status.h +1 -1
- data/third_party/abseil-cpp/absl/strings/ascii.cc +41 -26
- data/third_party/abseil-cpp/absl/strings/ascii.h +48 -8
- data/third_party/abseil-cpp/absl/strings/charconv.cc +4 -7
- data/third_party/abseil-cpp/absl/strings/charset.h +3 -4
- data/third_party/abseil-cpp/absl/strings/cord.h +5 -19
- data/third_party/abseil-cpp/absl/strings/escaping.cc +56 -48
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +48 -15
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -0
- data/third_party/abseil-cpp/absl/strings/match.h +21 -11
- data/third_party/abseil-cpp/absl/strings/numbers.cc +2 -1
- data/third_party/abseil-cpp/absl/strings/str_cat.h +11 -0
- data/third_party/abseil-cpp/absl/strings/str_split.h +18 -1
- data/third_party/abseil-cpp/absl/strings/string_view.h +20 -19
- data/third_party/abseil-cpp/absl/strings/strip.h +11 -8
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +16 -10
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +6 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +5 -1
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +38 -12
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +10 -2
- data/third_party/abseil-cpp/absl/synchronization/notification.h +11 -1
- data/third_party/abseil-cpp/absl/time/duration.cc +6 -51
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +3 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +2 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +2 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +3 -3
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +2 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -4
- data/third_party/abseil-cpp/absl/time/time.h +84 -23
- data/third_party/abseil-cpp/absl/types/internal/span.h +3 -2
- data/third_party/abseil-cpp/absl/types/optional.h +4 -2
- data/third_party/abseil-cpp/absl/types/span.h +85 -43
- data/third_party/boringssl-with-bazel/src/crypto/aes/aes.cc +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.cc +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.cc +15 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +19 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.cc +79 -48
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.cc +11 -19
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.cc +3 -7
- data/third_party/boringssl-with-bazel/src/crypto/bcm_support.h +0 -35
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/bio/internal.h +3 -5
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.cc +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/bn/convert.cc +31 -47
- data/third_party/boringssl-with-bazel/src/crypto/bn/div.cc +100 -0
- data/third_party/boringssl-with-bazel/src/crypto/bn/exponentiation.cc +166 -0
- data/third_party/boringssl-with-bazel/src/crypto/bn/sqrt.cc +93 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.cc +14 -8
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.cc +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/cipher/derive_key.cc +13 -15
- data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aeseax.cc +289 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher/e_aesgcmsiv.cc +179 -102
- data/third_party/boringssl-with-bazel/src/crypto/cipher/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/cms/cms.cc +172 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.cc +28 -5
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h +11 -9
- data/third_party/boringssl-with-bazel/src/crypto/cpu_intel.cc +0 -6
- data/third_party/boringssl-with-bazel/src/crypto/crypto.cc +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/des/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/dh/dh_asn1.cc +13 -14
- data/third_party/boringssl-with-bazel/src/crypto/dh/params.cc +27 -61
- data/third_party/boringssl-with-bazel/src/crypto/digest/digest_extra.cc +16 -8
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.cc +112 -122
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.cc +23 -35
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/ec/ec_asn1.cc +47 -63
- data/third_party/boringssl-with-bazel/src/crypto/ec/hash_to_curve.cc +60 -68
- data/third_party/boringssl-with-bazel/src/crypto/ec/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/ecdsa/ecdsa_asn1.cc +11 -17
- data/third_party/boringssl-with-bazel/src/crypto/err/err.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.cc +10 -11
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.cc +10 -11
- data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/evp/sign.cc +23 -42
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.cc.inc +29 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/gcm.cc.inc +10 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +16 -45
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.cc.inc +5 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.cc.inc +15 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.cc +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +101 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.cc.inc +96 -187
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.cc.inc +24 -512
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.cc.inc +58 -80
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.cc.inc +29 -45
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +27 -25
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/jacobi.cc.inc +7 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.cc.inc +27 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.cc.inc +34 -34
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.cc.inc +102 -154
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.cc.inc +3 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.cc.inc +1 -78
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.cc.inc +10 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +15 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.cc.inc +40 -53
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.cc.inc +57 -76
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.cc.inc +4 -10
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.cc.inc +37 -52
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.cc.inc +13 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.cc.inc +28 -39
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.cc.inc +6 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/keccak/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mldsa/mldsa.cc.inc +335 -28
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/mlkem/mlkem.cc.inc +265 -33
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.cc.inc +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.cc.inc +19 -26
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.cc.inc +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.cc.inc +121 -138
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.cc.inc +96 -83
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +8 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +235 -60
- data/third_party/boringssl-with-bazel/src/crypto/fuzzer_mode.cc +30 -0
- data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +39 -30
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/md5/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/mem.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.cc +2 -8
- data/third_party/boringssl-with-bazel/src/crypto/pem/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.cc +8 -13
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +22 -8
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.cc +19 -17
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.cc +134 -136
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +14 -8
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/p5_pbev2.cc +25 -21
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.cc +36 -52
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.cc +97 -79
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/rand/deterministic.cc +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand/fork_detect.cc +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand/getentropy.cc +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand/{sysrand_internal.h → internal.h} +22 -4
- data/third_party/boringssl-with-bazel/src/crypto/rand/ios.cc +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand/trusty.cc +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand/urandom.cc +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand/windows.cc +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/rsa/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/rsa/rsa_crypt.cc +14 -22
- data/third_party/boringssl-with-bazel/src/crypto/spake2plus/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.cc +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.cc +3 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.cc +8 -12
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +15 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_conf.cc +16 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509/v3_info.cc +18 -21
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.cc +10 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.cc +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.cc +10 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.cc +64 -85
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.cc +16 -32
- data/third_party/boringssl-with-bazel/src/gen/crypto/err_data.cc +576 -567
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +16 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +6 -54
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +8 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bcm_public.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/blowfish.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/buf.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +7 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cast.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cms.h +146 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +23 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/des.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +19 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdh.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +2 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +4 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/md4.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/md5.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +10 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +19 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/posix_time.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rc4.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ripemd.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/slhdsa.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +291 -40
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/target.h +0 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +7 -4
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +32 -26
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +49 -49
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +253 -50
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +12 -12
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +7 -5
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +24 -32
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +93 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +6 -12
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +18 -4
- data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +83 -7
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +173 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +5 -18
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +28 -15
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +31 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +13 -1
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +7 -11
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +13 -11
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +2 -5
- data/third_party/upb/upb/hash/common.c +310 -189
- data/third_party/upb/upb/hash/common.h +44 -43
- data/third_party/upb/upb/hash/int_table.h +29 -5
- data/third_party/upb/upb/hash/str_table.h +6 -0
- data/third_party/upb/upb/mem/arena.c +180 -57
- data/third_party/upb/upb/mem/arena.h +10 -0
- data/third_party/upb/upb/mem/internal/arena.h +62 -24
- data/third_party/upb/upb/message/accessors.c +1 -5
- data/third_party/upb/upb/message/array.c +7 -6
- data/third_party/upb/upb/message/array.h +4 -4
- data/third_party/upb/upb/message/internal/accessors.h +3 -3
- data/third_party/upb/upb/message/internal/extension.c +0 -12
- data/third_party/upb/upb/message/internal/extension.h +0 -4
- data/third_party/upb/upb/message/internal/iterator.h +3 -3
- data/third_party/upb/upb/message/internal/map.h +75 -20
- data/third_party/upb/upb/message/internal/map_sorter.h +10 -2
- data/third_party/upb/upb/message/internal/message.h +53 -5
- data/third_party/upb/upb/message/map.c +68 -20
- data/third_party/upb/upb/message/map.h +8 -1
- data/third_party/upb/upb/message/map_gencode_util.h +3 -45
- data/third_party/upb/upb/message/map_sorter.c +32 -8
- data/third_party/upb/upb/message/merge.h +3 -3
- data/third_party/upb/upb/message/message.c +120 -14
- data/third_party/upb/upb/message/message.h +17 -8
- data/third_party/upb/upb/mini_descriptor/build_enum.c +15 -5
- data/third_party/upb/upb/mini_descriptor/decode.c +18 -2
- data/third_party/upb/upb/mini_descriptor/link.c +4 -0
- data/third_party/upb/upb/mini_table/extension.h +8 -1
- data/third_party/upb/upb/mini_table/extension_registry.c +1 -1
- data/third_party/upb/upb/mini_table/internal/enum.h +1 -1
- data/third_party/upb/upb/mini_table/internal/extension.h +24 -1
- data/third_party/upb/upb/mini_table/internal/field.h +4 -4
- data/third_party/upb/upb/mini_table/internal/message.h +1 -1
- data/third_party/upb/upb/port/def.inc +32 -16
- data/third_party/upb/upb/port/undef.inc +1 -0
- data/third_party/upb/upb/reflection/def_pool.h +2 -2
- data/third_party/upb/upb/reflection/descriptor_bootstrap.h +3 -3
- data/third_party/upb/upb/reflection/enum_def.c +4 -4
- data/third_party/upb/upb/reflection/enum_reserved_range.c +1 -1
- data/third_party/upb/upb/reflection/enum_value_def.c +9 -8
- data/third_party/upb/upb/reflection/extension_range.c +1 -2
- data/third_party/upb/upb/reflection/field_def.c +3 -5
- data/third_party/upb/upb/reflection/field_def.h +1 -1
- data/third_party/upb/upb/reflection/file_def.c +4 -5
- data/third_party/upb/upb/reflection/internal/def_builder.h +35 -10
- data/third_party/upb/upb/reflection/internal/enum_value_def.h +1 -1
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message_def.c +4 -7
- data/third_party/upb/upb/reflection/message_reserved_range.c +1 -1
- data/third_party/upb/upb/reflection/method_def.c +1 -1
- data/third_party/upb/upb/reflection/oneof_def.c +3 -3
- data/third_party/upb/upb/reflection/service_def.c +2 -5
- data/third_party/upb/upb/text/encode.c +16 -0
- data/third_party/upb/upb/text/internal/encode.h +2 -1
- data/third_party/upb/upb/wire/decode.c +104 -72
- data/third_party/upb/upb/wire/encode.c +37 -13
- data/third_party/upb/upb/wire/internal/decode_fast.c +2 -2
- data/third_party/upb/upb/wire/internal/decode_fast.h +4 -0
- metadata +43 -7
- data/src/core/lib/iomgr/executor.cc +0 -441
- data/src/core/lib/iomgr/executor.h +0 -119
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/polyval.cc.inc +0 -89
@@ -42,6 +42,8 @@
|
|
42
42
|
#include "absl/strings/string_view.h"
|
43
43
|
#include "src/core/call/call_filters.h"
|
44
44
|
#include "src/core/call/call_finalization.h"
|
45
|
+
#include "src/core/call/message.h"
|
46
|
+
#include "src/core/call/metadata.h"
|
45
47
|
#include "src/core/call/metadata_batch.h"
|
46
48
|
#include "src/core/filter/blackboard.h"
|
47
49
|
#include "src/core/filter/filter_args.h"
|
@@ -59,6 +61,7 @@
|
|
59
61
|
#include "src/core/lib/promise/arena_promise.h"
|
60
62
|
#include "src/core/lib/promise/cancel_callback.h"
|
61
63
|
#include "src/core/lib/promise/context.h"
|
64
|
+
#include "src/core/lib/promise/detail/promise_like.h"
|
62
65
|
#include "src/core/lib/promise/pipe.h"
|
63
66
|
#include "src/core/lib/promise/poll.h"
|
64
67
|
#include "src/core/lib/promise/promise.h"
|
@@ -108,55 +111,93 @@ namespace promise_filter_detail {
|
|
108
111
|
// the promise. If so, we need to allocate a latch for the generated promise for
|
109
112
|
// the original promise stack polyfill code that's generated.
|
110
113
|
|
111
|
-
|
114
|
+
template <typename T>
|
115
|
+
using EnableIfPromise = std::enable_if_t<std::is_invocable_v<T>, void>;
|
112
116
|
|
113
|
-
|
114
|
-
|
115
|
-
|
117
|
+
template <typename R, typename Ignored = void>
|
118
|
+
struct HasAsyncErrorInterceptor;
|
119
|
+
|
120
|
+
template <>
|
121
|
+
struct HasAsyncErrorInterceptor<void> {
|
122
|
+
static constexpr bool value = false;
|
123
|
+
};
|
124
|
+
|
125
|
+
template <>
|
126
|
+
struct HasAsyncErrorInterceptor<const NoInterceptor*> {
|
127
|
+
static constexpr bool value = false;
|
128
|
+
};
|
116
129
|
|
117
130
|
template <typename T, typename A0, typename... As>
|
118
|
-
|
119
|
-
|
120
|
-
}
|
131
|
+
struct HasAsyncErrorInterceptor<A0 (T::*)(A0, As...)> {
|
132
|
+
static constexpr bool value = false;
|
133
|
+
};
|
121
134
|
|
122
135
|
template <typename T, typename... A>
|
123
|
-
|
124
|
-
|
125
|
-
}
|
136
|
+
struct HasAsyncErrorInterceptor<absl::Status (T::*)(A...)> {
|
137
|
+
static constexpr bool value = true;
|
138
|
+
};
|
126
139
|
|
127
140
|
template <typename R, typename T, typename... A>
|
128
|
-
|
129
|
-
|
130
|
-
}
|
141
|
+
struct HasAsyncErrorInterceptor<absl::StatusOr<R> (T::*)(A...)> {
|
142
|
+
static constexpr bool value = true;
|
143
|
+
};
|
131
144
|
|
132
145
|
template <typename T, typename... A>
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
}
|
146
|
+
struct HasAsyncErrorInterceptor<ServerMetadataHandle (T::*)(A...)> {
|
147
|
+
static constexpr bool value = true;
|
148
|
+
};
|
137
149
|
|
138
150
|
template <typename T, typename... A>
|
139
|
-
|
140
|
-
|
141
|
-
}
|
151
|
+
struct HasAsyncErrorInterceptor<void (T::*)(A...)> {
|
152
|
+
static constexpr bool value = false;
|
153
|
+
};
|
154
|
+
|
155
|
+
template <typename T, typename Promise, typename... A>
|
156
|
+
struct HasAsyncErrorInterceptor<Promise (T::*)(A...),
|
157
|
+
EnableIfPromise<Promise>> {
|
158
|
+
// TODO(vigneshbabu): - For fused filters, this should be the OR of
|
159
|
+
// HasAsyncErrorInterceptor of all constituent filters.
|
160
|
+
static constexpr bool value = true;
|
161
|
+
};
|
142
162
|
|
143
163
|
// For the list case we do two interceptors to avoid amiguities with the single
|
144
164
|
// argument forms above.
|
145
|
-
template <typename
|
146
|
-
inline constexpr bool
|
147
|
-
|
148
|
-
return HasAsyncErrorInterceptor(i1) || HasAsyncErrorInterceptor(i2) ||
|
149
|
-
HasAsyncErrorInterceptor(interceptors...);
|
165
|
+
template <typename... Interceptors>
|
166
|
+
inline constexpr bool HasAnyAsyncErrorInterceptor(Interceptors...) {
|
167
|
+
return (HasAsyncErrorInterceptor<Interceptors>::value || ...);
|
150
168
|
}
|
151
169
|
|
170
|
+
// value is true if Derived has a member called IsFused.
|
171
|
+
template <typename Derived>
|
172
|
+
struct IsFusedFilter {
|
173
|
+
template <typename V>
|
174
|
+
static std::true_type test(decltype(&V::IsFused)); // SFINAE context
|
175
|
+
template <typename V>
|
176
|
+
static std::false_type test(...);
|
177
|
+
|
178
|
+
using type = decltype(test<Derived>(nullptr));
|
179
|
+
static constexpr bool value = std::is_same_v<type, std::true_type>;
|
180
|
+
};
|
181
|
+
|
182
|
+
template <typename Derived, typename Ignored = void>
|
183
|
+
struct CallHasAsyncErrorInterceptor;
|
184
|
+
|
152
185
|
// Composite for a given channel type to determine if any of its interceptors
|
153
186
|
// fall into this category: later code should use this.
|
154
187
|
template <typename Derived>
|
155
|
-
|
156
|
-
|
188
|
+
struct CallHasAsyncErrorInterceptor<
|
189
|
+
Derived, std::enable_if_t<!IsFusedFilter<Derived>::value>> {
|
190
|
+
static constexpr bool value =
|
191
|
+
HasAnyAsyncErrorInterceptor(&Derived::Call::OnClientToServerMessage,
|
157
192
|
&Derived::Call::OnServerInitialMetadata,
|
158
193
|
&Derived::Call::OnServerToClientMessage);
|
159
|
-
}
|
194
|
+
};
|
195
|
+
|
196
|
+
template <typename Derived>
|
197
|
+
struct CallHasAsyncErrorInterceptor<
|
198
|
+
Derived, std::enable_if_t<IsFusedFilter<Derived>::value>> {
|
199
|
+
static constexpr bool value = Derived::FusedFilterHasAsyncErrorInterceptor();
|
200
|
+
};
|
160
201
|
|
161
202
|
// Given a boolean X export a type:
|
162
203
|
// either T if X is true
|
@@ -196,7 +237,7 @@ struct RaceAsyncCompletion<false> {
|
|
196
237
|
template <>
|
197
238
|
struct RaceAsyncCompletion<true> {
|
198
239
|
template <typename Promise>
|
199
|
-
static
|
240
|
+
static auto Run(Promise x, Latch<ServerMetadataHandle>* latch) {
|
200
241
|
return Race(latch->Wait(), std::move(x));
|
201
242
|
}
|
202
243
|
};
|
@@ -228,7 +269,7 @@ struct FilterCallData {
|
|
228
269
|
GPR_NO_UNIQUE_ADDRESS CallWrapper<Derived> call;
|
229
270
|
GPR_NO_UNIQUE_ADDRESS
|
230
271
|
typename TypeIfNeeded<Latch<ServerMetadataHandle>,
|
231
|
-
CallHasAsyncErrorInterceptor<Derived
|
272
|
+
CallHasAsyncErrorInterceptor<Derived>::value>::Type
|
232
273
|
error_latch;
|
233
274
|
GPR_NO_UNIQUE_ADDRESS
|
234
275
|
typename TypeIfNeeded<
|
@@ -296,6 +337,61 @@ auto MapResult(void (Derived::Call::*fn)(ServerMetadata&, Derived*), Promise x,
|
|
296
337
|
});
|
297
338
|
}
|
298
339
|
|
340
|
+
// For fused filters whose OnServerTrailingMetadata takes pointer to the
|
341
|
+
// channel.
|
342
|
+
template <typename P, typename Call, typename Derived,
|
343
|
+
typename = std::enable_if_t<IsFusedFilter<Derived>::value>>
|
344
|
+
auto MapResult(void (Call::*fn)(ServerMetadata&, Derived*), P x,
|
345
|
+
FilterCallData<Derived>* call_data) {
|
346
|
+
DCHECK(fn == &Derived::Call::OnServerTrailingMetadata);
|
347
|
+
return OnCancel(
|
348
|
+
Map(std::move(x),
|
349
|
+
[call_data](ServerMetadataHandle md) {
|
350
|
+
call_data->call.OnServerTrailingMetadata(*md, call_data->channel);
|
351
|
+
return md;
|
352
|
+
}),
|
353
|
+
[call_data]() {
|
354
|
+
grpc_metadata_batch b;
|
355
|
+
b.Set(GrpcStatusMetadata(), GRPC_STATUS_CANCELLED);
|
356
|
+
b.Set(GrpcCallWasCancelled(), true);
|
357
|
+
call_data->call.OnServerTrailingMetadata(b, call_data->channel);
|
358
|
+
});
|
359
|
+
}
|
360
|
+
|
361
|
+
// For fused filters whose OnServerTrailingMetadata does not take pointer to the
|
362
|
+
// channel.
|
363
|
+
template <typename P, typename Call, typename Derived,
|
364
|
+
typename = std::enable_if_t<IsFusedFilter<Derived>::value>>
|
365
|
+
auto MapResult(void (Call::*fn)(ServerMetadata&), P x,
|
366
|
+
FilterCallData<Derived>* call_data) {
|
367
|
+
DCHECK(fn == &Derived::Call::OnServerTrailingMetadata);
|
368
|
+
return OnCancel(Map(std::move(x),
|
369
|
+
[call_data](ServerMetadataHandle md) {
|
370
|
+
call_data->call.OnServerTrailingMetadata(*md);
|
371
|
+
return md;
|
372
|
+
}),
|
373
|
+
[call_data]() {
|
374
|
+
grpc_metadata_batch b;
|
375
|
+
b.Set(GrpcStatusMetadata(), GRPC_STATUS_CANCELLED);
|
376
|
+
b.Set(GrpcCallWasCancelled(), true);
|
377
|
+
call_data->call.OnServerTrailingMetadata(b);
|
378
|
+
});
|
379
|
+
}
|
380
|
+
|
381
|
+
template <typename T, typename A>
|
382
|
+
constexpr bool IsSameExcludingCVRef =
|
383
|
+
std::is_same<promise_detail::RemoveCVRef<A>, T>::value;
|
384
|
+
|
385
|
+
template <typename T, typename A>
|
386
|
+
using EnableIfSameExcludingCVRef =
|
387
|
+
std::enable_if_t<std::is_same<promise_detail::RemoveCVRef<A>, T>::value,
|
388
|
+
void>;
|
389
|
+
|
390
|
+
template <typename T, typename A>
|
391
|
+
using EnableIfNotSameExcludingCVRef =
|
392
|
+
std::enable_if_t<!std::is_same<promise_detail::RemoveCVRef<A>, T>::value,
|
393
|
+
void>;
|
394
|
+
|
299
395
|
template <typename Interceptor, typename Derived, typename SfinaeVoid = void>
|
300
396
|
struct RunCallImpl;
|
301
397
|
|
@@ -307,8 +403,9 @@ struct RunCallImpl<const NoInterceptor*, Derived> {
|
|
307
403
|
}
|
308
404
|
};
|
309
405
|
|
310
|
-
template <typename Derived>
|
311
|
-
struct RunCallImpl<void (Derived::Call::*)(
|
406
|
+
template <typename Derived, typename A>
|
407
|
+
struct RunCallImpl<void (Derived::Call::*)(A md), Derived,
|
408
|
+
EnableIfSameExcludingCVRef<ClientMetadata, A>> {
|
312
409
|
static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
|
313
410
|
FilterCallData<Derived>* call_data) {
|
314
411
|
call_data->call.OnClientInitialMetadata(*call_args.client_initial_metadata);
|
@@ -316,9 +413,9 @@ struct RunCallImpl<void (Derived::Call::*)(ClientMetadata& md), Derived> {
|
|
316
413
|
}
|
317
414
|
};
|
318
415
|
|
319
|
-
template <typename Derived>
|
320
|
-
struct RunCallImpl<ServerMetadataHandle (Derived::Call::*)(
|
321
|
-
|
416
|
+
template <typename Derived, typename A>
|
417
|
+
struct RunCallImpl<ServerMetadataHandle (Derived::Call::*)(A md), Derived,
|
418
|
+
EnableIfSameExcludingCVRef<ClientMetadata, A>> {
|
322
419
|
static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
|
323
420
|
FilterCallData<Derived>* call_data)
|
324
421
|
-> ArenaPromise<ServerMetadataHandle> {
|
@@ -329,10 +426,10 @@ struct RunCallImpl<ServerMetadataHandle (Derived::Call::*)(ClientMetadata& md),
|
|
329
426
|
}
|
330
427
|
};
|
331
428
|
|
332
|
-
template <typename Derived>
|
333
|
-
struct RunCallImpl<ServerMetadataHandle (Derived::Call::*)(
|
429
|
+
template <typename Derived, typename A>
|
430
|
+
struct RunCallImpl<ServerMetadataHandle (Derived::Call::*)(A md,
|
334
431
|
Derived* channel),
|
335
|
-
Derived
|
432
|
+
Derived, EnableIfSameExcludingCVRef<ClientMetadata, A>> {
|
336
433
|
static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
|
337
434
|
FilterCallData<Derived>* call_data)
|
338
435
|
-> ArenaPromise<ServerMetadataHandle> {
|
@@ -343,9 +440,9 @@ struct RunCallImpl<ServerMetadataHandle (Derived::Call::*)(ClientMetadata& md,
|
|
343
440
|
}
|
344
441
|
};
|
345
442
|
|
346
|
-
template <typename Derived>
|
347
|
-
struct RunCallImpl<absl::Status (Derived::Call::*)(
|
348
|
-
|
443
|
+
template <typename Derived, typename A>
|
444
|
+
struct RunCallImpl<absl::Status (Derived::Call::*)(A md), Derived,
|
445
|
+
EnableIfSameExcludingCVRef<ClientMetadata, A>> {
|
349
446
|
static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
|
350
447
|
FilterCallData<Derived>* call_data)
|
351
448
|
-> ArenaPromise<ServerMetadataHandle> {
|
@@ -356,10 +453,9 @@ struct RunCallImpl<absl::Status (Derived::Call::*)(ClientMetadata& md),
|
|
356
453
|
}
|
357
454
|
};
|
358
455
|
|
359
|
-
template <typename Derived>
|
360
|
-
struct RunCallImpl<absl::Status (Derived::Call::*)(
|
361
|
-
|
362
|
-
Derived> {
|
456
|
+
template <typename Derived, typename A>
|
457
|
+
struct RunCallImpl<absl::Status (Derived::Call::*)(A md, Derived* channel),
|
458
|
+
Derived, EnableIfSameExcludingCVRef<ClientMetadata, A>> {
|
363
459
|
static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
|
364
460
|
FilterCallData<Derived>* call_data)
|
365
461
|
-> ArenaPromise<ServerMetadataHandle> {
|
@@ -370,9 +466,9 @@ struct RunCallImpl<absl::Status (Derived::Call::*)(ClientMetadata& md,
|
|
370
466
|
}
|
371
467
|
};
|
372
468
|
|
373
|
-
template <typename Derived>
|
374
|
-
struct RunCallImpl<
|
375
|
-
|
469
|
+
template <typename Derived, typename A>
|
470
|
+
struct RunCallImpl<void (Derived::Call::*)(A md, Derived* channel), Derived,
|
471
|
+
EnableIfSameExcludingCVRef<ClientMetadata, A>> {
|
376
472
|
static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
|
377
473
|
FilterCallData<Derived>* call_data) {
|
378
474
|
call_data->call.OnClientInitialMetadata(*call_args.client_initial_metadata,
|
@@ -381,11 +477,22 @@ struct RunCallImpl<
|
|
381
477
|
}
|
382
478
|
};
|
383
479
|
|
384
|
-
template <typename
|
385
|
-
struct
|
386
|
-
|
387
|
-
|
388
|
-
|
480
|
+
template <typename T, typename AnyType = void>
|
481
|
+
struct StatusCastExistsToServerMetadataHandle {
|
482
|
+
static constexpr bool value = false;
|
483
|
+
};
|
484
|
+
template <typename T>
|
485
|
+
struct StatusCastExistsToServerMetadataHandle<
|
486
|
+
T,
|
487
|
+
absl::void_t<decltype(StatusCast<ServerMetadataHandle>(std::declval<T>))>> {
|
488
|
+
static constexpr bool value = true;
|
489
|
+
};
|
490
|
+
|
491
|
+
template <typename Derived, typename A, typename Promise>
|
492
|
+
struct RunCallImpl<Promise (Derived::Call::*)(A, Derived* channel), Derived,
|
493
|
+
std::enable_if_t<StatusCastExistsToServerMetadataHandle<
|
494
|
+
PromiseResult<Promise>>::value &&
|
495
|
+
IsSameExcludingCVRef<ClientMetadata, A>>> {
|
389
496
|
static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
|
390
497
|
FilterCallData<Derived>* call_data) {
|
391
498
|
ClientMetadata& md_ref = *call_args.client_initial_metadata;
|
@@ -418,6 +525,26 @@ struct RunCallImpl<
|
|
418
525
|
}
|
419
526
|
};
|
420
527
|
|
528
|
+
template <typename Derived, typename Call, typename Promise>
|
529
|
+
struct RunCallImpl<
|
530
|
+
Promise (Call::*)(ClientMetadataHandle md, Derived* channel), Derived,
|
531
|
+
std::enable_if_t<std::is_same_v<PromiseResult<Promise>,
|
532
|
+
ServerMetadataOrHandle<ClientMetadata>>,
|
533
|
+
void>> {
|
534
|
+
static auto Run(CallArgs call_args, NextPromiseFactory next_promise_factory,
|
535
|
+
FilterCallData<Derived>* call_data) {
|
536
|
+
ClientMetadataHandle md = std::move(call_args.client_initial_metadata);
|
537
|
+
return TrySeq(call_data->call.OnClientInitialMetadata(std::move(md),
|
538
|
+
call_data->channel),
|
539
|
+
[call_args = std::move(call_args),
|
540
|
+
next_promise_factory = std::move(next_promise_factory)](
|
541
|
+
ClientMetadataHandle md) mutable {
|
542
|
+
call_args.client_initial_metadata = std::move(md);
|
543
|
+
return next_promise_factory(std::move(call_args));
|
544
|
+
});
|
545
|
+
}
|
546
|
+
};
|
547
|
+
|
421
548
|
template <typename Interceptor, typename Derived>
|
422
549
|
auto RunCall(Interceptor interceptor, CallArgs call_args,
|
423
550
|
NextPromiseFactory next_promise_factory,
|
@@ -427,279 +554,553 @@ auto RunCall(Interceptor interceptor, CallArgs call_args,
|
|
427
554
|
std::move(call_args), std::move(next_promise_factory), call_data);
|
428
555
|
}
|
429
556
|
|
430
|
-
template <typename Derived>
|
431
|
-
|
432
|
-
void (Derived::Call::*fn)(const Message&),
|
433
|
-
FilterCallData<Derived>* call_data, const CallArgs&) {
|
434
|
-
DCHECK(fn == &Derived::Call::OnClientToServerMessage);
|
435
|
-
return [call_data](MessageHandle msg) -> std::optional<MessageHandle> {
|
436
|
-
call_data->call.OnClientToServerMessage(*msg);
|
437
|
-
return std::move(msg);
|
438
|
-
};
|
439
|
-
}
|
557
|
+
template <typename Derived, typename MethodType, typename Ignored = void>
|
558
|
+
class InterceptClientToServerMessageHandler;
|
440
559
|
|
441
560
|
template <typename Derived>
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
};
|
453
|
-
}
|
561
|
+
class InterceptClientToServerMessageHandler<Derived, const NoInterceptor*> {
|
562
|
+
public:
|
563
|
+
explicit InterceptClientToServerMessageHandler(FilterCallData<Derived>*,
|
564
|
+
const CallArgs&) {}
|
565
|
+
auto operator()() {
|
566
|
+
return [](MessageHandle msg) -> std::optional<MessageHandle> {
|
567
|
+
return std::move(msg);
|
568
|
+
};
|
569
|
+
}
|
570
|
+
};
|
454
571
|
|
455
|
-
template <typename Derived>
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
}
|
572
|
+
template <typename Derived, typename MessageType>
|
573
|
+
class InterceptClientToServerMessageHandler<
|
574
|
+
Derived, void (Derived::Call::*)(MessageType),
|
575
|
+
EnableIfSameExcludingCVRef<Message, MessageType>> {
|
576
|
+
public:
|
577
|
+
explicit InterceptClientToServerMessageHandler(
|
578
|
+
FilterCallData<Derived>* call_data, const CallArgs&)
|
579
|
+
: call_data_(call_data) {}
|
580
|
+
auto operator()() {
|
581
|
+
return [call_data =
|
582
|
+
call_data_](MessageHandle msg) -> std::optional<MessageHandle> {
|
583
|
+
call_data->call.OnClientToServerMessage(*msg);
|
584
|
+
return std::move(msg);
|
585
|
+
};
|
586
|
+
}
|
469
587
|
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
FilterCallData<Derived>* call_data, const CallArgs&) {
|
474
|
-
DCHECK(fn == &Derived::Call::OnClientToServerMessage);
|
475
|
-
return [call_data](MessageHandle msg) -> std::optional<MessageHandle> {
|
476
|
-
call_data->call.OnClientToServerMessage(*msg, call_data->channel);
|
477
|
-
return std::move(msg);
|
478
|
-
};
|
479
|
-
}
|
588
|
+
private:
|
589
|
+
FilterCallData<Derived>* call_data_;
|
590
|
+
};
|
480
591
|
|
481
|
-
template <typename Derived>
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
592
|
+
template <typename Derived, typename MessageType>
|
593
|
+
class InterceptClientToServerMessageHandler<
|
594
|
+
Derived, ServerMetadataHandle (Derived::Call::*)(MessageType),
|
595
|
+
EnableIfSameExcludingCVRef<Message, MessageType>> {
|
596
|
+
public:
|
597
|
+
explicit InterceptClientToServerMessageHandler(
|
598
|
+
FilterCallData<Derived>* call_data, const CallArgs&)
|
599
|
+
: call_data_(call_data) {}
|
600
|
+
|
601
|
+
auto operator()() {
|
602
|
+
return [call_data =
|
603
|
+
call_data_](MessageHandle msg) -> std::optional<MessageHandle> {
|
604
|
+
auto return_md = call_data->call.OnClientToServerMessage(*msg);
|
605
|
+
if (return_md == nullptr) return std::move(msg);
|
606
|
+
if (call_data->error_latch.is_set()) return std::nullopt;
|
607
|
+
call_data->error_latch.Set(std::move(return_md));
|
608
|
+
return std::nullopt;
|
609
|
+
};
|
610
|
+
}
|
611
|
+
|
612
|
+
private:
|
613
|
+
FilterCallData<Derived>* call_data_;
|
614
|
+
};
|
615
|
+
|
616
|
+
template <typename Derived, typename MessageType>
|
617
|
+
class InterceptClientToServerMessageHandler<
|
618
|
+
Derived, ServerMetadataHandle (Derived::Call::*)(MessageType, Derived*),
|
619
|
+
EnableIfSameExcludingCVRef<Message, MessageType>> {
|
620
|
+
public:
|
621
|
+
explicit InterceptClientToServerMessageHandler(
|
622
|
+
FilterCallData<Derived>* call_data, const CallArgs&)
|
623
|
+
: call_data_(call_data) {}
|
624
|
+
|
625
|
+
auto operator()() {
|
626
|
+
return [call_data =
|
627
|
+
call_data_](MessageHandle msg) -> std::optional<MessageHandle> {
|
628
|
+
auto return_md =
|
629
|
+
call_data->call.OnClientToServerMessage(*msg, call_data->channel);
|
630
|
+
if (return_md == nullptr) return std::move(msg);
|
631
|
+
if (call_data->error_latch.is_set()) return std::nullopt;
|
632
|
+
call_data->error_latch.Set(std::move(return_md));
|
633
|
+
return std::nullopt;
|
634
|
+
};
|
635
|
+
}
|
636
|
+
|
637
|
+
private:
|
638
|
+
FilterCallData<Derived>* call_data_;
|
639
|
+
};
|
640
|
+
|
641
|
+
template <typename Derived, typename MessageType>
|
642
|
+
class InterceptClientToServerMessageHandler<
|
643
|
+
Derived, void (Derived::Call::*)(MessageType, Derived*),
|
644
|
+
EnableIfSameExcludingCVRef<Message, MessageType>> {
|
645
|
+
public:
|
646
|
+
explicit InterceptClientToServerMessageHandler(
|
647
|
+
FilterCallData<Derived>* call_data, const CallArgs&)
|
648
|
+
: call_data_(call_data) {}
|
649
|
+
|
650
|
+
auto operator()() {
|
651
|
+
return [call_data =
|
652
|
+
call_data_](MessageHandle msg) -> std::optional<MessageHandle> {
|
653
|
+
call_data->call.OnClientToServerMessage(*msg, call_data->channel);
|
654
|
+
return std::move(msg);
|
655
|
+
};
|
656
|
+
}
|
657
|
+
|
658
|
+
private:
|
659
|
+
FilterCallData<Derived>* call_data_;
|
660
|
+
};
|
491
661
|
|
492
662
|
template <typename Derived>
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
663
|
+
class InterceptClientToServerMessageHandler<
|
664
|
+
Derived, MessageHandle (Derived::Call::*)(MessageHandle, Derived*)> {
|
665
|
+
public:
|
666
|
+
explicit InterceptClientToServerMessageHandler(
|
667
|
+
FilterCallData<Derived>* call_data, const CallArgs&)
|
668
|
+
: call_data_(call_data) {}
|
669
|
+
|
670
|
+
auto operator()() {
|
671
|
+
return [call_data =
|
672
|
+
call_data_](MessageHandle msg) -> std::optional<MessageHandle> {
|
673
|
+
return call_data->call.OnClientToServerMessage(std::move(msg),
|
499
674
|
call_data->channel);
|
500
|
-
|
501
|
-
|
502
|
-
call_data->error_latch.Set(ServerMetadataFromStatus(r.status()));
|
503
|
-
return std::nullopt;
|
504
|
-
};
|
505
|
-
}
|
675
|
+
};
|
676
|
+
}
|
506
677
|
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
FilterCallData<Derived>* call_data,
|
511
|
-
const CallArgs& call_args) {
|
512
|
-
call_args.client_to_server_messages->InterceptAndMap(
|
513
|
-
InterceptClientToServerMessageHandler(hook, call_data, call_args));
|
514
|
-
}
|
678
|
+
private:
|
679
|
+
FilterCallData<Derived>* call_data_;
|
680
|
+
};
|
515
681
|
|
516
|
-
template <typename Derived
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
682
|
+
template <typename Derived>
|
683
|
+
class InterceptClientToServerMessageHandler<
|
684
|
+
Derived,
|
685
|
+
absl::StatusOr<MessageHandle> (Derived::Call::*)(MessageHandle, Derived*)> {
|
686
|
+
public:
|
687
|
+
explicit InterceptClientToServerMessageHandler(
|
688
|
+
FilterCallData<Derived>* call_data, const CallArgs&)
|
689
|
+
: call_data_(call_data) {}
|
690
|
+
|
691
|
+
auto operator()() {
|
692
|
+
return [call_data =
|
693
|
+
call_data_](MessageHandle msg) -> std::optional<MessageHandle> {
|
694
|
+
auto r = call_data->call.OnClientToServerMessage(std::move(msg),
|
695
|
+
call_data->channel);
|
696
|
+
if (r.ok()) return std::move(*r);
|
697
|
+
if (call_data->error_latch.is_set()) return std::nullopt;
|
698
|
+
call_data->error_latch.Set(ServerMetadataFromStatus(r.status()));
|
699
|
+
return std::nullopt;
|
700
|
+
};
|
701
|
+
}
|
702
|
+
|
703
|
+
private:
|
704
|
+
FilterCallData<Derived>* call_data_;
|
705
|
+
};
|
706
|
+
|
707
|
+
// For handling fused filters with a promise return type. This specialization is
|
708
|
+
// only for fused filters not requiring a channel pointer.
|
709
|
+
template <typename Derived, typename R, typename Call>
|
710
|
+
class InterceptClientToServerMessageHandler<Derived, R (Call::*)(MessageHandle),
|
711
|
+
EnableIfPromise<R>> {
|
712
|
+
public:
|
713
|
+
explicit InterceptClientToServerMessageHandler(
|
714
|
+
FilterCallData<Derived>* call_data, const CallArgs&)
|
715
|
+
: call_data_(call_data) {}
|
716
|
+
|
717
|
+
auto operator()() {
|
718
|
+
return [call_data = call_data_](MessageHandle msg) {
|
719
|
+
return Map(call_data->call.OnClientToServerMessage(std::move(msg)),
|
720
|
+
[call_data](ServerMetadataOrHandle<Message> md)
|
721
|
+
-> std::optional<MessageHandle> {
|
722
|
+
if (!md.ok()) {
|
723
|
+
call_data->error_latch.Set(std::move(md).TakeMetadata());
|
724
|
+
return std::nullopt;
|
725
|
+
}
|
726
|
+
return std::move(md).TakeValue();
|
727
|
+
});
|
728
|
+
};
|
729
|
+
}
|
730
|
+
|
731
|
+
private:
|
732
|
+
FilterCallData<Derived>* call_data_;
|
733
|
+
};
|
734
|
+
|
735
|
+
// For handling fused filters with a promise return type. This specialization is
|
736
|
+
// only for fused filters requiring a channel pointer.
|
737
|
+
template <typename Derived, typename Call, typename R>
|
738
|
+
class InterceptClientToServerMessageHandler<
|
739
|
+
Derived, R (Call::*)(MessageHandle, Derived*), EnableIfPromise<R>> {
|
740
|
+
public:
|
741
|
+
explicit InterceptClientToServerMessageHandler(
|
742
|
+
FilterCallData<Derived>* call_data, const CallArgs&)
|
743
|
+
: call_data_(call_data) {}
|
744
|
+
|
745
|
+
auto operator()() {
|
746
|
+
return [call_data = call_data_](MessageHandle msg) {
|
747
|
+
return Map(call_data->call.OnClientToServerMessage(std::move(msg),
|
748
|
+
call_data->channel),
|
749
|
+
[call_data](ServerMetadataOrHandle<Message> md)
|
750
|
+
-> std::optional<MessageHandle> {
|
751
|
+
if (!md.ok()) {
|
752
|
+
call_data->error_latch.Set(std::move(md).TakeMetadata());
|
753
|
+
return std::nullopt;
|
754
|
+
}
|
755
|
+
return std::move(md).TakeValue();
|
756
|
+
});
|
757
|
+
};
|
758
|
+
}
|
759
|
+
|
760
|
+
private:
|
761
|
+
FilterCallData<Derived>* call_data_;
|
762
|
+
};
|
763
|
+
|
764
|
+
template <typename HookFn, typename HalfCloseFn, typename Derived,
|
765
|
+
typename Ignored = void>
|
766
|
+
struct InterceptClientToServerMessage;
|
525
767
|
|
526
768
|
template <typename Derived>
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
769
|
+
struct InterceptClientToServerMessage<const NoInterceptor*,
|
770
|
+
const NoInterceptor*, Derived> {
|
771
|
+
static inline void Run(FilterCallData<Derived>*, const CallArgs&) {}
|
772
|
+
};
|
773
|
+
|
774
|
+
template <typename HookFn, typename Call, typename Derived>
|
775
|
+
struct InterceptClientToServerMessage<
|
776
|
+
HookFn, void (Call::*)(), Derived,
|
777
|
+
std::enable_if_t<!IsSameExcludingCVRef<HookFn, NoInterceptor*>, void>> {
|
778
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
779
|
+
const CallArgs& call_args) {
|
780
|
+
call_args.client_to_server_messages->InterceptAndMapWithHalfClose(
|
781
|
+
InterceptClientToServerMessageHandler<Derived, HookFn>(call_data,
|
782
|
+
call_args)(),
|
783
|
+
[call_data]() { call_data->call.OnClientToServerHalfClose(); });
|
784
|
+
}
|
785
|
+
};
|
786
|
+
|
787
|
+
template <typename HookFn, typename Derived>
|
788
|
+
struct InterceptClientToServerMessage<
|
789
|
+
HookFn, const NoInterceptor*, Derived,
|
790
|
+
std::enable_if_t<!IsSameExcludingCVRef<HookFn, NoInterceptor*>, void>> {
|
791
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
792
|
+
const CallArgs& call_args) {
|
793
|
+
call_args.client_to_server_messages->InterceptAndMap(
|
794
|
+
InterceptClientToServerMessageHandler<Derived, HookFn>(call_data,
|
795
|
+
call_args)());
|
796
|
+
}
|
797
|
+
};
|
531
798
|
|
532
|
-
template <typename
|
533
|
-
|
534
|
-
const CallArgs&) {}
|
799
|
+
template <typename Derived, typename MethodType, typename Ignored = void>
|
800
|
+
struct InterceptServerInitialMetadata;
|
535
801
|
|
536
802
|
template <typename Derived>
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
DCHECK(fn == &Derived::Call::OnServerInitialMetadata);
|
541
|
-
call_args.server_initial_metadata->InterceptAndMap(
|
542
|
-
[call_data](ServerMetadataHandle md) {
|
543
|
-
call_data->call.OnServerInitialMetadata(*md);
|
544
|
-
return md;
|
545
|
-
});
|
546
|
-
}
|
803
|
+
struct InterceptServerInitialMetadata<Derived, const NoInterceptor*> {
|
804
|
+
static inline void Run(FilterCallData<Derived>*, const CallArgs&) {}
|
805
|
+
};
|
547
806
|
|
548
807
|
template <typename Derived>
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
}
|
561
|
-
return std::move(md);
|
562
|
-
});
|
563
|
-
}
|
808
|
+
struct InterceptServerInitialMetadata<Derived, void (Derived::Call::*)(
|
809
|
+
ServerMetadata&)> {
|
810
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
811
|
+
const CallArgs& call_args) {
|
812
|
+
call_args.server_initial_metadata->InterceptAndMap(
|
813
|
+
[call_data](ServerMetadataHandle md) {
|
814
|
+
call_data->call.OnServerInitialMetadata(*md);
|
815
|
+
return md;
|
816
|
+
});
|
817
|
+
}
|
818
|
+
};
|
564
819
|
|
565
820
|
template <typename Derived>
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
821
|
+
struct InterceptServerInitialMetadata<Derived, absl::Status (Derived::Call::*)(
|
822
|
+
ServerMetadata&)> {
|
823
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
824
|
+
const CallArgs& call_args) {
|
825
|
+
call_args.server_initial_metadata->InterceptAndMap(
|
826
|
+
[call_data](
|
827
|
+
ServerMetadataHandle md) -> std::optional<ServerMetadataHandle> {
|
828
|
+
auto status = call_data->call.OnServerInitialMetadata(*md);
|
829
|
+
if (!status.ok() && !call_data->error_latch.is_set()) {
|
830
|
+
call_data->error_latch.Set(ServerMetadataFromStatus(status));
|
831
|
+
return std::nullopt;
|
832
|
+
}
|
833
|
+
return std::move(md);
|
834
|
+
});
|
835
|
+
}
|
836
|
+
};
|
576
837
|
|
577
838
|
template <typename Derived>
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
return std::nullopt;
|
590
|
-
}
|
591
|
-
return std::move(md);
|
592
|
-
});
|
593
|
-
}
|
839
|
+
struct InterceptServerInitialMetadata<Derived, void (Derived::Call::*)(
|
840
|
+
ServerMetadata&, Derived*)> {
|
841
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
842
|
+
const CallArgs& call_args) {
|
843
|
+
call_args.server_initial_metadata->InterceptAndMap(
|
844
|
+
[call_data](ServerMetadataHandle md) {
|
845
|
+
call_data->call.OnServerInitialMetadata(*md, call_data->channel);
|
846
|
+
return md;
|
847
|
+
});
|
848
|
+
}
|
849
|
+
};
|
594
850
|
|
595
|
-
|
596
|
-
|
851
|
+
template <typename Derived>
|
852
|
+
struct InterceptServerInitialMetadata<Derived, absl::Status (Derived::Call::*)(
|
853
|
+
ServerMetadata&, Derived*)> {
|
854
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
855
|
+
const CallArgs& call_args) {
|
856
|
+
call_args.server_initial_metadata->InterceptAndMap(
|
857
|
+
[call_data](
|
858
|
+
ServerMetadataHandle md) -> std::optional<ServerMetadataHandle> {
|
859
|
+
auto status =
|
860
|
+
call_data->call.OnServerInitialMetadata(*md, call_data->channel);
|
861
|
+
if (!status.ok() && !call_data->error_latch.is_set()) {
|
862
|
+
call_data->error_latch.Set(ServerMetadataFromStatus(status));
|
863
|
+
return std::nullopt;
|
864
|
+
}
|
865
|
+
return std::move(md);
|
866
|
+
});
|
867
|
+
}
|
868
|
+
};
|
869
|
+
|
870
|
+
// For handling fused filters with a promise return type. This specialization is
|
871
|
+
// only for fused filters requiring a channel pointer.
|
872
|
+
template <typename Derived, typename Call, typename R>
|
873
|
+
struct InterceptServerInitialMetadata<
|
874
|
+
Derived, R (Call::*)(ServerMetadataHandle, Derived*), EnableIfPromise<R>> {
|
875
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
876
|
+
const CallArgs& call_args) {
|
877
|
+
call_args.server_initial_metadata->InterceptAndMap(
|
878
|
+
[call_data](ServerMetadataHandle md) {
|
879
|
+
return Map(
|
880
|
+
call_data->call.OnServerInitialMetadata(std::move(md),
|
881
|
+
call_data->channel),
|
882
|
+
[call_data](ServerMetadataOrHandle<ServerMetadata> md)
|
883
|
+
-> std::optional<ServerMetadataHandle> {
|
884
|
+
if (!md.ok()) {
|
885
|
+
call_data->error_latch.Set(std::move(md).TakeMetadata());
|
886
|
+
return std::nullopt;
|
887
|
+
}
|
888
|
+
return std::move(md).TakeValue();
|
889
|
+
});
|
890
|
+
});
|
891
|
+
}
|
892
|
+
};
|
893
|
+
|
894
|
+
// For handling fused filters with a promise return type. This specialization is
|
895
|
+
// only for fused filters not requiring a channel pointer.
|
896
|
+
template <typename Derived, typename Call, typename R>
|
897
|
+
struct InterceptServerInitialMetadata<
|
898
|
+
Derived, R (Call::*)(ServerMetadataHandle), EnableIfPromise<R>> {
|
899
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
900
|
+
const CallArgs& call_args) {
|
901
|
+
call_args.server_initial_metadata->InterceptAndMap(
|
902
|
+
[call_data](ServerMetadataHandle md) {
|
903
|
+
return Map(
|
904
|
+
call_data->call.OnServerInitialMetadata(std::move(md)),
|
905
|
+
[call_data](ServerMetadataOrHandle<ServerMetadata> md)
|
906
|
+
-> std::optional<ServerMetadataHandle> {
|
907
|
+
if (!md.ok()) {
|
908
|
+
call_data->error_latch.Set(std::move(md).TakeMetadata());
|
909
|
+
return std::nullopt;
|
910
|
+
}
|
911
|
+
return std::move(md).TakeValue();
|
912
|
+
});
|
913
|
+
});
|
914
|
+
}
|
915
|
+
};
|
916
|
+
|
917
|
+
template <typename Derived, typename MethodType, typename Ignored = void>
|
918
|
+
struct InterceptServerToClientMessage;
|
597
919
|
|
598
920
|
template <typename Derived>
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
DCHECK(fn == &Derived::Call::OnServerToClientMessage);
|
603
|
-
call_args.server_to_client_messages->InterceptAndMap(
|
604
|
-
[call_data](MessageHandle msg) -> std::optional<MessageHandle> {
|
605
|
-
call_data->call.OnServerToClientMessage(*msg);
|
606
|
-
return std::move(msg);
|
607
|
-
});
|
608
|
-
}
|
921
|
+
struct InterceptServerToClientMessage<Derived, const NoInterceptor*> {
|
922
|
+
static inline void Run(FilterCallData<Derived>*, const CallArgs&) {}
|
923
|
+
};
|
609
924
|
|
610
925
|
template <typename Derived>
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
});
|
623
|
-
}
|
926
|
+
struct InterceptServerToClientMessage<Derived,
|
927
|
+
void (Derived::Call::*)(const Message&)> {
|
928
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
929
|
+
const CallArgs& call_args) {
|
930
|
+
call_args.server_to_client_messages->InterceptAndMap(
|
931
|
+
[call_data](MessageHandle msg) -> std::optional<MessageHandle> {
|
932
|
+
call_data->call.OnServerToClientMessage(*msg);
|
933
|
+
return std::move(msg);
|
934
|
+
});
|
935
|
+
}
|
936
|
+
};
|
624
937
|
|
625
938
|
template <typename Derived>
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
}
|
939
|
+
struct InterceptServerToClientMessage<Derived,
|
940
|
+
void (Derived::Call::*)(Message&)> {
|
941
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
942
|
+
const CallArgs& call_args) {
|
943
|
+
call_args.server_to_client_messages->InterceptAndMap(
|
944
|
+
[call_data](MessageHandle msg) -> std::optional<MessageHandle> {
|
945
|
+
call_data->call.OnServerToClientMessage(*msg);
|
946
|
+
return std::move(msg);
|
947
|
+
});
|
948
|
+
}
|
949
|
+
};
|
636
950
|
|
637
951
|
template <typename Derived>
|
638
|
-
|
639
|
-
ServerMetadataHandle (Derived::Call::*
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
}
|
952
|
+
struct InterceptServerToClientMessage<
|
953
|
+
Derived, ServerMetadataHandle (Derived::Call::*)(const Message&)> {
|
954
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
955
|
+
const CallArgs& call_args) {
|
956
|
+
call_args.server_to_client_messages->InterceptAndMap(
|
957
|
+
[call_data](MessageHandle msg) -> std::optional<MessageHandle> {
|
958
|
+
auto return_md = call_data->call.OnServerToClientMessage(*msg);
|
959
|
+
if (return_md == nullptr) return std::move(msg);
|
960
|
+
if (call_data->error_latch.is_set()) return std::nullopt;
|
961
|
+
call_data->error_latch.Set(std::move(return_md));
|
962
|
+
return std::nullopt;
|
963
|
+
});
|
964
|
+
}
|
965
|
+
};
|
652
966
|
|
653
967
|
template <typename Derived>
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
}
|
968
|
+
struct InterceptServerToClientMessage<Derived, void (Derived::Call::*)(
|
969
|
+
const Message&, Derived*)> {
|
970
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
971
|
+
const CallArgs& call_args) {
|
972
|
+
call_args.server_to_client_messages->InterceptAndMap(
|
973
|
+
[call_data](MessageHandle msg) -> std::optional<MessageHandle> {
|
974
|
+
call_data->call.OnServerToClientMessage(*msg, call_data->channel);
|
975
|
+
return std::move(msg);
|
976
|
+
});
|
977
|
+
}
|
978
|
+
};
|
664
979
|
|
665
980
|
template <typename Derived>
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
981
|
+
struct InterceptServerToClientMessage<Derived,
|
982
|
+
ServerMetadataHandle (Derived::Call::*)(
|
983
|
+
const Message&, Derived*)> {
|
984
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
985
|
+
const CallArgs& call_args) {
|
986
|
+
call_args.server_to_client_messages->InterceptAndMap(
|
987
|
+
[call_data](MessageHandle msg) -> std::optional<MessageHandle> {
|
988
|
+
auto return_md =
|
989
|
+
call_data->call.OnServerToClientMessage(*msg, call_data->channel);
|
990
|
+
if (return_md == nullptr) return std::move(msg);
|
991
|
+
if (call_data->error_latch.is_set()) return std::nullopt;
|
992
|
+
call_data->error_latch.Set(std::move(return_md));
|
993
|
+
return std::nullopt;
|
994
|
+
});
|
995
|
+
}
|
996
|
+
};
|
997
|
+
|
998
|
+
template <typename Derived>
|
999
|
+
struct InterceptServerToClientMessage<Derived, MessageHandle (Derived::Call::*)(
|
1000
|
+
MessageHandle, Derived*)> {
|
1001
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
1002
|
+
const CallArgs& call_args) {
|
1003
|
+
call_args.server_to_client_messages->InterceptAndMap(
|
1004
|
+
[call_data](MessageHandle msg) -> std::optional<MessageHandle> {
|
1005
|
+
return call_data->call.OnServerToClientMessage(std::move(msg),
|
673
1006
|
call_data->channel);
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
return std::nullopt;
|
678
|
-
});
|
679
|
-
}
|
1007
|
+
});
|
1008
|
+
}
|
1009
|
+
};
|
680
1010
|
|
681
|
-
|
1011
|
+
template <typename Derived>
|
1012
|
+
struct InterceptServerToClientMessage<Derived, absl::StatusOr<MessageHandle> (
|
1013
|
+
Derived::Call::*)(
|
1014
|
+
MessageHandle, Derived*)> {
|
1015
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
1016
|
+
const CallArgs& call_args) {
|
1017
|
+
call_args.server_to_client_messages->InterceptAndMap(
|
1018
|
+
[call_data](MessageHandle msg) -> std::optional<MessageHandle> {
|
1019
|
+
auto r = call_data->call.OnServerToClientMessage(std::move(msg),
|
1020
|
+
call_data->channel);
|
1021
|
+
if (r.ok()) return std::move(*r);
|
1022
|
+
if (call_data->error_latch.is_set()) return std::nullopt;
|
1023
|
+
call_data->error_latch.Set(ServerMetadataFromStatus(r.status()));
|
1024
|
+
return std::nullopt;
|
1025
|
+
});
|
1026
|
+
}
|
1027
|
+
};
|
682
1028
|
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
1029
|
+
// For handling fused filters with a promise return type. This specialization is
|
1030
|
+
// only for fused filters not requiring a channel pointer.
|
1031
|
+
template <typename Derived, typename Call, typename R>
|
1032
|
+
struct InterceptServerToClientMessage<Derived, R (Call::*)(MessageHandle),
|
1033
|
+
EnableIfPromise<R>> {
|
1034
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
1035
|
+
const CallArgs& call_args) {
|
1036
|
+
call_args.server_to_client_messages->InterceptAndMap(
|
1037
|
+
[call_data](MessageHandle msg) {
|
1038
|
+
return Map(
|
1039
|
+
call_data->call.OnServerToClientMessage(std::move(msg)),
|
1040
|
+
[call_data](ServerMetadataOrHandle<Message> msg)
|
1041
|
+
-> std::optional<MessageHandle> {
|
1042
|
+
if (!msg.ok()) {
|
1043
|
+
call_data->error_latch.Set(std::move(msg).TakeMetadata());
|
1044
|
+
return std::nullopt;
|
1045
|
+
}
|
1046
|
+
return std::move(msg).TakeValue();
|
1047
|
+
});
|
1048
|
+
});
|
1049
|
+
}
|
1050
|
+
};
|
692
1051
|
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
1052
|
+
// For handling fused filters with a promise return type. This specialization is
|
1053
|
+
// only for fused filters requiring a channel pointer.
|
1054
|
+
template <typename Derived, typename Call, typename R>
|
1055
|
+
struct InterceptServerToClientMessage<
|
1056
|
+
Derived, R (Call::*)(MessageHandle, Derived*), EnableIfPromise<R>> {
|
1057
|
+
static inline void Run(FilterCallData<Derived>* call_data,
|
1058
|
+
const CallArgs& call_args) {
|
1059
|
+
call_args.server_to_client_messages->InterceptAndMap(
|
1060
|
+
[call_data](MessageHandle msg) {
|
1061
|
+
return Map(
|
1062
|
+
call_data->call.OnServerToClientMessage(std::move(msg),
|
1063
|
+
call_data->channel),
|
1064
|
+
[call_data](ServerMetadataOrHandle<Message> msg)
|
1065
|
+
-> std::optional<MessageHandle> {
|
1066
|
+
if (!msg.ok()) {
|
1067
|
+
call_data->error_latch.Set(std::move(msg).TakeMetadata());
|
1068
|
+
return std::nullopt;
|
1069
|
+
}
|
1070
|
+
return std::move(msg).TakeValue();
|
1071
|
+
});
|
1072
|
+
});
|
1073
|
+
}
|
1074
|
+
};
|
1075
|
+
|
1076
|
+
template <typename Derived, typename MethodType, typename Ignored = void>
|
1077
|
+
struct InterceptFinalize;
|
1078
|
+
|
1079
|
+
template <typename Derived>
|
1080
|
+
struct InterceptFinalize<Derived, const NoInterceptor*> {
|
1081
|
+
static inline void Run(void*, void*) {}
|
1082
|
+
};
|
1083
|
+
|
1084
|
+
template <typename Derived, typename Call>
|
1085
|
+
struct InterceptFinalize<Derived, void (Call::*)(const grpc_call_final_info*)> {
|
1086
|
+
static inline void Run(void*, Call* call) {
|
1087
|
+
GetContext<CallFinalization>()->Add(
|
1088
|
+
[call](const grpc_call_final_info* final_info) {
|
1089
|
+
call->OnFinalize(final_info);
|
1090
|
+
});
|
1091
|
+
}
|
1092
|
+
};
|
1093
|
+
|
1094
|
+
template <class Derived, typename Call>
|
1095
|
+
struct InterceptFinalize<Derived, void (Call::*)(const grpc_call_final_info*,
|
1096
|
+
Derived*)> {
|
1097
|
+
static inline void Run(Derived* channel, Call* call) {
|
1098
|
+
GetContext<CallFinalization>()->Add(
|
1099
|
+
[call, channel](const grpc_call_final_info* final_info) {
|
1100
|
+
call->OnFinalize(final_info, channel);
|
1101
|
+
});
|
1102
|
+
}
|
1103
|
+
};
|
703
1104
|
|
704
1105
|
template <typename Derived>
|
705
1106
|
absl::enable_if_t<std::is_empty<FilterCallData<Derived>>::value,
|
@@ -786,20 +1187,27 @@ class ImplementChannelFilter : public ChannelFilter,
|
|
786
1187
|
CallArgs call_args, NextPromiseFactory next_promise_factory) final {
|
787
1188
|
auto* call = promise_filter_detail::MakeFilterCall<Derived>(
|
788
1189
|
static_cast<Derived*>(this));
|
789
|
-
promise_filter_detail::InterceptClientToServerMessage
|
790
|
-
&Derived::Call::OnClientToServerMessage,
|
791
|
-
&Derived::Call::OnClientToServerHalfClose,
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
&Derived::Call::
|
796
|
-
|
797
|
-
|
798
|
-
|
1190
|
+
promise_filter_detail::InterceptClientToServerMessage<
|
1191
|
+
decltype(&Derived::Call::OnClientToServerMessage),
|
1192
|
+
decltype(&Derived::Call::OnClientToServerHalfClose),
|
1193
|
+
Derived>::Run(call, call_args);
|
1194
|
+
promise_filter_detail::InterceptServerInitialMetadata<
|
1195
|
+
Derived,
|
1196
|
+
decltype(&Derived::Call::OnServerInitialMetadata)>::Run(call,
|
1197
|
+
call_args);
|
1198
|
+
promise_filter_detail::InterceptServerToClientMessage<
|
1199
|
+
Derived,
|
1200
|
+
decltype(&Derived::Call::OnServerToClientMessage)>::Run(call,
|
1201
|
+
call_args);
|
1202
|
+
promise_filter_detail::
|
1203
|
+
InterceptFinalize<Derived, decltype(&Derived::Call::OnFinalize)>::Run(
|
1204
|
+
static_cast<Derived*>(this),
|
1205
|
+
static_cast<typename Derived::Call*>(&call->call));
|
799
1206
|
return promise_filter_detail::MapResult(
|
800
1207
|
&Derived::Call::OnServerTrailingMetadata,
|
801
1208
|
promise_filter_detail::RaceAsyncCompletion<
|
802
|
-
promise_filter_detail::CallHasAsyncErrorInterceptor<
|
1209
|
+
promise_filter_detail::CallHasAsyncErrorInterceptor<
|
1210
|
+
Derived>::value>::
|
803
1211
|
Run(promise_filter_detail::RunCall(
|
804
1212
|
&Derived::Call::OnClientInitialMetadata,
|
805
1213
|
std::move(call_args), std::move(next_promise_factory),
|