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
@@ -21,7 +21,6 @@
|
|
21
21
|
#include "src/core/ext/transport/chttp2/server/chttp2_server.h"
|
22
22
|
|
23
23
|
#include <inttypes.h>
|
24
|
-
#include <limits.h>
|
25
24
|
#include <string.h>
|
26
25
|
|
27
26
|
#include <algorithm>
|
@@ -39,13 +38,13 @@
|
|
39
38
|
#include "absl/strings/str_format.h"
|
40
39
|
#include "absl/strings/string_view.h"
|
41
40
|
#include "absl/strings/strip.h"
|
41
|
+
#include "absl/types/optional.h"
|
42
42
|
|
43
43
|
#include <grpc/grpc.h>
|
44
44
|
#include <grpc/grpc_posix.h>
|
45
45
|
#include <grpc/impl/codegen/grpc_types.h>
|
46
46
|
#include <grpc/support/alloc.h>
|
47
47
|
#include <grpc/support/log.h>
|
48
|
-
#include <grpc/support/time.h>
|
49
48
|
|
50
49
|
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
|
51
50
|
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
@@ -55,7 +54,7 @@
|
|
55
54
|
#include "src/core/lib/channel/channelz.h"
|
56
55
|
#include "src/core/lib/config/core_configuration.h"
|
57
56
|
#include "src/core/lib/debug/trace.h"
|
58
|
-
#include "src/core/lib/
|
57
|
+
#include "src/core/lib/event_engine/channel_args_endpoint_config.h"
|
59
58
|
#include "src/core/lib/gprpp/debug_location.h"
|
60
59
|
#include "src/core/lib/gprpp/orphanable.h"
|
61
60
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
@@ -65,14 +64,12 @@
|
|
65
64
|
#include "src/core/lib/iomgr/closure.h"
|
66
65
|
#include "src/core/lib/iomgr/endpoint.h"
|
67
66
|
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
68
|
-
#include "src/core/lib/iomgr/pollset.h"
|
69
67
|
#include "src/core/lib/iomgr/pollset_set.h"
|
70
68
|
#include "src/core/lib/iomgr/resolve_address.h"
|
71
69
|
#include "src/core/lib/iomgr/resolved_address.h"
|
72
70
|
#include "src/core/lib/iomgr/tcp_server.h"
|
73
71
|
#include "src/core/lib/iomgr/timer.h"
|
74
72
|
#include "src/core/lib/iomgr/unix_sockets_posix.h"
|
75
|
-
#include "src/core/lib/resource_quota/api.h"
|
76
73
|
#include "src/core/lib/resource_quota/memory_quota.h"
|
77
74
|
#include "src/core/lib/resource_quota/resource_quota.h"
|
78
75
|
#include "src/core/lib/security/credentials/credentials.h"
|
@@ -91,7 +88,7 @@
|
|
91
88
|
#ifdef GPR_SUPPORT_CHANNELS_FROM_FD
|
92
89
|
#include "src/core/lib/iomgr/ev_posix.h"
|
93
90
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
94
|
-
#include "src/core/lib/iomgr/
|
91
|
+
#include "src/core/lib/iomgr/tcp_client_posix.h"
|
95
92
|
#endif // GPR_SUPPORT_CHANNELS_FROM_FD
|
96
93
|
|
97
94
|
namespace grpc_core {
|
@@ -103,16 +100,16 @@ const char kUnixAbstractUriPrefix[] = "unix-abstract:";
|
|
103
100
|
class Chttp2ServerListener : public Server::ListenerInterface {
|
104
101
|
public:
|
105
102
|
static grpc_error_handle Create(Server* server, grpc_resolved_address* addr,
|
106
|
-
|
103
|
+
const ChannelArgs& args,
|
107
104
|
Chttp2ServerArgsModifier args_modifier,
|
108
105
|
int* port_num);
|
109
106
|
|
110
107
|
static grpc_error_handle CreateWithAcceptor(
|
111
|
-
Server* server, const char* name,
|
108
|
+
Server* server, const char* name, const ChannelArgs& args,
|
112
109
|
Chttp2ServerArgsModifier args_modifier);
|
113
110
|
|
114
111
|
// Do not instantiate directly. Use one of the factory methods above.
|
115
|
-
Chttp2ServerListener(Server* server,
|
112
|
+
Chttp2ServerListener(Server* server, const ChannelArgs& args,
|
116
113
|
Chttp2ServerArgsModifier args_modifier);
|
117
114
|
~Chttp2ServerListener() override;
|
118
115
|
|
@@ -151,15 +148,16 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
151
148
|
HandshakingState(RefCountedPtr<ActiveConnection> connection_ref,
|
152
149
|
grpc_pollset* accepting_pollset,
|
153
150
|
grpc_tcp_server_acceptor* acceptor,
|
154
|
-
|
151
|
+
const ChannelArgs& args);
|
155
152
|
|
156
153
|
~HandshakingState() override;
|
157
154
|
|
158
155
|
void Orphan() override;
|
159
156
|
|
160
|
-
void Start(grpc_endpoint* endpoint,
|
157
|
+
void Start(grpc_endpoint* endpoint, const ChannelArgs& args);
|
161
158
|
|
162
|
-
// Needed to be able to grab an external ref in
|
159
|
+
// Needed to be able to grab an external ref in
|
160
|
+
// ActiveConnection::Start()
|
163
161
|
using InternallyRefCounted<HandshakingState>::Ref;
|
164
162
|
|
165
163
|
private:
|
@@ -181,7 +179,7 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
181
179
|
|
182
180
|
ActiveConnection(grpc_pollset* accepting_pollset,
|
183
181
|
grpc_tcp_server_acceptor* acceptor,
|
184
|
-
|
182
|
+
const ChannelArgs& args, MemoryOwner memory_owner);
|
185
183
|
~ActiveConnection() override;
|
186
184
|
|
187
185
|
void Orphan() override;
|
@@ -189,7 +187,7 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
189
187
|
void SendGoAway();
|
190
188
|
|
191
189
|
void Start(RefCountedPtr<Chttp2ServerListener> listener,
|
192
|
-
grpc_endpoint* endpoint,
|
190
|
+
grpc_endpoint* endpoint, const ChannelArgs& args);
|
193
191
|
|
194
192
|
// Needed to be able to grab an external ref in
|
195
193
|
// Chttp2ServerListener::OnAccept()
|
@@ -204,8 +202,8 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
204
202
|
// Set by HandshakingState before the handshaking begins and reset when
|
205
203
|
// handshaking is done.
|
206
204
|
OrphanablePtr<HandshakingState> handshaking_state_ ABSL_GUARDED_BY(&mu_);
|
207
|
-
// Set by HandshakingState when handshaking is done and a valid transport
|
208
|
-
// created.
|
205
|
+
// Set by HandshakingState when handshaking is done and a valid transport
|
206
|
+
// is created.
|
209
207
|
grpc_chttp2_transport* transport_ ABSL_GUARDED_BY(&mu_) = nullptr;
|
210
208
|
grpc_closure on_close_;
|
211
209
|
grpc_timer drain_grace_timer_;
|
@@ -231,11 +229,11 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
231
229
|
grpc_closure* destroy_done);
|
232
230
|
|
233
231
|
// The interface required by RefCountedPtr<> has been manually implemented
|
234
|
-
// here to take a ref on tcp_server_ instead. Note that, the handshaker
|
235
|
-
// tcp_server_ to exist for the lifetime of the handshake since it's
|
236
|
-
// acceptor. Sharing refs between the listener and tcp_server_ is
|
237
|
-
// optimization to avoid taking additional refs on the listener,
|
238
|
-
// TcpServerShutdownComplete already holds a ref to the listener.
|
232
|
+
// here to take a ref on tcp_server_ instead. Note that, the handshaker
|
233
|
+
// needs tcp_server_ to exist for the lifetime of the handshake since it's
|
234
|
+
// needed by acceptor. Sharing refs between the listener and tcp_server_ is
|
235
|
+
// just an optimization to avoid taking additional refs on the listener,
|
236
|
+
// since TcpServerShutdownComplete already holds a ref to the listener.
|
239
237
|
void IncrementRefCount() { grpc_tcp_server_ref(tcp_server_); }
|
240
238
|
void IncrementRefCount(const DebugLocation& /* location */,
|
241
239
|
const char* /* reason */) {
|
@@ -262,7 +260,7 @@ class Chttp2ServerListener : public Server::ListenerInterface {
|
|
262
260
|
grpc_resolved_address resolved_address_;
|
263
261
|
Chttp2ServerArgsModifier const args_modifier_;
|
264
262
|
ConfigFetcherWatcher* config_fetcher_watcher_ = nullptr;
|
265
|
-
|
263
|
+
ChannelArgs args_;
|
266
264
|
Mutex mu_;
|
267
265
|
RefCountedPtr<grpc_server_config_fetcher::ConnectionManager>
|
268
266
|
connection_manager_ ABSL_GUARDED_BY(mu_);
|
@@ -348,8 +346,8 @@ void Chttp2ServerListener::ConfigFetcherWatcher::StopServing() {
|
|
348
346
|
listener_->is_serving_ = false;
|
349
347
|
connections = std::move(listener_->connections_);
|
350
348
|
}
|
351
|
-
// Send GOAWAYs on the transports so that they disconnected when existing
|
352
|
-
// finish.
|
349
|
+
// Send GOAWAYs on the transports so that they disconnected when existing
|
350
|
+
// RPCs finish.
|
353
351
|
for (auto& connection : connections) {
|
354
352
|
connection.first->SendGoAway();
|
355
353
|
}
|
@@ -359,17 +357,18 @@ void Chttp2ServerListener::ConfigFetcherWatcher::StopServing() {
|
|
359
357
|
// Chttp2ServerListener::ActiveConnection::HandshakingState
|
360
358
|
//
|
361
359
|
|
362
|
-
Timestamp GetConnectionDeadline(const
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
360
|
+
Timestamp GetConnectionDeadline(const ChannelArgs& args) {
|
361
|
+
return Timestamp::Now() +
|
362
|
+
std::max(
|
363
|
+
Duration::Milliseconds(1),
|
364
|
+
args.GetDurationFromIntMillis(GRPC_ARG_SERVER_HANDSHAKE_TIMEOUT_MS)
|
365
|
+
.value_or(Duration::Seconds(120)));
|
367
366
|
}
|
368
367
|
|
369
368
|
Chttp2ServerListener::ActiveConnection::HandshakingState::HandshakingState(
|
370
369
|
RefCountedPtr<ActiveConnection> connection_ref,
|
371
370
|
grpc_pollset* accepting_pollset, grpc_tcp_server_acceptor* acceptor,
|
372
|
-
|
371
|
+
const ChannelArgs& args)
|
373
372
|
: connection_(std::move(connection_ref)),
|
374
373
|
accepting_pollset_(accepting_pollset),
|
375
374
|
acceptor_(acceptor),
|
@@ -399,7 +398,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::Orphan() {
|
|
399
398
|
}
|
400
399
|
|
401
400
|
void Chttp2ServerListener::ActiveConnection::HandshakingState::Start(
|
402
|
-
grpc_endpoint* endpoint,
|
401
|
+
grpc_endpoint* endpoint, const ChannelArgs& channel_args) {
|
403
402
|
Ref().release(); // Held by OnHandshakeDone
|
404
403
|
RefCountedPtr<HandshakeManager> handshake_mgr;
|
405
404
|
{
|
@@ -407,7 +406,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::Start(
|
|
407
406
|
if (handshake_mgr_ == nullptr) return;
|
408
407
|
handshake_mgr = handshake_mgr_;
|
409
408
|
}
|
410
|
-
handshake_mgr->DoHandshake(endpoint,
|
409
|
+
handshake_mgr->DoHandshake(endpoint, channel_args, deadline_, acceptor_,
|
411
410
|
OnHandshakeDone, this);
|
412
411
|
}
|
413
412
|
|
@@ -459,7 +458,6 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
459
458
|
// point this can be removed.
|
460
459
|
grpc_endpoint_shutdown(args->endpoint, GRPC_ERROR_NONE);
|
461
460
|
grpc_endpoint_destroy(args->endpoint);
|
462
|
-
grpc_channel_args_destroy(args->args);
|
463
461
|
grpc_slice_buffer_destroy_internal(args->read_buffer);
|
464
462
|
gpr_free(args->read_buffer);
|
465
463
|
}
|
@@ -490,9 +488,9 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
490
488
|
self->Ref().release(); // Held by OnReceiveSettings().
|
491
489
|
GRPC_CLOSURE_INIT(&self->on_receive_settings_, OnReceiveSettings,
|
492
490
|
self, grpc_schedule_on_exec_ctx);
|
493
|
-
// If the listener has been configured with a config fetcher, we
|
494
|
-
// to watch on the transport being closed so that we can an
|
495
|
-
// list of active connections.
|
491
|
+
// If the listener has been configured with a config fetcher, we
|
492
|
+
// need to watch on the transport being closed so that we can an
|
493
|
+
// updated list of active connections.
|
496
494
|
grpc_closure* on_close = nullptr;
|
497
495
|
if (self->connection_->listener_->config_fetcher_watcher_ !=
|
498
496
|
nullptr) {
|
@@ -507,7 +505,6 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
507
505
|
grpc_chttp2_transport_start_reading(transport, args->read_buffer,
|
508
506
|
&self->on_receive_settings_,
|
509
507
|
on_close);
|
510
|
-
grpc_channel_args_destroy(args->args);
|
511
508
|
self->Ref().release(); // Held by OnTimeout().
|
512
509
|
GRPC_CLOSURE_INIT(&self->on_timeout_, OnTimeout, self,
|
513
510
|
grpc_schedule_on_exec_ctx);
|
@@ -521,7 +518,6 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
521
518
|
grpc_slice_buffer_destroy_internal(args->read_buffer);
|
522
519
|
gpr_free(args->read_buffer);
|
523
520
|
cleanup_connection = true;
|
524
|
-
grpc_channel_args_destroy(args->args);
|
525
521
|
}
|
526
522
|
} else {
|
527
523
|
cleanup_connection = true;
|
@@ -555,7 +551,7 @@ void Chttp2ServerListener::ActiveConnection::HandshakingState::OnHandshakeDone(
|
|
555
551
|
|
556
552
|
Chttp2ServerListener::ActiveConnection::ActiveConnection(
|
557
553
|
grpc_pollset* accepting_pollset, grpc_tcp_server_acceptor* acceptor,
|
558
|
-
|
554
|
+
const ChannelArgs& args, MemoryOwner memory_owner)
|
559
555
|
: handshaking_state_(memory_owner.MakeOrphanable<HandshakingState>(
|
560
556
|
Ref(), accepting_pollset, acceptor, args)) {
|
561
557
|
GRPC_CLOSURE_INIT(&on_close_, ActiveConnection::OnClose, this,
|
@@ -589,13 +585,16 @@ void Chttp2ServerListener::ActiveConnection::SendGoAway() {
|
|
589
585
|
Ref().release(); // Ref held by OnDrainGraceTimeExpiry
|
590
586
|
GRPC_CLOSURE_INIT(&on_drain_grace_time_expiry_, OnDrainGraceTimeExpiry,
|
591
587
|
this, nullptr);
|
592
|
-
grpc_timer_init(
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
588
|
+
grpc_timer_init(
|
589
|
+
&drain_grace_timer_,
|
590
|
+
Timestamp::Now() +
|
591
|
+
std::max(
|
592
|
+
Duration::Zero(),
|
593
|
+
listener_->args_
|
594
|
+
.GetDurationFromIntMillis(
|
595
|
+
GRPC_ARG_SERVER_CONFIG_CHANGE_DRAIN_GRACE_TIME_MS)
|
596
|
+
.value_or(Duration::Minutes(10))),
|
597
|
+
&on_drain_grace_time_expiry_);
|
599
598
|
drain_grace_timer_expiry_callback_pending_ = true;
|
600
599
|
shutdown_ = true;
|
601
600
|
}
|
@@ -610,7 +609,7 @@ void Chttp2ServerListener::ActiveConnection::SendGoAway() {
|
|
610
609
|
|
611
610
|
void Chttp2ServerListener::ActiveConnection::Start(
|
612
611
|
RefCountedPtr<Chttp2ServerListener> listener, grpc_endpoint* endpoint,
|
613
|
-
|
612
|
+
const ChannelArgs& args) {
|
614
613
|
RefCountedPtr<HandshakingState> handshaking_state_ref;
|
615
614
|
listener_ = std::move(listener);
|
616
615
|
{
|
@@ -630,8 +629,8 @@ void Chttp2ServerListener::ActiveConnection::OnClose(
|
|
630
629
|
{
|
631
630
|
MutexLock listener_lock(&self->listener_->mu_);
|
632
631
|
MutexLock connection_lock(&self->mu_);
|
633
|
-
// The node was already deleted from the connections_ list if the
|
634
|
-
// is shutdown.
|
632
|
+
// The node was already deleted from the connections_ list if the
|
633
|
+
// connection is shutdown.
|
635
634
|
if (!self->shutdown_) {
|
636
635
|
auto it = self->listener_->connections_.find(self);
|
637
636
|
if (it != self->listener_->connections_.end()) {
|
@@ -672,7 +671,7 @@ void Chttp2ServerListener::ActiveConnection::OnDrainGraceTimeExpiry(
|
|
672
671
|
//
|
673
672
|
|
674
673
|
grpc_error_handle Chttp2ServerListener::Create(
|
675
|
-
Server* server, grpc_resolved_address* addr,
|
674
|
+
Server* server, grpc_resolved_address* addr, const ChannelArgs& args,
|
676
675
|
Chttp2ServerArgsModifier args_modifier, int* port_num) {
|
677
676
|
Chttp2ServerListener* listener = nullptr;
|
678
677
|
// The bulk of this method is inside of a lambda to make cleanup
|
@@ -681,8 +680,10 @@ grpc_error_handle Chttp2ServerListener::Create(
|
|
681
680
|
grpc_error_handle error = GRPC_ERROR_NONE;
|
682
681
|
// Create Chttp2ServerListener.
|
683
682
|
listener = new Chttp2ServerListener(server, args, args_modifier);
|
684
|
-
error = grpc_tcp_server_create(
|
685
|
-
|
683
|
+
error = grpc_tcp_server_create(
|
684
|
+
&listener->tcp_server_shutdown_complete_,
|
685
|
+
grpc_event_engine::experimental::ChannelArgsEndpointConfig(args),
|
686
|
+
&listener->tcp_server_);
|
686
687
|
if (!GRPC_ERROR_IS_NONE(error)) return error;
|
687
688
|
if (server->config_fetcher() != nullptr) {
|
688
689
|
listener->resolved_address_ = *addr;
|
@@ -693,8 +694,8 @@ grpc_error_handle Chttp2ServerListener::Create(
|
|
693
694
|
if (!GRPC_ERROR_IS_NONE(error)) return error;
|
694
695
|
}
|
695
696
|
// Create channelz node.
|
696
|
-
if (
|
697
|
-
|
697
|
+
if (args.GetBool(GRPC_ARG_ENABLE_CHANNELZ)
|
698
|
+
.value_or(GRPC_ENABLE_CHANNELZ_DEFAULT)) {
|
698
699
|
auto string_address = grpc_sockaddr_to_uri(addr);
|
699
700
|
if (!string_address.ok()) {
|
700
701
|
return GRPC_ERROR_CREATE_FROM_CPP_STRING(
|
@@ -717,39 +718,38 @@ grpc_error_handle Chttp2ServerListener::Create(
|
|
717
718
|
} else {
|
718
719
|
delete listener;
|
719
720
|
}
|
720
|
-
} else {
|
721
|
-
grpc_channel_args_destroy(args);
|
722
721
|
}
|
723
722
|
}
|
724
723
|
return error;
|
725
724
|
}
|
726
725
|
|
727
726
|
grpc_error_handle Chttp2ServerListener::CreateWithAcceptor(
|
728
|
-
Server* server, const char* name,
|
727
|
+
Server* server, const char* name, const ChannelArgs& args,
|
729
728
|
Chttp2ServerArgsModifier args_modifier) {
|
730
729
|
Chttp2ServerListener* listener =
|
731
730
|
new Chttp2ServerListener(server, args, args_modifier);
|
732
731
|
grpc_error_handle error = grpc_tcp_server_create(
|
733
|
-
&listener->tcp_server_shutdown_complete_,
|
732
|
+
&listener->tcp_server_shutdown_complete_,
|
733
|
+
grpc_event_engine::experimental::ChannelArgsEndpointConfig(args),
|
734
|
+
&listener->tcp_server_);
|
734
735
|
if (!GRPC_ERROR_IS_NONE(error)) {
|
735
736
|
delete listener;
|
736
737
|
return error;
|
737
738
|
}
|
738
739
|
// TODO(yangg) channelz
|
739
|
-
TcpServerFdHandler** arg_val =
|
740
|
-
grpc_channel_args_find_pointer<TcpServerFdHandler*>(args, name);
|
740
|
+
TcpServerFdHandler** arg_val = args.GetPointer<TcpServerFdHandler*>(name);
|
741
741
|
*arg_val = grpc_tcp_server_create_fd_handler(listener->tcp_server_);
|
742
742
|
server->AddListener(OrphanablePtr<Server::ListenerInterface>(listener));
|
743
743
|
return GRPC_ERROR_NONE;
|
744
744
|
}
|
745
745
|
|
746
746
|
Chttp2ServerListener::Chttp2ServerListener(
|
747
|
-
Server* server,
|
747
|
+
Server* server, const ChannelArgs& args,
|
748
748
|
Chttp2ServerArgsModifier args_modifier)
|
749
749
|
: server_(server),
|
750
750
|
args_modifier_(args_modifier),
|
751
751
|
args_(args),
|
752
|
-
memory_quota_(
|
752
|
+
memory_quota_(args.GetObject<ResourceQuota>()->memory_quota()) {
|
753
753
|
GRPC_CLOSURE_INIT(&tcp_server_shutdown_complete_, TcpServerShutdownComplete,
|
754
754
|
this, grpc_schedule_on_exec_ctx);
|
755
755
|
}
|
@@ -762,7 +762,6 @@ Chttp2ServerListener::~Chttp2ServerListener() {
|
|
762
762
|
ExecCtx::Run(DEBUG_LOCATION, on_destroy_done_, GRPC_ERROR_NONE);
|
763
763
|
ExecCtx::Get()->Flush();
|
764
764
|
}
|
765
|
-
grpc_channel_args_destroy(args_);
|
766
765
|
}
|
767
766
|
|
768
767
|
/* Server callback: start listening on our ports */
|
@@ -797,8 +796,7 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
797
796
|
grpc_pollset* accepting_pollset,
|
798
797
|
grpc_tcp_server_acceptor* acceptor) {
|
799
798
|
Chttp2ServerListener* self = static_cast<Chttp2ServerListener*>(arg);
|
800
|
-
|
801
|
-
grpc_channel_args* args_to_destroy = nullptr;
|
799
|
+
ChannelArgs args = self->args_;
|
802
800
|
RefCountedPtr<grpc_server_config_fetcher::ConnectionManager>
|
803
801
|
connection_manager;
|
804
802
|
{
|
@@ -817,11 +815,7 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
817
815
|
endpoint_cleanup(error);
|
818
816
|
return;
|
819
817
|
}
|
820
|
-
|
821
|
-
// single one.
|
822
|
-
// Make a copy of the args so as to avoid destroying the original.
|
823
|
-
args = grpc_channel_args_copy(args);
|
824
|
-
absl::StatusOr<grpc_channel_args*> args_result =
|
818
|
+
absl::StatusOr<ChannelArgs> args_result =
|
825
819
|
connection_manager->UpdateChannelArgsForConnection(args, tcp);
|
826
820
|
if (!args_result.ok()) {
|
827
821
|
gpr_log(GPR_DEBUG, "Closing connection: %s",
|
@@ -836,10 +830,8 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
836
830
|
gpr_log(GPR_DEBUG, "Closing connection: %s",
|
837
831
|
grpc_error_std_string(error).c_str());
|
838
832
|
endpoint_cleanup(error);
|
839
|
-
grpc_channel_args_destroy(args);
|
840
833
|
return;
|
841
834
|
}
|
842
|
-
args_to_destroy = args;
|
843
835
|
}
|
844
836
|
auto memory_owner = self->memory_quota_->CreateMemoryOwner(
|
845
837
|
absl::StrCat(grpc_endpoint_get_peer(tcp), ":server_channel"));
|
@@ -871,7 +863,6 @@ void Chttp2ServerListener::OnAccept(void* arg, grpc_endpoint* tcp,
|
|
871
863
|
} else {
|
872
864
|
connection_ref->Start(std::move(listener_ref), tcp, args);
|
873
865
|
}
|
874
|
-
grpc_channel_args_destroy(args_to_destroy);
|
875
866
|
}
|
876
867
|
|
877
868
|
void Chttp2ServerListener::TcpServerShutdownComplete(void* arg,
|
@@ -917,7 +908,7 @@ void Chttp2ServerListener::Orphan() {
|
|
917
908
|
//
|
918
909
|
|
919
910
|
grpc_error_handle Chttp2ServerAddPort(Server* server, const char* addr,
|
920
|
-
|
911
|
+
const ChannelArgs& args,
|
921
912
|
Chttp2ServerArgsModifier args_modifier,
|
922
913
|
int* port_num) {
|
923
914
|
if (addr == nullptr) {
|
@@ -943,7 +934,8 @@ grpc_error_handle Chttp2ServerAddPort(Server* server, const char* addr,
|
|
943
934
|
resolved_or =
|
944
935
|
grpc_resolve_unix_abstract_domain_address(parsed_addr_unprefixed);
|
945
936
|
} else {
|
946
|
-
resolved_or =
|
937
|
+
resolved_or =
|
938
|
+
GetDNSResolver()->LookupHostnameBlocking(parsed_addr, "https");
|
947
939
|
}
|
948
940
|
if (!resolved_or.ok()) {
|
949
941
|
return absl_status_to_grpc_error(resolved_or.status());
|
@@ -956,9 +948,8 @@ grpc_error_handle Chttp2ServerAddPort(Server* server, const char* addr,
|
|
956
948
|
grpc_sockaddr_set_port(&addr, *port_num);
|
957
949
|
}
|
958
950
|
int port_temp = -1;
|
959
|
-
error = Chttp2ServerListener::Create(server, &addr,
|
960
|
-
|
961
|
-
args_modifier, &port_temp);
|
951
|
+
error = Chttp2ServerListener::Create(server, &addr, args, args_modifier,
|
952
|
+
&port_temp);
|
962
953
|
if (!GRPC_ERROR_IS_NONE(error)) {
|
963
954
|
error_list.push_back(error);
|
964
955
|
} else {
|
@@ -991,19 +982,15 @@ grpc_error_handle Chttp2ServerAddPort(Server* server, const char* addr,
|
|
991
982
|
for (const grpc_error_handle& error : error_list) {
|
992
983
|
GRPC_ERROR_UNREF(error);
|
993
984
|
}
|
994
|
-
grpc_channel_args_destroy(args);
|
995
985
|
if (!GRPC_ERROR_IS_NONE(error)) *port_num = 0;
|
996
986
|
return error;
|
997
987
|
}
|
998
988
|
|
999
|
-
} // namespace grpc_core
|
1000
|
-
|
1001
989
|
namespace {
|
1002
990
|
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
grpc_find_server_credentials_in_args(args);
|
991
|
+
ChannelArgs ModifyArgsForConnection(const ChannelArgs& args,
|
992
|
+
grpc_error_handle* error) {
|
993
|
+
auto* server_credentials = args.GetObject<grpc_server_credentials>();
|
1007
994
|
if (server_credentials == nullptr) {
|
1008
995
|
*error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1009
996
|
"Could not find server credentials");
|
@@ -1016,15 +1003,11 @@ grpc_channel_args* ModifyArgsForConnection(grpc_channel_args* args,
|
|
1016
1003
|
server_credentials->type().name()));
|
1017
1004
|
return args;
|
1018
1005
|
}
|
1019
|
-
|
1020
|
-
grpc_security_connector_to_arg(security_connector.get());
|
1021
|
-
grpc_channel_args* new_args =
|
1022
|
-
grpc_channel_args_copy_and_add(args, &arg_to_add, 1);
|
1023
|
-
grpc_channel_args_destroy(args);
|
1024
|
-
return new_args;
|
1006
|
+
return args.SetObject(security_connector);
|
1025
1007
|
}
|
1026
1008
|
|
1027
1009
|
} // namespace
|
1010
|
+
} // namespace grpc_core
|
1028
1011
|
|
1029
1012
|
int grpc_server_add_http2_port(grpc_server* server, const char* addr,
|
1030
1013
|
grpc_server_credentials* creds) {
|
@@ -1032,8 +1015,8 @@ int grpc_server_add_http2_port(grpc_server* server, const char* addr,
|
|
1032
1015
|
grpc_error_handle err = GRPC_ERROR_NONE;
|
1033
1016
|
grpc_core::RefCountedPtr<grpc_server_security_connector> sc;
|
1034
1017
|
int port_num = 0;
|
1035
|
-
grpc_channel_args* args = nullptr;
|
1036
1018
|
grpc_core::Server* core_server = grpc_core::Server::FromC(server);
|
1019
|
+
grpc_core::ChannelArgs args = core_server->channel_args();
|
1037
1020
|
GRPC_API_TRACE("grpc_server_add_http2_port(server=%p, addr=%s, creds=%p)", 3,
|
1038
1021
|
(server, addr, creds));
|
1039
1022
|
// Create security context.
|
@@ -1054,26 +1037,20 @@ int grpc_server_add_http2_port(grpc_server* server, const char* addr,
|
|
1054
1037
|
// fetchers need to be registered before adding ports to the server.
|
1055
1038
|
if (core_server->config_fetcher() != nullptr) {
|
1056
1039
|
// Create channel args.
|
1057
|
-
|
1058
|
-
args = grpc_channel_args_copy_and_add(core_server->channel_args(),
|
1059
|
-
&arg_to_add, 1);
|
1040
|
+
args = args.SetObject(creds->Ref());
|
1060
1041
|
} else {
|
1061
|
-
sc = creds->create_security_connector(
|
1042
|
+
sc = creds->create_security_connector(grpc_core::ChannelArgs());
|
1062
1043
|
if (sc == nullptr) {
|
1063
1044
|
err = GRPC_ERROR_CREATE_FROM_CPP_STRING(absl::StrCat(
|
1064
1045
|
"Unable to create secure server with credentials of type ",
|
1065
1046
|
creds->type().name()));
|
1066
1047
|
goto done;
|
1067
1048
|
}
|
1068
|
-
|
1069
|
-
args_to_add[0] = grpc_server_credentials_to_arg(creds);
|
1070
|
-
args_to_add[1] = grpc_security_connector_to_arg(sc.get());
|
1071
|
-
args = grpc_channel_args_copy_and_add(
|
1072
|
-
core_server->channel_args(), args_to_add, GPR_ARRAY_SIZE(args_to_add));
|
1049
|
+
args = args.SetObject(creds->Ref()).SetObject(sc);
|
1073
1050
|
}
|
1074
1051
|
// Add server port.
|
1075
|
-
err = grpc_core::Chttp2ServerAddPort(
|
1076
|
-
|
1052
|
+
err = grpc_core::Chttp2ServerAddPort(
|
1053
|
+
core_server, addr, args, grpc_core::ModifyArgsForConnection, &port_num);
|
1077
1054
|
done:
|
1078
1055
|
sc.reset(DEBUG_LOCATION, "server");
|
1079
1056
|
if (!GRPC_ERROR_IS_NONE(err)) {
|
@@ -1096,12 +1073,14 @@ void grpc_server_add_channel_from_fd(grpc_server* server, int fd,
|
|
1096
1073
|
grpc_core::ExecCtx exec_ctx;
|
1097
1074
|
grpc_core::Server* core_server = grpc_core::Server::FromC(server);
|
1098
1075
|
|
1099
|
-
|
1076
|
+
grpc_core::ChannelArgs server_args = core_server->channel_args();
|
1100
1077
|
std::string name = absl::StrCat("fd:", fd);
|
1101
1078
|
auto memory_quota =
|
1102
|
-
grpc_core::
|
1103
|
-
grpc_endpoint* server_endpoint =
|
1104
|
-
grpc_fd_create(fd, name.c_str(), true),
|
1079
|
+
server_args.GetObject<grpc_core::ResourceQuota>()->memory_quota();
|
1080
|
+
grpc_endpoint* server_endpoint = grpc_tcp_create_from_fd(
|
1081
|
+
grpc_fd_create(fd, name.c_str(), true),
|
1082
|
+
grpc_event_engine::experimental::ChannelArgsEndpointConfig(server_args),
|
1083
|
+
name);
|
1105
1084
|
grpc_transport* transport = grpc_create_chttp2_transport(
|
1106
1085
|
server_args, server_endpoint, false /* is_client */
|
1107
1086
|
);
|
@@ -23,8 +23,7 @@
|
|
23
23
|
|
24
24
|
#include <functional>
|
25
25
|
|
26
|
-
#include
|
27
|
-
|
26
|
+
#include "src/core/lib/channel/channel_args.h"
|
28
27
|
#include "src/core/lib/iomgr/error.h"
|
29
28
|
#include "src/core/lib/surface/server.h"
|
30
29
|
|
@@ -33,15 +32,14 @@ namespace grpc_core {
|
|
33
32
|
// A function to modify channel args for a listening addr:port. Note that this
|
34
33
|
// is used to create a security connector for listeners when the servers are
|
35
34
|
// configured with a config fetcher. Not invoked if there is no config fetcher
|
36
|
-
// added to the server.
|
37
|
-
// returned args. On failure, the error parameter will be set.
|
35
|
+
// added to the server. On failure, the error parameter will be set.
|
38
36
|
using Chttp2ServerArgsModifier =
|
39
|
-
std::function<
|
37
|
+
std::function<ChannelArgs(const ChannelArgs&, grpc_error_handle*)>;
|
40
38
|
|
41
39
|
/// Adds a port to \a server. Sets \a port_num to the port number.
|
42
40
|
/// Takes ownership of \a args.
|
43
41
|
grpc_error_handle Chttp2ServerAddPort(
|
44
|
-
Server* server, const char* addr,
|
42
|
+
Server* server, const char* addr, const ChannelArgs& args,
|
45
43
|
Chttp2ServerArgsModifier connection_args_modifier, int* port_num);
|
46
44
|
|
47
45
|
} // namespace grpc_core
|