grpc 1.48.0 → 1.50.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +114 -150
- data/include/grpc/event_engine/endpoint_config.h +11 -5
- data/include/grpc/event_engine/event_engine.h +20 -17
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +19 -28
- data/include/grpc/impl/codegen/atm_gcc_sync.h +0 -2
- data/include/grpc/impl/codegen/atm_windows.h +0 -2
- data/include/grpc/impl/codegen/grpc_types.h +9 -8
- data/include/grpc/impl/codegen/port_platform.h +0 -8
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +6 -6
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +2 -2
- data/src/core/ext/filters/client_channel/backup_poller.cc +4 -6
- data/src/core/ext/filters/client_channel/client_channel.cc +154 -218
- data/src/core/ext/filters/client_channel/client_channel.h +16 -9
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +0 -29
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -10
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +0 -16
- data/src/core/ext/filters/client_channel/config_selector.h +12 -4
- data/src/core/ext/filters/client_channel/connector.h +4 -5
- data/src/core/ext/filters/client_channel/http_proxy.cc +55 -74
- data/src/core/ext/filters/client_channel/http_proxy.h +15 -11
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +20 -16
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +11 -10
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +0 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +181 -194
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +12 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +5 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +20 -11
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +250 -146
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +41 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +35 -32
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +195 -299
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +237 -250
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +12 -7
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +431 -498
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +31 -30
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +27 -27
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +108 -124
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +68 -76
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +131 -227
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +126 -121
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +325 -304
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +4 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +431 -145
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +172 -101
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +20 -7
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -16
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +7 -17
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +11 -0
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +51 -32
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +87 -41
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +16 -6
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -13
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +167 -168
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +40 -32
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +7 -10
- data/src/core/ext/filters/client_channel/retry_filter.cc +25 -36
- data/src/core/ext/filters/client_channel/retry_service_config.cc +30 -19
- data/src/core/ext/filters/client_channel/retry_service_config.h +6 -9
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +6 -7
- data/src/core/ext/filters/client_channel/subchannel.cc +86 -121
- data/src/core/ext/filters/client_channel/subchannel.h +20 -11
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +1 -1
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +6 -76
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -25
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +4 -6
- data/src/core/ext/filters/deadline/deadline_filter.cc +6 -6
- data/src/core/ext/filters/deadline/deadline_filter.h +2 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +24 -19
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +9 -1
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +17 -12
- data/src/core/ext/filters/fault_injection/service_config_parser.h +4 -5
- data/src/core/ext/filters/http/client/http_client_filter.cc +3 -5
- data/src/core/ext/filters/http/client/http_client_filter.h +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +1 -2
- data/src/core/ext/filters/http/client_authority_filter.h +1 -1
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +2 -4
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -2
- data/src/core/ext/filters/http/server/http_server_filter.cc +3 -5
- data/src/core/ext/filters/http/server/http_server_filter.h +1 -1
- data/src/core/ext/filters/message_size/message_size_filter.cc +13 -7
- data/src/core/ext/filters/message_size/message_size_filter.h +3 -6
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +16 -12
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +4 -6
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +5 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +3 -5
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +40 -63
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +86 -107
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +4 -6
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +155 -295
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -2
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +287 -0
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +1018 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +139 -42
- data/src/core/ext/transport/chttp2/transport/flow_control.h +12 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +1 -2
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +7 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +27 -28
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +4 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +8 -2
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +30 -38
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +1 -10
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +11 -6
- data/src/core/ext/transport/chttp2/transport/internal.h +4 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +44 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +3 -14
- data/src/core/ext/transport/inproc/inproc_transport.cc +41 -77
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +8 -327
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +83 -1723
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +6 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +33 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -3
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +14 -14
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +21 -19
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +124 -34
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +23 -22
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +153 -48
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +84 -28
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +156 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +78 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +54 -18
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +21 -20
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +117 -44
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +36 -12
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +37 -13
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +170 -15
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +36 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +48 -16
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +54 -18
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -9
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +100 -14
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -22
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +36 -77
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +121 -76
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +647 -163
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +34 -15
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +161 -22
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +11 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +58 -4
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +177 -52
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +66 -14
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +131 -16
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +632 -12
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +24 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +12 -4
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -6
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +6 -2
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +11 -11
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +66 -22
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +9 -9
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +72 -24
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +18 -6
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +1 -1
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +44 -43
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +177 -55
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +2 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +18 -6
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +6 -2
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +6 -6
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +54 -18
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +6 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +2 -2
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +24 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +6 -2
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +60 -20
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +1 -1
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +6 -6
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +54 -18
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +2 -2
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +12 -4
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +7 -7
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +42 -14
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -3
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -3
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -3
- data/src/core/ext/upb-generated/validate/validate.upb.c +22 -22
- data/src/core/ext/upb-generated/validate/validate.upb.h +139 -47
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +23 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +27 -11
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +7 -3
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +6 -2
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +54 -18
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +12 -4
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +1 -1
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +6 -2
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +67 -274
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +0 -85
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +107 -107
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +156 -154
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +186 -183
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +136 -134
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +162 -139
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +39 -31
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +12 -8
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +72 -75
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +713 -670
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +150 -139
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +46 -25
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +477 -466
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +21 -18
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +153 -84
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +113 -113
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +29 -28
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +92 -90
- data/src/core/ext/xds/certificate_provider_store.cc +63 -3
- data/src/core/ext/xds/certificate_provider_store.h +9 -1
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +5 -5
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/upb_utils.h +0 -21
- data/src/core/ext/xds/xds_api.cc +73 -102
- data/src/core/ext/xds/xds_api.h +26 -28
- data/src/core/ext/xds/xds_bootstrap.cc +5 -550
- data/src/core/ext/xds/xds_bootstrap.h +39 -91
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +370 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.h +169 -0
- data/src/core/ext/xds/xds_certificate_provider.h +9 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +6 -4
- data/src/core/ext/xds/xds_channel_stack_modifier.h +8 -0
- data/src/core/ext/xds/xds_client.cc +732 -1317
- data/src/core/ext/xds/xds_client.h +33 -59
- data/src/core/ext/xds/xds_client_grpc.cc +229 -0
- data/src/core/ext/xds/xds_client_grpc.h +79 -0
- data/src/core/ext/xds/xds_client_stats.cc +4 -4
- data/src/core/ext/xds/xds_cluster.cc +162 -165
- data/src/core/ext/xds/xds_cluster.h +8 -7
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +12 -14
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -0
- data/src/core/ext/xds/xds_common_types.cc +140 -108
- data/src/core/ext/xds/xds_common_types.h +6 -7
- data/src/core/ext/xds/xds_endpoint.cc +87 -85
- data/src/core/ext/xds/xds_endpoint.h +4 -5
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -11
- data/src/core/ext/xds/xds_http_fault_filter.h +3 -3
- data/src/core/ext/xds/xds_http_filters.h +3 -3
- data/src/core/ext/xds/xds_http_rbac_filter.cc +39 -58
- data/src/core/ext/xds/xds_http_rbac_filter.h +3 -3
- data/src/core/ext/xds/xds_lb_policy_registry.cc +21 -22
- data/src/core/ext/xds/xds_lb_policy_registry.h +4 -4
- data/src/core/ext/xds/xds_listener.cc +348 -313
- data/src/core/ext/xds/xds_listener.h +4 -5
- data/src/core/ext/xds/xds_resource_type.h +23 -9
- data/src/core/ext/xds/xds_route_config.cc +193 -191
- data/src/core/ext/xds/xds_route_config.h +31 -17
- data/src/core/ext/xds/xds_routing.cc +3 -6
- data/src/core/ext/xds/xds_routing.h +7 -9
- data/src/core/ext/xds/xds_server_config_fetcher.cc +81 -84
- data/src/core/ext/xds/xds_transport.h +86 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +357 -0
- data/src/core/ext/xds/xds_transport_grpc.h +135 -0
- data/src/core/lib/address_utils/parse_address.cc +19 -17
- data/src/core/lib/address_utils/parse_address.h +8 -5
- data/src/core/lib/avl/avl.h +47 -25
- data/src/core/lib/backoff/backoff.cc +2 -4
- data/src/core/lib/channel/call_finalization.h +1 -3
- data/src/core/lib/channel/call_tracer.h +1 -1
- data/src/core/lib/channel/channel_args.cc +88 -19
- data/src/core/lib/channel/channel_args.h +218 -67
- data/src/core/lib/channel/channel_stack.cc +0 -1
- data/src/core/lib/channel/channel_stack_builder.cc +3 -3
- data/src/core/lib/channel/channel_stack_builder.h +2 -2
- data/src/core/lib/channel/channel_stack_builder_impl.cc +2 -4
- data/src/core/lib/channel/channel_trace.cc +3 -4
- data/src/core/lib/channel/channelz.cc +27 -37
- data/src/core/lib/channel/channelz.h +9 -0
- data/src/core/lib/channel/promise_based_filter.cc +18 -19
- data/src/core/lib/channel/promise_based_filter.h +0 -1
- data/src/core/lib/channel/status_util.cc +27 -0
- data/src/core/lib/channel/status_util.h +10 -0
- data/src/core/lib/config/core_configuration.cc +5 -1
- data/src/core/lib/config/core_configuration.h +81 -35
- data/src/core/lib/debug/stats.cc +39 -46
- data/src/core/lib/debug/stats.h +11 -13
- data/src/core/lib/debug/stats_data.cc +118 -614
- data/src/core/lib/debug/stats_data.h +67 -465
- data/src/core/lib/debug/trace.cc +0 -2
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +12 -20
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +13 -7
- data/src/core/lib/event_engine/{event_engine.cc → default_event_engine.cc} +9 -5
- data/src/core/lib/event_engine/{event_engine_factory.h → default_event_engine.h} +4 -8
- data/src/core/lib/event_engine/default_event_engine_factory.cc +20 -3
- data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
- data/src/core/lib/event_engine/executor/executor.h +38 -0
- data/src/core/lib/event_engine/executor/threaded_executor.cc +36 -0
- data/src/core/lib/event_engine/executor/threaded_executor.h +44 -0
- data/src/core/lib/event_engine/forkable.cc +101 -0
- data/src/core/lib/event_engine/forkable.h +61 -0
- data/src/core/lib/event_engine/poller.h +56 -0
- data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.cc → posix_engine/posix_engine.cc} +30 -47
- data/src/core/lib/event_engine/{iomgr_engine/iomgr_engine.h → posix_engine/posix_engine.h} +27 -28
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.cc +4 -5
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer.h +8 -8
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.cc +4 -4
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_heap.h +5 -5
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.cc +87 -30
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.h +40 -9
- data/src/core/lib/event_engine/socket_notifier.h +55 -0
- data/src/core/lib/event_engine/thread_pool.cc +195 -0
- data/src/core/lib/event_engine/thread_pool.h +114 -0
- data/src/core/lib/event_engine/time_util.cc +30 -0
- data/src/core/lib/event_engine/time_util.h +32 -0
- data/src/core/lib/event_engine/utils.cc +44 -0
- data/src/core/lib/event_engine/utils.h +36 -0
- data/src/core/lib/event_engine/windows/iocp.cc +155 -0
- data/src/core/lib/event_engine/windows/iocp.h +69 -0
- data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
- data/src/core/lib/event_engine/windows/win_socket.h +120 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +159 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +120 -0
- data/src/core/lib/experiments/config.cc +146 -0
- data/src/core/lib/experiments/config.h +43 -0
- data/src/core/lib/experiments/experiments.cc +75 -0
- data/src/core/lib/experiments/experiments.h +56 -0
- data/src/core/lib/gpr/alloc.cc +1 -9
- data/src/core/lib/gpr/log_windows.cc +0 -1
- data/src/core/lib/gpr/string_util_windows.cc +3 -30
- data/src/core/lib/gpr/sync_abseil.cc +0 -14
- data/src/core/lib/gpr/sync_posix.cc +0 -14
- data/src/core/lib/gpr/time.cc +11 -9
- data/src/core/lib/gpr/time_posix.cc +0 -6
- data/src/core/lib/gpr/time_precise.h +1 -1
- data/src/core/lib/gpr/tmpfile_windows.cc +5 -7
- data/src/core/lib/gpr/useful.h +40 -0
- data/src/core/lib/gprpp/bitset.h +3 -13
- data/src/core/lib/gprpp/debug_location.h +39 -7
- data/src/core/lib/{gpr → gprpp}/env.h +25 -12
- data/src/core/lib/{gpr → gprpp}/env_linux.cc +20 -15
- data/src/core/lib/{gpr → gprpp}/env_posix.cc +11 -10
- data/src/core/lib/gprpp/env_windows.cc +56 -0
- data/src/core/lib/gprpp/fork.cc +14 -22
- data/src/core/lib/gprpp/fork.h +0 -8
- data/src/core/lib/gprpp/global_config_env.cc +7 -6
- data/src/core/lib/gprpp/manual_constructor.h +0 -1
- data/src/core/lib/gprpp/no_destruct.h +94 -0
- data/src/core/lib/gprpp/notification.h +67 -0
- data/src/core/lib/gprpp/packed_table.h +40 -0
- data/src/core/lib/gprpp/ref_counted_ptr.h +20 -34
- data/src/core/lib/gprpp/sorted_pack.h +98 -0
- data/src/core/lib/gprpp/status_helper.cc +1 -0
- data/src/core/lib/gprpp/status_helper.h +6 -0
- data/src/core/lib/gprpp/table.h +9 -2
- data/src/core/lib/gprpp/tchar.cc +49 -0
- data/src/core/lib/gprpp/tchar.h +33 -0
- data/src/core/lib/gprpp/time.cc +21 -0
- data/src/core/lib/gprpp/time.h +55 -0
- data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.cc +3 -5
- data/src/core/lib/{event_engine/iomgr_engine → gprpp}/time_averaged_stats.h +5 -7
- data/src/core/lib/gprpp/validation_errors.cc +61 -0
- data/src/core/lib/gprpp/validation_errors.h +110 -0
- data/src/core/lib/{iomgr → gprpp}/work_serializer.cc +34 -18
- data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
- data/src/core/{ext/filters/client_channel → lib/handshaker}/proxy_mapper.h +16 -17
- data/src/core/lib/handshaker/proxy_mapper_registry.cc +71 -0
- data/src/core/lib/handshaker/proxy_mapper_registry.h +75 -0
- data/src/core/lib/http/httpcli.cc +12 -24
- data/src/core/lib/http/httpcli_security_connector.cc +11 -11
- data/src/core/lib/iomgr/call_combiner.cc +0 -34
- data/src/core/lib/iomgr/closure.h +0 -10
- data/src/core/lib/iomgr/combiner.cc +0 -20
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +14 -9
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +2 -2
- data/src/core/lib/iomgr/error.cc +0 -773
- data/src/core/lib/iomgr/error.h +0 -145
- data/src/core/lib/iomgr/error_cfstream.cc +0 -5
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +1 -38
- data/src/core/lib/iomgr/ev_poll_posix.cc +19 -26
- data/src/core/lib/iomgr/exec_ctx.cc +0 -22
- data/src/core/lib/iomgr/exec_ctx.h +7 -31
- data/src/core/lib/iomgr/executor.cc +0 -10
- data/src/core/lib/iomgr/executor.h +0 -3
- data/src/core/lib/iomgr/iocp_windows.cc +1 -2
- data/src/core/lib/iomgr/iomgr.cc +6 -8
- data/src/core/lib/iomgr/iomgr_fwd.h +1 -0
- data/src/core/lib/iomgr/lockfree_event.cc +0 -17
- data/src/core/lib/iomgr/pollset.h +1 -1
- data/src/core/lib/iomgr/pollset_set.h +0 -1
- data/src/core/lib/iomgr/port.h +3 -0
- data/src/core/lib/iomgr/resolve_address.h +30 -6
- data/src/core/lib/iomgr/resolve_address_impl.h +1 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +43 -8
- data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
- data/src/core/lib/iomgr/resolve_address_windows.cc +45 -10
- data/src/core/lib/iomgr/resolve_address_windows.h +19 -5
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +2 -1
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +12 -34
- data/src/core/lib/iomgr/socket_utils_posix.cc +83 -1
- data/src/core/lib/iomgr/socket_utils_posix.h +98 -6
- data/src/core/lib/iomgr/socket_windows.h +0 -2
- data/src/core/lib/iomgr/tcp_client.cc +6 -7
- data/src/core/lib/iomgr/tcp_client.h +11 -11
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +6 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +33 -29
- data/src/core/lib/iomgr/tcp_client_posix.h +12 -9
- data/src/core/lib/iomgr/tcp_client_windows.cc +6 -6
- data/src/core/lib/iomgr/tcp_posix.cc +249 -120
- data/src/core/lib/iomgr/tcp_posix.h +3 -1
- data/src/core/lib/iomgr/tcp_server.cc +5 -4
- data/src/core/lib/iomgr/tcp_server.h +9 -6
- data/src/core/lib/iomgr/tcp_server_posix.cc +17 -28
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +2 -2
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +3 -3
- data/src/core/lib/iomgr/tcp_server_windows.cc +6 -7
- data/src/core/lib/iomgr/tcp_windows.cc +0 -1
- data/src/core/lib/iomgr/tcp_windows.h +0 -1
- data/src/core/lib/iomgr/timer_generic.cc +10 -12
- data/src/core/lib/iomgr/timer_manager.cc +1 -2
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +0 -2
- data/src/core/lib/json/json.h +19 -22
- data/src/core/lib/json/json_args.h +34 -0
- data/src/core/lib/json/json_object_loader.cc +202 -0
- data/src/core/lib/json/json_object_loader.h +598 -0
- data/src/core/lib/json/json_reader.cc +86 -62
- data/src/core/lib/json/json_util.cc +9 -36
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.cc +3 -44
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy.h +20 -29
- data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +141 -0
- data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +6 -6
- data/src/core/lib/promise/activity.h +57 -10
- data/src/core/lib/promise/arena_promise.h +84 -81
- data/src/core/lib/promise/context.h +1 -2
- data/src/core/lib/promise/detail/basic_seq.h +43 -23
- data/src/core/lib/promise/detail/promise_factory.h +0 -1
- data/src/core/lib/promise/map.h +0 -1
- data/src/core/lib/promise/seq.h +25 -4
- data/src/core/lib/promise/sleep.cc +50 -42
- data/src/core/lib/promise/sleep.h +32 -23
- data/src/core/lib/promise/try_seq.h +26 -6
- data/src/core/lib/resolver/resolver.cc +0 -47
- data/src/core/lib/resolver/resolver.h +15 -15
- data/src/core/lib/resolver/resolver_factory.h +2 -3
- data/src/core/lib/resolver/resolver_registry.cc +1 -1
- data/src/core/lib/resolver/resolver_registry.h +2 -3
- data/src/core/lib/resolver/server_address.cc +11 -15
- data/src/core/lib/resolver/server_address.h +4 -8
- data/src/core/lib/resource_quota/api.cc +10 -1
- data/src/core/lib/resource_quota/api.h +6 -0
- data/src/core/lib/resource_quota/arena.cc +19 -1
- data/src/core/lib/resource_quota/arena.h +24 -2
- data/src/core/lib/resource_quota/memory_quota.cc +143 -19
- data/src/core/lib/resource_quota/memory_quota.h +85 -17
- data/src/core/lib/resource_quota/periodic_update.cc +78 -0
- data/src/core/lib/resource_quota/periodic_update.h +71 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +10 -7
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -2
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
- data/src/core/lib/security/authorization/matchers.cc +13 -10
- data/src/core/lib/security/authorization/rbac_policy.cc +0 -1
- data/src/core/{ext/xds → lib/security/certificate_provider}/certificate_provider_factory.h +3 -3
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +60 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +70 -0
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -3
- data/src/core/lib/security/credentials/alts/alts_credentials.h +3 -4
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +1 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +3 -7
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -4
- data/src/core/lib/security/credentials/credentials.h +16 -12
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +33 -27
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +34 -24
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -6
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +4 -6
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -12
- data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -4
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +5 -8
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +35 -32
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +1 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +0 -1
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +3 -3
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -4
- data/src/core/lib/security/credentials/jwt/json_token.cc +12 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +4 -8
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +14 -15
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +1 -1
- data/src/core/lib/security/credentials/local/local_credentials.cc +3 -4
- data/src/core/lib/security/credentials/local/local_credentials.h +3 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -20
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +0 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +13 -21
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +3 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +4 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +10 -2
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +13 -25
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -4
- data/src/core/lib/security/credentials/tls/tls_utils.cc +3 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +13 -30
- data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +10 -18
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +26 -38
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +6 -5
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +13 -11
- data/src/core/lib/security/security_connector/local/local_security_connector.h +2 -2
- data/src/core/lib/security/security_connector/security_connector.h +5 -3
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +5 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +5 -5
- data/src/core/lib/security/transport/auth_filters.h +1 -1
- data/src/core/lib/security/transport/client_auth_filter.cc +15 -5
- data/src/core/lib/security/transport/secure_endpoint.cc +0 -4
- data/src/core/lib/security/transport/security_handshaker.cc +32 -44
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/service_config/service_config.h +11 -0
- data/src/core/lib/service_config/service_config_impl.cc +98 -97
- data/src/core/lib/service_config/service_config_impl.h +11 -13
- data/src/core/lib/service_config/service_config_parser.cc +26 -27
- data/src/core/lib/service_config/service_config_parser.h +10 -22
- data/src/core/lib/slice/percent_encoding.cc +4 -13
- data/src/core/lib/slice/slice.cc +10 -4
- data/src/core/lib/surface/call.cc +9 -13
- data/src/core/lib/surface/channel.cc +9 -8
- data/src/core/lib/surface/channel.h +1 -1
- data/src/core/lib/surface/completion_queue.cc +16 -30
- data/src/core/lib/surface/completion_queue.h +1 -4
- data/src/core/lib/surface/completion_queue_factory.cc +5 -0
- data/src/core/lib/surface/init.cc +17 -16
- data/src/core/lib/surface/init_internally.cc +24 -0
- data/src/core/lib/surface/init_internally.h +28 -0
- data/src/core/lib/surface/lame_client.cc +2 -3
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +8 -19
- data/src/core/lib/surface/server.h +11 -13
- data/src/core/lib/surface/validate_metadata.cc +4 -14
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +1 -3
- data/src/core/lib/transport/connectivity_state.cc +0 -1
- data/src/core/lib/transport/connectivity_state.h +1 -1
- data/src/core/lib/transport/error_utils.cc +0 -36
- data/src/core/lib/transport/handshaker.cc +7 -9
- data/src/core/lib/transport/handshaker.h +4 -5
- data/src/core/lib/transport/handshaker_factory.h +2 -3
- data/src/core/lib/transport/handshaker_registry.cc +2 -1
- data/src/core/lib/transport/handshaker_registry.h +2 -4
- data/src/core/lib/transport/http_connect_handshaker.cc +16 -16
- data/src/core/lib/transport/metadata_batch.cc +7 -3
- data/src/core/lib/transport/metadata_batch.h +61 -14
- data/src/core/lib/transport/parsed_metadata.h +4 -3
- data/src/core/lib/transport/status_conversion.cc +1 -3
- data/src/core/lib/transport/tcp_connect_handshaker.cc +20 -22
- data/src/core/lib/transport/transport.h +0 -8
- data/src/core/lib/transport/transport_impl.h +0 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +23 -46
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +13 -25
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +40 -21
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +14 -7
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +1 -1
- data/src/core/tsi/fake_transport_security.cc +53 -30
- data/src/core/tsi/local_transport_security.cc +9 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +10 -1
- data/src/core/tsi/ssl_transport_security.cc +47 -23
- data/src/core/tsi/transport_security.cc +18 -6
- data/src/core/tsi/transport_security.h +2 -1
- data/src/core/tsi/transport_security_interface.h +17 -5
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_loader.c +6 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +4 -0
- data/src/ruby/spec/channel_spec.rb +5 -0
- data/src/ruby/spec/generic/server_interceptors_spec.rb +1 -1
- data/src/ruby/spec/user_agent_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
- data/third_party/upb/upb/arena.c +277 -0
- data/third_party/upb/upb/arena.h +225 -0
- data/third_party/upb/upb/array.c +114 -0
- data/third_party/upb/upb/array.h +83 -0
- data/third_party/upb/upb/collections.h +36 -0
- data/third_party/upb/upb/decode.c +161 -65
- data/third_party/upb/upb/decode.h +1 -0
- data/third_party/upb/upb/decode_fast.c +1 -1
- data/third_party/upb/upb/def.c +10 -2
- data/third_party/upb/upb/def.h +8 -1
- data/third_party/upb/upb/def.hpp +7 -4
- data/third_party/upb/upb/encode.c +29 -20
- data/third_party/upb/upb/encode.h +16 -6
- data/third_party/upb/upb/extension_registry.c +93 -0
- data/third_party/upb/upb/extension_registry.h +84 -0
- data/third_party/upb/upb/{decode_internal.h → internal/decode.h} +5 -5
- data/third_party/upb/upb/internal/table.h +385 -0
- data/third_party/upb/upb/{upb_internal.h → internal/upb.h} +3 -3
- data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
- data/third_party/upb/upb/json_decode.c +1512 -0
- data/third_party/upb/upb/json_decode.h +47 -0
- data/third_party/upb/upb/json_encode.c +7 -3
- data/third_party/upb/upb/json_encode.h +6 -3
- data/third_party/upb/upb/map.c +108 -0
- data/third_party/upb/upb/map.h +117 -0
- data/third_party/upb/upb/message_value.h +66 -0
- data/third_party/upb/upb/mini_table.c +1147 -0
- data/third_party/upb/upb/mini_table.h +189 -0
- data/third_party/upb/upb/mini_table.hpp +112 -0
- data/third_party/upb/upb/msg.c +2 -62
- data/third_party/upb/upb/msg.h +2 -45
- data/third_party/upb/upb/msg_internal.h +28 -22
- data/third_party/upb/upb/port_def.inc +2 -1
- data/third_party/upb/upb/port_undef.inc +1 -0
- data/third_party/upb/upb/reflection.c +2 -159
- data/third_party/upb/upb/reflection.h +2 -112
- data/third_party/upb/upb/status.c +86 -0
- data/third_party/upb/upb/status.h +66 -0
- data/third_party/upb/upb/table.c +2 -2
- data/third_party/upb/upb/table_internal.h +3 -352
- data/third_party/upb/upb/text_encode.c +3 -2
- data/third_party/upb/upb/upb.c +4 -290
- data/third_party/upb/upb/upb.h +7 -196
- metadata +117 -51
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +0 -190
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +0 -70
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -90
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +0 -55
- data/src/core/ext/xds/certificate_provider_registry.cc +0 -103
- data/src/core/ext/xds/certificate_provider_registry.h +0 -59
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.cc +0 -123
- data/src/core/lib/event_engine/iomgr_engine/thread_pool.h +0 -70
- data/src/core/lib/event_engine/promise.h +0 -69
- data/src/core/lib/gpr/env_windows.cc +0 -74
- data/src/core/lib/gpr/string_windows.h +0 -32
- data/src/core/lib/iomgr/error_internal.h +0 -66
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
- data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
- data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
- data/src/core/lib/iomgr/executor/threadpool.h +0 -150
- data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
- data/src/core/lib/profiling/basic_timers.cc +0 -295
- data/src/core/lib/profiling/stap_timers.cc +0 -50
- data/src/core/lib/profiling/timers.h +0 -94
- data/src/core/lib/promise/detail/switch.h +0 -1455
@@ -42,7 +42,6 @@
|
|
42
42
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
43
43
|
#include "src/core/lib/gprpp/sync.h"
|
44
44
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
45
|
-
#include "src/core/lib/promise/poll.h"
|
46
45
|
#include "src/core/lib/promise/promise.h"
|
47
46
|
#include "src/core/lib/surface/api_trace.h"
|
48
47
|
#include "src/core/lib/surface/channel.h"
|
@@ -61,8 +60,8 @@ const grpc_channel_filter LameClientFilter::kFilter =
|
|
61
60
|
MakePromiseBasedFilter<LameClientFilter, FilterEndpoint::kClient,
|
62
61
|
kFilterIsLast>("lame-client");
|
63
62
|
|
64
|
-
absl::StatusOr<LameClientFilter> LameClientFilter::Create(
|
65
|
-
|
63
|
+
absl::StatusOr<LameClientFilter> LameClientFilter::Create(
|
64
|
+
const ChannelArgs& args, ChannelFilter::Args) {
|
66
65
|
return LameClientFilter(
|
67
66
|
*args.GetPointer<absl::Status>(GRPC_ARG_LAME_FILTER_ERROR));
|
68
67
|
}
|
@@ -49,7 +49,7 @@ class LameClientFilter : public ChannelFilter {
|
|
49
49
|
static const grpc_channel_filter kFilter;
|
50
50
|
|
51
51
|
static absl::StatusOr<LameClientFilter> Create(
|
52
|
-
ChannelArgs args, ChannelFilter::Args filter_args);
|
52
|
+
const ChannelArgs& args, ChannelFilter::Args filter_args);
|
53
53
|
ArenaPromise<ServerMetadataHandle> MakeCallPromise(
|
54
54
|
CallArgs call_args, NextPromiseFactory next_promise_factory) override;
|
55
55
|
bool StartTransportOp(grpc_transport_op*) override;
|
@@ -45,7 +45,6 @@
|
|
45
45
|
#include "src/core/lib/channel/channel_trace.h"
|
46
46
|
#include "src/core/lib/channel/channelz.h"
|
47
47
|
#include "src/core/lib/config/core_configuration.h"
|
48
|
-
#include "src/core/lib/debug/stats.h"
|
49
48
|
#include "src/core/lib/gpr/useful.h"
|
50
49
|
#include "src/core/lib/gprpp/debug_location.h"
|
51
50
|
#include "src/core/lib/gprpp/mpscq.h"
|
@@ -80,7 +79,6 @@ struct Server::RequestedCall {
|
|
80
79
|
cq_bound_to_call(call_cq),
|
81
80
|
call(call_arg),
|
82
81
|
initial_metadata(initial_md) {
|
83
|
-
details->reserved = nullptr;
|
84
82
|
data.batch.details = details;
|
85
83
|
}
|
86
84
|
|
@@ -276,14 +274,12 @@ class Server::RealRequestMatcher : public RequestMatcherInterface {
|
|
276
274
|
RequestedCall* rc =
|
277
275
|
reinterpret_cast<RequestedCall*>(requests_per_cq_[cq_idx].TryPop());
|
278
276
|
if (rc != nullptr) {
|
279
|
-
GRPC_STATS_INC_SERVER_CQS_CHECKED(i);
|
280
277
|
calld->SetState(CallData::CallState::ACTIVATED);
|
281
278
|
calld->Publish(cq_idx, rc);
|
282
279
|
return;
|
283
280
|
}
|
284
281
|
}
|
285
282
|
// No cq to take the request found; queue it on the slow list.
|
286
|
-
GRPC_STATS_INC_SERVER_SLOWPATH_REQUESTS_QUEUED();
|
287
283
|
// We need to ensure that all the queues are empty. We do this under
|
288
284
|
// the server mu_call_ lock to ensure that if something is added to
|
289
285
|
// an empty request queue, it will block until the call is actually
|
@@ -307,7 +303,6 @@ class Server::RealRequestMatcher : public RequestMatcherInterface {
|
|
307
303
|
return;
|
308
304
|
}
|
309
305
|
}
|
310
|
-
GRPC_STATS_INC_SERVER_CQS_CHECKED(loop_count + requests_per_cq_.size());
|
311
306
|
calld->SetState(CallData::CallState::ACTIVATED);
|
312
307
|
calld->Publish(cq_idx, rc);
|
313
308
|
}
|
@@ -520,7 +515,8 @@ const grpc_channel_filter Server::kServerTopFilter = {
|
|
520
515
|
|
521
516
|
namespace {
|
522
517
|
|
523
|
-
RefCountedPtr<channelz::ServerNode> CreateChannelzNode(
|
518
|
+
RefCountedPtr<channelz::ServerNode> CreateChannelzNode(
|
519
|
+
const ChannelArgs& args) {
|
524
520
|
RefCountedPtr<channelz::ServerNode> channelz_node;
|
525
521
|
if (args.GetBool(GRPC_ARG_ENABLE_CHANNELZ)
|
526
522
|
.value_or(GRPC_ENABLE_CHANNELZ_DEFAULT)) {
|
@@ -538,11 +534,10 @@ RefCountedPtr<channelz::ServerNode> CreateChannelzNode(ChannelArgs args) {
|
|
538
534
|
|
539
535
|
} // namespace
|
540
536
|
|
541
|
-
Server::Server(ChannelArgs args)
|
542
|
-
: channel_args_(args
|
537
|
+
Server::Server(const ChannelArgs& args)
|
538
|
+
: channel_args_(args), channelz_node_(CreateChannelzNode(args)) {}
|
543
539
|
|
544
540
|
Server::~Server() {
|
545
|
-
grpc_channel_args_destroy(channel_args_);
|
546
541
|
// Remove the cq pollsets from the config_fetcher.
|
547
542
|
if (started_ && config_fetcher_ != nullptr &&
|
548
543
|
config_fetcher_->interested_parties() != nullptr) {
|
@@ -604,11 +599,11 @@ void Server::Start() {
|
|
604
599
|
|
605
600
|
grpc_error_handle Server::SetupTransport(
|
606
601
|
grpc_transport* transport, grpc_pollset* accepting_pollset,
|
607
|
-
const
|
602
|
+
const ChannelArgs& args,
|
608
603
|
const RefCountedPtr<channelz::SocketNode>& socket_node) {
|
609
604
|
// Create channel.
|
610
|
-
absl::StatusOr<RefCountedPtr<Channel>> channel =
|
611
|
-
nullptr,
|
605
|
+
absl::StatusOr<RefCountedPtr<Channel>> channel =
|
606
|
+
Channel::Create(nullptr, args, GRPC_SERVER_CHANNEL, transport);
|
612
607
|
if (!channel.ok()) {
|
613
608
|
return absl_status_to_grpc_error(channel.status());
|
614
609
|
}
|
@@ -795,7 +790,7 @@ void DonePublishedShutdown(void* /*done_arg*/, grpc_cq_completion* storage) {
|
|
795
790
|
// connection is NOT closed until the server is done with all those calls.
|
796
791
|
// -- Once there are no more calls in progress, the channel is closed.
|
797
792
|
void Server::ShutdownAndNotify(grpc_completion_queue* cq, void* tag) {
|
798
|
-
|
793
|
+
Notification* await_requests = nullptr;
|
799
794
|
ChannelBroadcaster broadcaster;
|
800
795
|
{
|
801
796
|
// Wait for startup to be finished. Locks mu_global.
|
@@ -1250,7 +1245,6 @@ void Server::CallData::Publish(size_t cq_idx, RequestedCall* rc) {
|
|
1250
1245
|
grpc_slice_ref_internal(path_->c_slice());
|
1251
1246
|
rc->data.batch.details->deadline =
|
1252
1247
|
deadline_.as_timespec(GPR_CLOCK_MONOTONIC);
|
1253
|
-
rc->data.batch.details->flags = recv_initial_metadata_flags_;
|
1254
1248
|
break;
|
1255
1249
|
case RequestedCall::Type::REGISTERED_CALL:
|
1256
1250
|
*rc->data.registered.deadline =
|
@@ -1349,15 +1343,12 @@ void Server::CallData::RecvInitialMetadataBatchComplete(
|
|
1349
1343
|
void Server::CallData::StartTransportStreamOpBatchImpl(
|
1350
1344
|
grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
|
1351
1345
|
if (batch->recv_initial_metadata) {
|
1352
|
-
GPR_ASSERT(batch->payload->recv_initial_metadata.recv_flags == nullptr);
|
1353
1346
|
recv_initial_metadata_ =
|
1354
1347
|
batch->payload->recv_initial_metadata.recv_initial_metadata;
|
1355
1348
|
original_recv_initial_metadata_ready_ =
|
1356
1349
|
batch->payload->recv_initial_metadata.recv_initial_metadata_ready;
|
1357
1350
|
batch->payload->recv_initial_metadata.recv_initial_metadata_ready =
|
1358
1351
|
&recv_initial_metadata_ready_;
|
1359
|
-
batch->payload->recv_initial_metadata.recv_flags =
|
1360
|
-
&recv_initial_metadata_flags_;
|
1361
1352
|
}
|
1362
1353
|
if (batch->recv_trailing_metadata) {
|
1363
1354
|
original_recv_trailing_metadata_ready_ =
|
@@ -1530,7 +1521,6 @@ grpc_call_error grpc_server_request_call(
|
|
1530
1521
|
grpc_completion_queue* cq_for_notification, void* tag) {
|
1531
1522
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
1532
1523
|
grpc_core::ExecCtx exec_ctx;
|
1533
|
-
GRPC_STATS_INC_SERVER_REQUESTED_CALLS();
|
1534
1524
|
GRPC_API_TRACE(
|
1535
1525
|
"grpc_server_request_call("
|
1536
1526
|
"server=%p, call=%p, details=%p, initial_metadata=%p, "
|
@@ -1551,7 +1541,6 @@ grpc_call_error grpc_server_request_registered_call(
|
|
1551
1541
|
grpc_completion_queue* cq_for_notification, void* tag_new) {
|
1552
1542
|
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
1553
1543
|
grpc_core::ExecCtx exec_ctx;
|
1554
|
-
GRPC_STATS_INC_SERVER_REQUESTED_CALLS();
|
1555
1544
|
auto* rm =
|
1556
1545
|
static_cast<grpc_core::Server::RegisteredMethod*>(registered_method);
|
1557
1546
|
GRPC_API_TRACE(
|
@@ -33,7 +33,6 @@
|
|
33
33
|
#include "absl/base/thread_annotations.h"
|
34
34
|
#include "absl/memory/memory.h"
|
35
35
|
#include "absl/status/statusor.h"
|
36
|
-
#include "absl/synchronization/notification.h"
|
37
36
|
#include "absl/types/optional.h"
|
38
37
|
|
39
38
|
#include <grpc/grpc.h>
|
@@ -49,6 +48,7 @@
|
|
49
48
|
#include "src/core/lib/debug/trace.h"
|
50
49
|
#include "src/core/lib/gprpp/cpp_impl_of.h"
|
51
50
|
#include "src/core/lib/gprpp/dual_ref_counted.h"
|
51
|
+
#include "src/core/lib/gprpp/notification.h"
|
52
52
|
#include "src/core/lib/gprpp/orphanable.h"
|
53
53
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
54
54
|
#include "src/core/lib/gprpp/sync.h"
|
@@ -58,7 +58,6 @@
|
|
58
58
|
#include "src/core/lib/iomgr/endpoint.h"
|
59
59
|
#include "src/core/lib/iomgr/error.h"
|
60
60
|
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
61
|
-
#include "src/core/lib/iomgr/pollset.h"
|
62
61
|
#include "src/core/lib/slice/slice.h"
|
63
62
|
#include "src/core/lib/surface/channel.h"
|
64
63
|
#include "src/core/lib/surface/completion_queue.h"
|
@@ -124,12 +123,12 @@ class Server : public InternallyRefCounted<Server>,
|
|
124
123
|
virtual void SetOnDestroyDone(grpc_closure* on_destroy_done) = 0;
|
125
124
|
};
|
126
125
|
|
127
|
-
explicit Server(ChannelArgs args);
|
126
|
+
explicit Server(const ChannelArgs& args);
|
128
127
|
~Server() override;
|
129
128
|
|
130
129
|
void Orphan() ABSL_LOCKS_EXCLUDED(mu_global_) override;
|
131
130
|
|
132
|
-
const
|
131
|
+
const ChannelArgs& channel_args() const { return channel_args_; }
|
133
132
|
channelz::ServerNode* channelz_node() const { return channelz_node_.get(); }
|
134
133
|
|
135
134
|
// Do not call this before Start(). Returns the pollsets. The
|
@@ -161,7 +160,7 @@ class Server : public InternallyRefCounted<Server>,
|
|
161
160
|
// Takes ownership of a ref on resource_user from the caller.
|
162
161
|
grpc_error_handle SetupTransport(
|
163
162
|
grpc_transport* transport, grpc_pollset* accepting_pollset,
|
164
|
-
const
|
163
|
+
const ChannelArgs& args,
|
165
164
|
const RefCountedPtr<channelz::SocketNode>& socket_node);
|
166
165
|
|
167
166
|
void RegisterCompletionQueue(grpc_completion_queue* cq);
|
@@ -341,7 +340,6 @@ class Server : public InternallyRefCounted<Server>,
|
|
341
340
|
grpc_closure recv_initial_metadata_batch_complete_;
|
342
341
|
|
343
342
|
grpc_metadata_batch* recv_initial_metadata_ = nullptr;
|
344
|
-
uint32_t recv_initial_metadata_flags_ = 0;
|
345
343
|
grpc_closure recv_initial_metadata_ready_;
|
346
344
|
grpc_closure* original_recv_initial_metadata_ready_;
|
347
345
|
grpc_error_handle recv_initial_metadata_error_ = GRPC_ERROR_NONE;
|
@@ -421,14 +419,14 @@ class Server : public InternallyRefCounted<Server>,
|
|
421
419
|
}
|
422
420
|
// Returns a notification pointer to wait on if there are requests in-flight,
|
423
421
|
// or null.
|
424
|
-
|
422
|
+
Notification* ShutdownUnrefOnShutdownCall()
|
425
423
|
ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_global_) GRPC_MUST_USE_RESULT {
|
426
424
|
if (shutdown_refs_.fetch_sub(1, std::memory_order_acq_rel) == 1) {
|
427
425
|
// There is no request in-flight.
|
428
426
|
MaybeFinishShutdown();
|
429
427
|
return nullptr;
|
430
428
|
}
|
431
|
-
requests_complete_ = absl::make_unique<
|
429
|
+
requests_complete_ = absl::make_unique<Notification>();
|
432
430
|
return requests_complete_.get();
|
433
431
|
}
|
434
432
|
|
@@ -443,7 +441,7 @@ class Server : public InternallyRefCounted<Server>,
|
|
443
441
|
return shutdown_refs_.load(std::memory_order_acquire) == 0;
|
444
442
|
}
|
445
443
|
|
446
|
-
|
444
|
+
ChannelArgs const channel_args_;
|
447
445
|
RefCountedPtr<channelz::ServerNode> channelz_node_;
|
448
446
|
std::unique_ptr<grpc_server_config_fetcher> config_fetcher_;
|
449
447
|
|
@@ -480,8 +478,7 @@ class Server : public InternallyRefCounted<Server>,
|
|
480
478
|
std::atomic<int> shutdown_refs_{1};
|
481
479
|
bool shutdown_published_ ABSL_GUARDED_BY(mu_global_) = false;
|
482
480
|
std::vector<ShutdownTag> shutdown_tags_ ABSL_GUARDED_BY(mu_global_);
|
483
|
-
std::unique_ptr<
|
484
|
-
ABSL_GUARDED_BY(mu_global_);
|
481
|
+
std::unique_ptr<Notification> requests_complete_ ABSL_GUARDED_BY(mu_global_);
|
485
482
|
|
486
483
|
std::list<ChannelData*> channels_;
|
487
484
|
|
@@ -500,8 +497,9 @@ struct grpc_server_config_fetcher {
|
|
500
497
|
: public grpc_core::DualRefCounted<ConnectionManager> {
|
501
498
|
public:
|
502
499
|
// Ownership of \a args is transfered.
|
503
|
-
virtual absl::StatusOr<
|
504
|
-
|
500
|
+
virtual absl::StatusOr<grpc_core::ChannelArgs>
|
501
|
+
UpdateChannelArgsForConnection(const grpc_core::ChannelArgs& args,
|
502
|
+
grpc_endpoint* tcp) = 0;
|
505
503
|
};
|
506
504
|
|
507
505
|
class WatcherInterface {
|
@@ -29,14 +29,6 @@
|
|
29
29
|
#include "src/core/lib/gprpp/memory.h"
|
30
30
|
#include "src/core/lib/iomgr/error.h"
|
31
31
|
|
32
|
-
#if __cplusplus > 201103l
|
33
|
-
#define GRPC_VALIDATE_METADATA_CONSTEXPR_FN constexpr
|
34
|
-
#define GRPC_VALIDATE_METADATA_CONSTEXPR_VALUE constexpr
|
35
|
-
#else
|
36
|
-
#define GRPC_VALIDATE_METADATA_CONSTEXPR_FN
|
37
|
-
#define GRPC_VALIDATE_METADATA_CONSTEXPR_VALUE const
|
38
|
-
#endif
|
39
|
-
|
40
32
|
static grpc_error_handle conforms_to(const grpc_slice& slice,
|
41
33
|
const grpc_core::BitSet<256>& legal_bits,
|
42
34
|
const char* err_desc) {
|
@@ -68,7 +60,7 @@ static int error2int(grpc_error_handle error) {
|
|
68
60
|
namespace {
|
69
61
|
class LegalHeaderKeyBits : public grpc_core::BitSet<256> {
|
70
62
|
public:
|
71
|
-
|
63
|
+
constexpr LegalHeaderKeyBits() {
|
72
64
|
for (int i = 'a'; i <= 'z'; i++) set(i);
|
73
65
|
for (int i = '0'; i <= '9'; i++) set(i);
|
74
66
|
set('-');
|
@@ -76,8 +68,7 @@ class LegalHeaderKeyBits : public grpc_core::BitSet<256> {
|
|
76
68
|
set('.');
|
77
69
|
}
|
78
70
|
};
|
79
|
-
|
80
|
-
g_legal_header_key_bits;
|
71
|
+
constexpr LegalHeaderKeyBits g_legal_header_key_bits;
|
81
72
|
} // namespace
|
82
73
|
|
83
74
|
grpc_error_handle grpc_validate_header_key_is_legal(const grpc_slice& slice) {
|
@@ -103,14 +94,13 @@ int grpc_header_key_is_legal(grpc_slice slice) {
|
|
103
94
|
namespace {
|
104
95
|
class LegalHeaderNonBinValueBits : public grpc_core::BitSet<256> {
|
105
96
|
public:
|
106
|
-
|
97
|
+
constexpr LegalHeaderNonBinValueBits() {
|
107
98
|
for (int i = 32; i <= 126; i++) {
|
108
99
|
set(i);
|
109
100
|
}
|
110
101
|
}
|
111
102
|
};
|
112
|
-
|
113
|
-
g_legal_header_non_bin_value_bits;
|
103
|
+
constexpr LegalHeaderNonBinValueBits g_legal_header_non_bin_value_bits;
|
114
104
|
} // namespace
|
115
105
|
|
116
106
|
grpc_error_handle grpc_validate_header_nonbin_value_is_legal(
|
@@ -23,6 +23,6 @@
|
|
23
23
|
|
24
24
|
#include <grpc/grpc.h>
|
25
25
|
|
26
|
-
const char* grpc_version_string(void) { return "
|
26
|
+
const char* grpc_version_string(void) { return "28.0.0"; }
|
27
27
|
|
28
|
-
const char* grpc_g_stands_for(void) { return "
|
28
|
+
const char* grpc_g_stands_for(void) { return "galley"; }
|
@@ -25,8 +25,6 @@
|
|
25
25
|
|
26
26
|
#include <algorithm>
|
27
27
|
|
28
|
-
#include "src/core/lib/iomgr/exec_ctx.h"
|
29
|
-
|
30
28
|
grpc_core::TraceFlag grpc_bdp_estimator_trace(false, "bdp_estimator");
|
31
29
|
|
32
30
|
namespace grpc_core {
|
@@ -82,7 +80,7 @@ Timestamp BdpEstimator::CompletePing() {
|
|
82
80
|
}
|
83
81
|
ping_state_ = PingState::UNSCHEDULED;
|
84
82
|
accumulator_ = 0;
|
85
|
-
return
|
83
|
+
return Timestamp::Now() + inter_ping_delay_;
|
86
84
|
}
|
87
85
|
|
88
86
|
} // namespace grpc_core
|
@@ -31,10 +31,6 @@
|
|
31
31
|
#include "src/core/lib/gprpp/status_helper.h"
|
32
32
|
#include "src/core/lib/transport/status_conversion.h"
|
33
33
|
|
34
|
-
#ifndef GRPC_ERROR_IS_ABSEIL_STATUS
|
35
|
-
#include "src/core/lib/iomgr/error_internal.h"
|
36
|
-
#endif
|
37
|
-
|
38
34
|
static grpc_error_handle recursively_find_error_with_field(
|
39
35
|
grpc_error_handle error, grpc_error_ints which) {
|
40
36
|
intptr_t unused;
|
@@ -42,25 +38,11 @@ static grpc_error_handle recursively_find_error_with_field(
|
|
42
38
|
if (grpc_error_get_int(error, which, &unused)) {
|
43
39
|
return error;
|
44
40
|
}
|
45
|
-
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
46
41
|
std::vector<absl::Status> children = grpc_core::StatusGetChildren(error);
|
47
42
|
for (const absl::Status& child : children) {
|
48
43
|
grpc_error_handle result = recursively_find_error_with_field(child, which);
|
49
44
|
if (!GRPC_ERROR_IS_NONE(result)) return result;
|
50
45
|
}
|
51
|
-
#else
|
52
|
-
if (grpc_error_is_special(error)) return GRPC_ERROR_NONE;
|
53
|
-
// Otherwise, search through its children.
|
54
|
-
uint8_t slot = error->first_err;
|
55
|
-
while (slot != UINT8_MAX) {
|
56
|
-
grpc_linked_error* lerr =
|
57
|
-
reinterpret_cast<grpc_linked_error*>(error->arena + slot);
|
58
|
-
grpc_error_handle result =
|
59
|
-
recursively_find_error_with_field(lerr->err, which);
|
60
|
-
if (result) return result;
|
61
|
-
slot = lerr->next;
|
62
|
-
}
|
63
|
-
#endif
|
64
46
|
return GRPC_ERROR_NONE;
|
65
47
|
}
|
66
48
|
|
@@ -113,9 +95,7 @@ void grpc_error_get_status(grpc_error_handle error,
|
|
113
95
|
status = grpc_http2_error_to_grpc_status(
|
114
96
|
static_cast<grpc_http2_error_code>(integer), deadline);
|
115
97
|
} else {
|
116
|
-
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
117
98
|
status = static_cast<grpc_status_code>(found_error.code());
|
118
|
-
#endif
|
119
99
|
}
|
120
100
|
if (code != nullptr) *code = status;
|
121
101
|
|
@@ -143,11 +123,7 @@ void grpc_error_get_status(grpc_error_handle error,
|
|
143
123
|
message)) {
|
144
124
|
if (!grpc_error_get_str(found_error, GRPC_ERROR_STR_DESCRIPTION,
|
145
125
|
message)) {
|
146
|
-
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
147
126
|
*message = grpc_error_std_string(error);
|
148
|
-
#else
|
149
|
-
*message = "unknown error";
|
150
|
-
#endif
|
151
127
|
}
|
152
128
|
}
|
153
129
|
}
|
@@ -179,23 +155,11 @@ bool grpc_error_has_clear_grpc_status(grpc_error_handle error) {
|
|
179
155
|
if (grpc_error_get_int(error, GRPC_ERROR_INT_GRPC_STATUS, &unused)) {
|
180
156
|
return true;
|
181
157
|
}
|
182
|
-
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
183
158
|
std::vector<absl::Status> children = grpc_core::StatusGetChildren(error);
|
184
159
|
for (const absl::Status& child : children) {
|
185
160
|
if (grpc_error_has_clear_grpc_status(child)) {
|
186
161
|
return true;
|
187
162
|
}
|
188
163
|
}
|
189
|
-
#else
|
190
|
-
uint8_t slot = error->first_err;
|
191
|
-
while (slot != UINT8_MAX) {
|
192
|
-
grpc_linked_error* lerr =
|
193
|
-
reinterpret_cast<grpc_linked_error*>(error->arena + slot);
|
194
|
-
if (grpc_error_has_clear_grpc_status(lerr->err)) {
|
195
|
-
return true;
|
196
|
-
}
|
197
|
-
slot = lerr->next;
|
198
|
-
}
|
199
|
-
#endif
|
200
164
|
return false;
|
201
165
|
}
|
@@ -27,6 +27,7 @@
|
|
27
27
|
|
28
28
|
#include "absl/strings/str_format.h"
|
29
29
|
|
30
|
+
#include <grpc/impl/codegen/grpc_types.h>
|
30
31
|
#include <grpc/slice_buffer.h>
|
31
32
|
#include <grpc/support/alloc.h>
|
32
33
|
#include <grpc/support/log.h>
|
@@ -45,14 +46,12 @@ TraceFlag grpc_handshaker_trace(false, "handshaker");
|
|
45
46
|
namespace {
|
46
47
|
|
47
48
|
std::string HandshakerArgsString(HandshakerArgs* args) {
|
48
|
-
size_t num_args = args->args != nullptr ? args->args->num_args : 0;
|
49
49
|
size_t read_buffer_length =
|
50
50
|
args->read_buffer != nullptr ? args->read_buffer->length : 0;
|
51
51
|
return absl::StrFormat(
|
52
|
-
"{endpoint=%p, args=%p
|
53
|
-
"
|
54
|
-
args->endpoint, args->args,
|
55
|
-
grpc_channel_args_string(args->args), args->read_buffer,
|
52
|
+
"{endpoint=%p, args=%s, read_buffer=%p (length=%" PRIuPTR
|
53
|
+
"), exit_early=%d}",
|
54
|
+
args->endpoint, args->args.ToString(), args->read_buffer,
|
56
55
|
read_buffer_length, args->exit_early);
|
57
56
|
}
|
58
57
|
|
@@ -115,8 +114,7 @@ bool HandshakeManager::CallNextHandshakerLocked(grpc_error_handle error) {
|
|
115
114
|
grpc_endpoint_shutdown(args_.endpoint, GRPC_ERROR_REF(error));
|
116
115
|
grpc_endpoint_destroy(args_.endpoint);
|
117
116
|
args_.endpoint = nullptr;
|
118
|
-
|
119
|
-
args_.args = nullptr;
|
117
|
+
args_.args = ChannelArgs();
|
120
118
|
grpc_slice_buffer_destroy_internal(args_.read_buffer);
|
121
119
|
gpr_free(args_.read_buffer);
|
122
120
|
args_.read_buffer = nullptr;
|
@@ -172,7 +170,7 @@ void HandshakeManager::OnTimeoutFn(void* arg, grpc_error_handle error) {
|
|
172
170
|
}
|
173
171
|
|
174
172
|
void HandshakeManager::DoHandshake(grpc_endpoint* endpoint,
|
175
|
-
const
|
173
|
+
const ChannelArgs& channel_args,
|
176
174
|
Timestamp deadline,
|
177
175
|
grpc_tcp_server_acceptor* acceptor,
|
178
176
|
grpc_iomgr_cb_func on_handshake_done,
|
@@ -185,7 +183,7 @@ void HandshakeManager::DoHandshake(grpc_endpoint* endpoint,
|
|
185
183
|
// handshakers and eventually be freed by the on_handshake_done callback.
|
186
184
|
args_.endpoint = endpoint;
|
187
185
|
args_.deadline = deadline;
|
188
|
-
args_.args =
|
186
|
+
args_.args = channel_args;
|
189
187
|
args_.user_data = user_data;
|
190
188
|
args_.read_buffer =
|
191
189
|
static_cast<grpc_slice_buffer*>(gpr_malloc(sizeof(*args_.read_buffer)));
|
@@ -25,9 +25,9 @@
|
|
25
25
|
|
26
26
|
#include "absl/container/inlined_vector.h"
|
27
27
|
|
28
|
-
#include <grpc/impl/codegen/grpc_types.h>
|
29
28
|
#include <grpc/slice.h>
|
30
29
|
|
30
|
+
#include "src/core/lib/channel/channel_args.h"
|
31
31
|
#include "src/core/lib/gprpp/ref_counted.h"
|
32
32
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
33
33
|
#include "src/core/lib/gprpp/sync.h"
|
@@ -63,7 +63,7 @@ namespace grpc_core {
|
|
63
63
|
/// which the callback takes ownership of.
|
64
64
|
struct HandshakerArgs {
|
65
65
|
grpc_endpoint* endpoint = nullptr;
|
66
|
-
|
66
|
+
ChannelArgs args;
|
67
67
|
grpc_slice_buffer* read_buffer = nullptr;
|
68
68
|
// A handshaker may set this to true before invoking on_handshake_done
|
69
69
|
// to indicate that subsequent handshakers should be skipped.
|
@@ -120,9 +120,8 @@ class HandshakeManager : public RefCounted<HandshakeManager> {
|
|
120
120
|
/// GRPC_ERROR_NONE, then handshaking failed and the handshaker has done
|
121
121
|
/// the necessary clean-up. Otherwise, the callback takes ownership of
|
122
122
|
/// the arguments.
|
123
|
-
void DoHandshake(grpc_endpoint* endpoint,
|
124
|
-
|
125
|
-
grpc_tcp_server_acceptor* acceptor,
|
123
|
+
void DoHandshake(grpc_endpoint* endpoint, const ChannelArgs& channel_args,
|
124
|
+
Timestamp deadline, grpc_tcp_server_acceptor* acceptor,
|
126
125
|
grpc_iomgr_cb_func on_handshake_done, void* user_data);
|
127
126
|
|
128
127
|
private:
|
@@ -21,8 +21,7 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include
|
25
|
-
|
24
|
+
#include "src/core/lib/channel/channel_args.h"
|
26
25
|
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
27
26
|
|
28
27
|
// A handshaker factory is used to create handshakers.
|
@@ -38,7 +37,7 @@ class HandshakeManager;
|
|
38
37
|
|
39
38
|
class HandshakerFactory {
|
40
39
|
public:
|
41
|
-
virtual void AddHandshakers(const
|
40
|
+
virtual void AddHandshakers(const ChannelArgs& args,
|
42
41
|
grpc_pollset_set* interested_parties,
|
43
42
|
HandshakeManager* handshake_mgr) = 0;
|
44
43
|
virtual ~HandshakerFactory() = default;
|
@@ -22,6 +22,7 @@
|
|
22
22
|
|
23
23
|
#include <stddef.h>
|
24
24
|
|
25
|
+
#include <algorithm>
|
25
26
|
#include <utility>
|
26
27
|
|
27
28
|
namespace grpc_core {
|
@@ -43,7 +44,7 @@ HandshakerRegistry HandshakerRegistry::Builder::Build() {
|
|
43
44
|
}
|
44
45
|
|
45
46
|
void HandshakerRegistry::AddHandshakers(HandshakerType handshaker_type,
|
46
|
-
const
|
47
|
+
const ChannelArgs& args,
|
47
48
|
grpc_pollset_set* interested_parties,
|
48
49
|
HandshakeManager* handshake_mgr) const {
|
49
50
|
for (const auto& factory : factories_[handshaker_type]) {
|
@@ -24,8 +24,7 @@
|
|
24
24
|
#include <memory>
|
25
25
|
#include <vector>
|
26
26
|
|
27
|
-
#include
|
28
|
-
|
27
|
+
#include "src/core/lib/channel/channel_args.h"
|
29
28
|
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
30
29
|
#include "src/core/lib/transport/handshaker_factory.h"
|
31
30
|
|
@@ -55,8 +54,7 @@ class HandshakerRegistry {
|
|
55
54
|
factories_[NUM_HANDSHAKER_TYPES];
|
56
55
|
};
|
57
56
|
|
58
|
-
void AddHandshakers(HandshakerType handshaker_type,
|
59
|
-
const grpc_channel_args* args,
|
57
|
+
void AddHandshakers(HandshakerType handshaker_type, const ChannelArgs& args,
|
60
58
|
grpc_pollset_set* interested_parties,
|
61
59
|
HandshakeManager* handshake_mgr) const;
|
62
60
|
|
@@ -30,8 +30,8 @@
|
|
30
30
|
#include "absl/memory/memory.h"
|
31
31
|
#include "absl/strings/str_cat.h"
|
32
32
|
#include "absl/strings/string_view.h"
|
33
|
+
#include "absl/types/optional.h"
|
33
34
|
|
34
|
-
#include <grpc/impl/codegen/grpc_types.h>
|
35
35
|
#include <grpc/slice.h>
|
36
36
|
#include <grpc/slice_buffer.h>
|
37
37
|
#include <grpc/support/alloc.h>
|
@@ -118,8 +118,7 @@ void HttpConnectHandshaker::CleanupArgsForFailureLocked() {
|
|
118
118
|
args_->endpoint = nullptr;
|
119
119
|
read_buffer_to_destroy_ = args_->read_buffer;
|
120
120
|
args_->read_buffer = nullptr;
|
121
|
-
|
122
|
-
args_->args = nullptr;
|
121
|
+
args_->args = ChannelArgs();
|
123
122
|
}
|
124
123
|
|
125
124
|
// If the handshake failed or we're shutting down, clean up and invoke the
|
@@ -297,10 +296,9 @@ void HttpConnectHandshaker::DoHandshake(grpc_tcp_server_acceptor* /*acceptor*/,
|
|
297
296
|
HandshakerArgs* args) {
|
298
297
|
// Check for HTTP CONNECT channel arg.
|
299
298
|
// If not found, invoke on_handshake_done without doing anything.
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
if (server_name == nullptr) {
|
299
|
+
absl::optional<absl::string_view> server_name =
|
300
|
+
args->args.GetString(GRPC_ARG_HTTP_CONNECT_SERVER);
|
301
|
+
if (!server_name.has_value()) {
|
304
302
|
// Set shutdown to true so that subsequent calls to
|
305
303
|
// http_connect_handshaker_shutdown() do nothing.
|
306
304
|
{
|
@@ -311,14 +309,15 @@ void HttpConnectHandshaker::DoHandshake(grpc_tcp_server_acceptor* /*acceptor*/,
|
|
311
309
|
return;
|
312
310
|
}
|
313
311
|
// Get headers from channel args.
|
314
|
-
|
315
|
-
|
312
|
+
absl::optional<absl::string_view> arg_header_string =
|
313
|
+
args->args.GetString(GRPC_ARG_HTTP_CONNECT_HEADERS);
|
316
314
|
grpc_http_header* headers = nullptr;
|
317
315
|
size_t num_headers = 0;
|
318
316
|
char** header_strings = nullptr;
|
319
317
|
size_t num_header_strings = 0;
|
320
|
-
if (arg_header_string
|
321
|
-
|
318
|
+
if (arg_header_string.has_value()) {
|
319
|
+
std::string buffer(*arg_header_string);
|
320
|
+
gpr_string_split(buffer.c_str(), "\n", &header_strings,
|
322
321
|
&num_header_strings);
|
323
322
|
headers = static_cast<grpc_http_header*>(
|
324
323
|
gpr_malloc(sizeof(grpc_http_header) * num_header_strings));
|
@@ -342,8 +341,9 @@ void HttpConnectHandshaker::DoHandshake(grpc_tcp_server_acceptor* /*acceptor*/,
|
|
342
341
|
on_handshake_done_ = on_handshake_done;
|
343
342
|
// Log connection via proxy.
|
344
343
|
std::string proxy_name(grpc_endpoint_get_peer(args->endpoint));
|
345
|
-
|
346
|
-
|
344
|
+
std::string server_name_string(*server_name);
|
345
|
+
gpr_log(GPR_INFO, "Connecting to server %s via HTTP proxy %s",
|
346
|
+
server_name_string.c_str(), proxy_name.c_str());
|
347
347
|
// Construct HTTP CONNECT request.
|
348
348
|
grpc_http_request request;
|
349
349
|
request.method = const_cast<char*>("CONNECT");
|
@@ -352,8 +352,8 @@ void HttpConnectHandshaker::DoHandshake(grpc_tcp_server_acceptor* /*acceptor*/,
|
|
352
352
|
request.hdr_count = num_headers;
|
353
353
|
request.body_length = 0;
|
354
354
|
request.body = nullptr;
|
355
|
-
grpc_slice request_slice =
|
356
|
-
|
355
|
+
grpc_slice request_slice = grpc_httpcli_format_connect_request(
|
356
|
+
&request, server_name_string.c_str(), server_name_string.c_str());
|
357
357
|
grpc_slice_buffer_add(&write_buffer_, request_slice);
|
358
358
|
// Clean up.
|
359
359
|
gpr_free(headers);
|
@@ -382,7 +382,7 @@ HttpConnectHandshaker::HttpConnectHandshaker() {
|
|
382
382
|
|
383
383
|
class HttpConnectHandshakerFactory : public HandshakerFactory {
|
384
384
|
public:
|
385
|
-
void AddHandshakers(const
|
385
|
+
void AddHandshakers(const ChannelArgs& /*args*/,
|
386
386
|
grpc_pollset_set* /*interested_parties*/,
|
387
387
|
HandshakeManager* handshake_mgr) override {
|
388
388
|
handshake_mgr->Add(MakeRefCounted<HttpConnectHandshaker>());
|