grpc 1.48.0 → 1.49.1
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 +104 -41
- data/include/grpc/event_engine/event_engine.h +19 -16
- data/include/grpc/impl/codegen/grpc_types.h +3 -8
- data/include/grpc/impl/codegen/port_platform.h +0 -8
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +3 -3
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +2 -2
- data/src/core/ext/filters/client_channel/client_channel.cc +125 -200
- data/src/core/ext/filters/client_channel/client_channel.h +15 -8
- 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 +1 -1
- 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 +53 -65
- data/src/core/ext/filters/client_channel/http_proxy.h +12 -9
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +14 -12
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +102 -131
- 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.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +169 -63
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +25 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +15 -19
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +66 -78
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +44 -44
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +6 -5
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +65 -77
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +15 -14
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +19 -14
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +63 -67
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +40 -49
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +81 -97
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +53 -61
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +171 -102
- data/src/core/ext/filters/client_channel/proxy_mapper.h +13 -14
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +19 -16
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -7
- 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 +170 -99
- 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 +17 -15
- 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 +38 -17
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +3 -4
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +5 -6
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -13
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +162 -165
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +37 -30
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +7 -10
- data/src/core/ext/filters/client_channel/retry_filter.cc +0 -7
- 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 +49 -89
- data/src/core/ext/filters/client_channel/subchannel.h +8 -8
- 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 +3 -4
- 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 +1 -3
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +1 -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 +2 -3
- 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/server/http_server_filter.cc +2 -3
- 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 +35 -62
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +62 -89
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +4 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +130 -165
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +67 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -0
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +7 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +25 -8
- 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 +2 -10
- data/src/core/ext/transport/chttp2/transport/internal.h +2 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +40 -74
- 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/upb_utils.h +0 -21
- data/src/core/ext/xds/xds_api.cc +53 -86
- data/src/core/ext/xds/xds_api.h +19 -28
- data/src/core/ext/xds/xds_bootstrap.cc +39 -52
- data/src/core/ext/xds/xds_bootstrap.h +28 -8
- 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 +555 -1214
- data/src/core/ext/xds/xds_client.h +16 -44
- data/src/core/ext/xds/xds_client_grpc.cc +291 -0
- data/src/core/ext/xds/xds_client_grpc.h +102 -0
- data/src/core/ext/xds/xds_cluster.cc +92 -103
- data/src/core/ext/xds/xds_cluster.h +6 -5
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +10 -14
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +1 -0
- data/src/core/ext/xds/xds_common_types.cc +134 -110
- data/src/core/ext/xds/xds_common_types.h +6 -7
- data/src/core/ext/xds/xds_endpoint.cc +80 -80
- data/src/core/ext/xds/xds_endpoint.h +4 -4
- 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 +17 -20
- data/src/core/ext/xds/xds_lb_policy_registry.h +4 -4
- data/src/core/ext/xds/xds_listener.cc +329 -299
- data/src/core/ext/xds/xds_listener.h +4 -4
- data/src/core/ext/xds/xds_resource_type.h +13 -2
- data/src/core/ext/xds/xds_route_config.cc +180 -177
- 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 +76 -81
- data/src/core/ext/xds/xds_transport.h +86 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +349 -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/channel/call_tracer.h +1 -1
- data/src/core/lib/channel/channel_args.cc +88 -19
- data/src/core/lib/channel/channel_args.h +113 -62
- 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/channelz.cc +27 -37
- data/src/core/lib/channel/channelz.h +9 -0
- data/src/core/lib/channel/promise_based_filter.h +0 -1
- data/src/core/lib/config/core_configuration.h +48 -35
- data/src/core/lib/debug/stats.cc +12 -15
- data/src/core/lib/debug/stats.h +11 -3
- 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 +54 -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 +46 -10
- data/src/core/lib/event_engine/{iomgr_engine → posix_engine}/timer_manager.h +17 -8
- data/src/core/lib/event_engine/promise.h +11 -2
- data/src/core/lib/event_engine/socket_notifier.h +55 -0
- data/src/core/lib/event_engine/{iomgr_engine/thread_pool.cc → thread_pool.cc} +49 -14
- data/src/core/lib/event_engine/{iomgr_engine/thread_pool.h → thread_pool.h} +21 -10
- data/src/core/lib/event_engine/utils.cc +49 -0
- data/src/core/lib/event_engine/utils.h +40 -0
- data/src/core/lib/event_engine/windows/iocp.cc +149 -0
- data/src/core/lib/event_engine/windows/iocp.h +68 -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/gpr/time.cc +11 -9
- data/src/core/lib/gpr/useful.h +29 -0
- data/src/core/lib/gprpp/bitset.h +3 -13
- data/src/core/lib/gprpp/debug_location.h +39 -7
- 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/ref_counted_ptr.h +0 -1
- data/src/core/lib/gprpp/status_helper.cc +1 -0
- data/src/core/lib/gprpp/table.h +0 -1
- 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/{iomgr → gprpp}/work_serializer.cc +34 -18
- data/src/core/lib/{iomgr → gprpp}/work_serializer.h +21 -27
- 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 -26
- data/src/core/lib/iomgr/closure.h +0 -9
- data/src/core/lib/iomgr/combiner.cc +0 -20
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
- 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_poll_posix.cc +17 -9
- data/src/core/lib/iomgr/exec_ctx.cc +0 -12
- data/src/core/lib/iomgr/executor.cc +0 -10
- data/src/core/lib/iomgr/executor.h +0 -3
- data/src/core/lib/iomgr/lockfree_event.cc +0 -17
- data/src/core/lib/iomgr/port.h +3 -0
- data/src/core/lib/iomgr/resolve_address.h +29 -6
- data/src/core/lib/iomgr/resolve_address_posix.cc +42 -8
- data/src/core/lib/iomgr/resolve_address_posix.h +19 -5
- data/src/core/lib/iomgr/resolve_address_windows.cc +44 -10
- data/src/core/lib/iomgr/resolve_address_windows.h +19 -5
- data/src/core/lib/iomgr/socket_windows.h +0 -2
- data/src/core/lib/iomgr/tcp_posix.cc +118 -6
- data/src/core/lib/iomgr/timer_generic.cc +6 -8
- 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 +233 -0
- data/src/core/lib/json/json_object_loader.h +618 -0
- data/src/core/lib/json/json_reader.cc +86 -62
- data/src/core/lib/json/json_util.cc +8 -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 +15 -24
- data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.cc +49 -72
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/lb_policy_registry.h +27 -27
- data/src/core/{ext/filters/client_channel → lib/load_balancing}/subchannel_interface.h +6 -6
- data/src/core/lib/promise/activity.h +56 -8
- data/src/core/lib/promise/arena_promise.h +84 -81
- data/src/core/lib/promise/context.h +0 -1
- 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 +38 -42
- data/src/core/lib/promise/sleep.h +27 -24
- 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 +2 -12
- 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 +1 -1
- data/src/core/lib/resource_quota/arena.cc +21 -1
- data/src/core/lib/resource_quota/arena.h +24 -2
- data/src/core/lib/resource_quota/memory_quota.cc +157 -17
- data/src/core/lib/resource_quota/memory_quota.h +98 -17
- data/src/core/lib/resource_quota/periodic_update.cc +79 -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/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/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 +18 -11
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +32 -23
- 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/google_default_credentials.cc +29 -26
- 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 +11 -13
- 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 +17 -18
- 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.h +6 -0
- 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/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 +3 -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 +8 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +1 -1
- data/src/core/lib/surface/completion_queue.cc +0 -2
- data/src/core/lib/surface/completion_queue.h +0 -3
- data/src/core/lib/surface/init.cc +2 -6
- 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 +7 -12
- data/src/core/lib/surface/server.h +7 -7
- data/src/core/lib/surface/validate_metadata.cc +4 -14
- data/src/core/lib/surface/version.cc +2 -2
- 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 +5 -0
- data/src/core/lib/transport/metadata_batch.h +52 -7
- data/src/core/lib/transport/parsed_metadata.h +0 -1
- data/src/core/lib/transport/tcp_connect_handshaker.cc +12 -18
- data/src/core/lib/transport/transport.h +0 -7
- 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/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 +88 -36
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -50
- 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/promise/detail/switch.h +0 -1455
@@ -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>());
|
@@ -284,4 +284,9 @@ const std::string& GrpcStatusContext::DisplayValue(const std::string& x) {
|
|
284
284
|
return x;
|
285
285
|
}
|
286
286
|
|
287
|
+
std::string WaitForReady::DisplayValue(ValueType x) {
|
288
|
+
return absl::StrCat(x.value ? "true" : "false",
|
289
|
+
x.explicitly_set ? " (explicit)" : "");
|
290
|
+
}
|
291
|
+
|
287
292
|
} // namespace grpc_core
|
@@ -25,7 +25,6 @@
|
|
25
25
|
|
26
26
|
#include <cstdint>
|
27
27
|
#include <string>
|
28
|
-
#include <type_traits>
|
29
28
|
#include <utility>
|
30
29
|
|
31
30
|
#include "absl/container/inlined_vector.h"
|
@@ -388,6 +387,17 @@ struct GrpcStatusContext {
|
|
388
387
|
static const std::string& DisplayValue(const std::string& x);
|
389
388
|
};
|
390
389
|
|
390
|
+
// Annotation added by client surface code to denote wait-for-ready state
|
391
|
+
struct WaitForReady {
|
392
|
+
struct ValueType {
|
393
|
+
bool value = false;
|
394
|
+
bool explicitly_set = false;
|
395
|
+
};
|
396
|
+
static absl::string_view DebugKey() { return "WaitForReady"; }
|
397
|
+
static constexpr bool kRepeatable = false;
|
398
|
+
static std::string DisplayValue(ValueType x);
|
399
|
+
};
|
400
|
+
|
391
401
|
namespace metadata_detail {
|
392
402
|
|
393
403
|
// Build a key/value formatted debug string.
|
@@ -678,6 +688,10 @@ struct Value<Which, absl::enable_if_t<Which::kRepeatable == false &&
|
|
678
688
|
void EncodeTo(Encoder* encoder) const {
|
679
689
|
encoder->Encode(Which(), value);
|
680
690
|
}
|
691
|
+
template <typename Encoder>
|
692
|
+
void VisitWith(Encoder* encoder) const {
|
693
|
+
return EncodeTo(encoder);
|
694
|
+
}
|
681
695
|
void LogTo(LogFn log_fn) const {
|
682
696
|
LogKeyValueTo(Which::key(), value, Which::Encode, log_fn);
|
683
697
|
}
|
@@ -702,6 +716,10 @@ struct Value<Which, absl::enable_if_t<Which::kRepeatable == false &&
|
|
702
716
|
}
|
703
717
|
template <typename Encoder>
|
704
718
|
void EncodeTo(Encoder*) const {}
|
719
|
+
template <typename Encoder>
|
720
|
+
void VisitWith(Encoder* encoder) const {
|
721
|
+
encoder->Encode(Which(), value);
|
722
|
+
}
|
705
723
|
void LogTo(LogFn log_fn) const {
|
706
724
|
LogKeyValueTo(Which::DebugKey(), value, Which::DisplayValue, log_fn);
|
707
725
|
}
|
@@ -733,6 +751,10 @@ struct Value<Which, absl::enable_if_t<Which::kRepeatable == true &&
|
|
733
751
|
encoder->Encode(Which(), v);
|
734
752
|
}
|
735
753
|
}
|
754
|
+
template <typename Encoder>
|
755
|
+
void VisitWith(Encoder* encoder) const {
|
756
|
+
return EncodeTo(encoder);
|
757
|
+
}
|
736
758
|
void LogTo(LogFn log_fn) const {
|
737
759
|
for (const auto& v : value) {
|
738
760
|
LogKeyValueTo(Which::key(), v, Which::Encode, log_fn);
|
@@ -762,6 +784,12 @@ struct Value<Which, absl::enable_if_t<Which::kRepeatable == true &&
|
|
762
784
|
}
|
763
785
|
template <typename Encoder>
|
764
786
|
void EncodeTo(Encoder*) const {}
|
787
|
+
template <typename Encoder>
|
788
|
+
void VisitWith(Encoder* encoder) const {
|
789
|
+
for (const auto& v : value) {
|
790
|
+
encoder->Encode(Which(), v);
|
791
|
+
}
|
792
|
+
}
|
765
793
|
void LogTo(LogFn log_fn) const {
|
766
794
|
for (const auto& v : value) {
|
767
795
|
LogKeyValueTo(Which::DebugKey(), v, Which::DisplayValue, log_fn);
|
@@ -806,6 +834,17 @@ struct EncodeWrapper {
|
|
806
834
|
}
|
807
835
|
};
|
808
836
|
|
837
|
+
// Callable for the table ForEach in ForEach() -- for each value, call the
|
838
|
+
// appropriate visitor method.
|
839
|
+
template <typename Encoder>
|
840
|
+
struct ForEachWrapper {
|
841
|
+
Encoder* encoder;
|
842
|
+
template <typename Which>
|
843
|
+
void operator()(const Value<Which>& which) {
|
844
|
+
which.VisitWith(encoder);
|
845
|
+
}
|
846
|
+
};
|
847
|
+
|
809
848
|
// Callable for the ForEach in Log()
|
810
849
|
struct LogWrapper {
|
811
850
|
LogFn log_fn;
|
@@ -1003,10 +1042,7 @@ class MetadataMap {
|
|
1003
1042
|
// void Encode(TraitsType, typename TraitsType::ValueType value);
|
1004
1043
|
// For fields for which we do not have traits, this will be a method
|
1005
1044
|
// with the signature:
|
1006
|
-
// void Encode(
|
1007
|
-
// TODO(ctiller): It's expected that the latter Encode method will
|
1008
|
-
// become Encode(Slice, Slice) by the end of the current metadata API
|
1009
|
-
// transitions.
|
1045
|
+
// void Encode(string_view key, Slice value);
|
1010
1046
|
template <typename Encoder>
|
1011
1047
|
void Encode(Encoder* encoder) const {
|
1012
1048
|
table_.ForEach(metadata_detail::EncodeWrapper<Encoder>{encoder});
|
@@ -1015,6 +1051,15 @@ class MetadataMap {
|
|
1015
1051
|
}
|
1016
1052
|
}
|
1017
1053
|
|
1054
|
+
// Like Encode, but also visit the non-encodable fields.
|
1055
|
+
template <typename Encoder>
|
1056
|
+
void ForEach(Encoder* encoder) const {
|
1057
|
+
table_.ForEach(metadata_detail::ForEachWrapper<Encoder>{encoder});
|
1058
|
+
for (const auto& unk : unknown_) {
|
1059
|
+
encoder->Encode(unk.first, unk.second);
|
1060
|
+
}
|
1061
|
+
}
|
1062
|
+
|
1018
1063
|
// Similar to Encode, but targeted at logging: for each metadatum,
|
1019
1064
|
// call f(key, value) as absl::string_views.
|
1020
1065
|
void Log(metadata_detail::LogFn log_fn) const {
|
@@ -1227,7 +1272,7 @@ template <typename Derived, typename... Traits>
|
|
1227
1272
|
Derived MetadataMap<Derived, Traits...>::Copy() const {
|
1228
1273
|
Derived out(unknown_.arena());
|
1229
1274
|
metadata_detail::CopySink<Derived> sink(&out);
|
1230
|
-
|
1275
|
+
ForEach(&sink);
|
1231
1276
|
return out;
|
1232
1277
|
}
|
1233
1278
|
|
@@ -1254,7 +1299,7 @@ using grpc_metadata_batch_base = grpc_core::MetadataMap<
|
|
1254
1299
|
grpc_core::LbCostBinMetadata, grpc_core::LbTokenMetadata,
|
1255
1300
|
// Non-encodable things
|
1256
1301
|
grpc_core::GrpcStreamNetworkState, grpc_core::PeerString,
|
1257
|
-
grpc_core::GrpcStatusContext>;
|
1302
|
+
grpc_core::GrpcStatusContext, grpc_core::WaitForReady>;
|
1258
1303
|
|
1259
1304
|
struct grpc_metadata_batch : public grpc_metadata_batch_base {
|
1260
1305
|
using grpc_metadata_batch_base::grpc_metadata_batch_base;
|
@@ -25,8 +25,9 @@
|
|
25
25
|
#include "absl/base/thread_annotations.h"
|
26
26
|
#include "absl/memory/memory.h"
|
27
27
|
#include "absl/status/statusor.h"
|
28
|
+
#include "absl/strings/string_view.h"
|
29
|
+
#include "absl/types/optional.h"
|
28
30
|
|
29
|
-
#include <grpc/impl/codegen/grpc_types.h>
|
30
31
|
#include <grpc/slice.h>
|
31
32
|
#include <grpc/support/alloc.h>
|
32
33
|
#include <grpc/support/log.h>
|
@@ -34,7 +35,6 @@
|
|
34
35
|
#include "src/core/lib/address_utils/parse_address.h"
|
35
36
|
#include "src/core/lib/channel/channel_args.h"
|
36
37
|
#include "src/core/lib/config/core_configuration.h"
|
37
|
-
#include "src/core/lib/gpr/useful.h"
|
38
38
|
#include "src/core/lib/gprpp/debug_location.h"
|
39
39
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
40
40
|
#include "src/core/lib/gprpp/sync.h"
|
@@ -129,25 +129,20 @@ void TCPConnectHandshaker::DoHandshake(grpc_tcp_server_acceptor* /*acceptor*/,
|
|
129
129
|
}
|
130
130
|
GPR_ASSERT(args->endpoint == nullptr);
|
131
131
|
args_ = args;
|
132
|
-
|
133
|
-
args->args
|
134
|
-
absl::StatusOr<URI> uri = URI::Parse(address);
|
132
|
+
absl::StatusOr<URI> uri = URI::Parse(
|
133
|
+
args->args.GetString(GRPC_ARG_TCP_HANDSHAKER_RESOLVED_ADDRESS).value());
|
135
134
|
if (!uri.ok() || !grpc_parse_uri(*uri, &addr_)) {
|
136
135
|
MutexLock lock(&mu_);
|
137
136
|
FinishLocked(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
138
137
|
"Resolved address in invalid format"));
|
139
138
|
return;
|
140
139
|
}
|
141
|
-
bind_endpoint_to_pollset_ =
|
142
|
-
args->args
|
143
|
-
|
144
|
-
GRPC_ARG_TCP_HANDSHAKER_RESOLVED_ADDRESS,
|
145
|
-
GRPC_ARG_TCP_HANDSHAKER_BIND_ENDPOINT_TO_POLLSET};
|
140
|
+
bind_endpoint_to_pollset_ =
|
141
|
+
args->args.GetBool(GRPC_ARG_TCP_HANDSHAKER_BIND_ENDPOINT_TO_POLLSET)
|
142
|
+
.value_or(false);
|
146
143
|
// Update args to not contain the args relevant to TCP connect handshaker.
|
147
|
-
|
148
|
-
|
149
|
-
grpc_channel_args_destroy(args->args);
|
150
|
-
args->args = channel_args;
|
144
|
+
args->args = args->args.Remove(GRPC_ARG_TCP_HANDSHAKER_RESOLVED_ADDRESS)
|
145
|
+
.Remove(GRPC_ARG_TCP_HANDSHAKER_BIND_ENDPOINT_TO_POLLSET);
|
151
146
|
// In some implementations, the closure can be flushed before
|
152
147
|
// grpc_tcp_client_connect() returns, and since the closure requires access
|
153
148
|
// to mu_, this can result in a deadlock (see
|
@@ -160,7 +155,7 @@ void TCPConnectHandshaker::DoHandshake(grpc_tcp_server_acceptor* /*acceptor*/,
|
|
160
155
|
// Instead pass endpoint_ and swap this endpoint to
|
161
156
|
// args endpoint on success.
|
162
157
|
grpc_tcp_client_connect(&connected_, &endpoint_to_destroy_,
|
163
|
-
interested_parties_, args->args, &addr_,
|
158
|
+
interested_parties_, args->args.ToC().get(), &addr_,
|
164
159
|
args->deadline);
|
165
160
|
}
|
166
161
|
|
@@ -215,8 +210,7 @@ TCPConnectHandshaker::~TCPConnectHandshaker() {
|
|
215
210
|
void TCPConnectHandshaker::CleanupArgsForFailureLocked() {
|
216
211
|
read_buffer_to_destroy_ = args_->read_buffer;
|
217
212
|
args_->read_buffer = nullptr;
|
218
|
-
|
219
|
-
args_->args = nullptr;
|
213
|
+
args_->args = ChannelArgs();
|
220
214
|
}
|
221
215
|
|
222
216
|
void TCPConnectHandshaker::FinishLocked(grpc_error_handle error) {
|
@@ -233,7 +227,7 @@ void TCPConnectHandshaker::FinishLocked(grpc_error_handle error) {
|
|
233
227
|
|
234
228
|
class TCPConnectHandshakerFactory : public HandshakerFactory {
|
235
229
|
public:
|
236
|
-
void AddHandshakers(const
|
230
|
+
void AddHandshakers(const ChannelArgs& /*args*/,
|
237
231
|
grpc_pollset_set* interested_parties,
|
238
232
|
HandshakeManager* handshake_mgr) override {
|
239
233
|
handshake_mgr->Add(
|
@@ -344,9 +344,6 @@ struct grpc_transport_stream_op_batch_payload {
|
|
344
344
|
: context(context) {}
|
345
345
|
struct {
|
346
346
|
grpc_metadata_batch* send_initial_metadata = nullptr;
|
347
|
-
/** Iff send_initial_metadata != NULL, flags associated with
|
348
|
-
send_initial_metadata: a bitfield of GRPC_INITIAL_METADATA_xxx */
|
349
|
-
uint32_t send_initial_metadata_flags = 0;
|
350
347
|
// If non-NULL, will be set by the transport to the peer string (a char*).
|
351
348
|
// The transport retains ownership of the string.
|
352
349
|
// Note: This pointer may be used by the transport after the
|
@@ -388,10 +385,6 @@ struct grpc_transport_stream_op_batch_payload {
|
|
388
385
|
|
389
386
|
struct {
|
390
387
|
grpc_metadata_batch* recv_initial_metadata = nullptr;
|
391
|
-
// Flags are used only on the server side. If non-null, will be set to
|
392
|
-
// a bitfield of the GRPC_INITIAL_METADATA_xxx macros (e.g., to
|
393
|
-
// indicate if the call is idempotent).
|
394
|
-
uint32_t* recv_flags = nullptr;
|
395
388
|
/** Should be enqueued when initial metadata is ready to be processed. */
|
396
389
|
grpc_closure* recv_initial_metadata_ready = nullptr;
|
397
390
|
// If not NULL, will be set to true if trailing metadata is
|
@@ -71,7 +71,8 @@ typedef struct alts_grpc_handshaker_client {
|
|
71
71
|
* handshaker service. */
|
72
72
|
grpc_byte_buffer* send_buffer = nullptr;
|
73
73
|
grpc_byte_buffer* recv_buffer = nullptr;
|
74
|
-
|
74
|
+
// Used to inject a read failure from tests.
|
75
|
+
bool inject_read_failure = false;
|
75
76
|
/* Initial metadata to be received from handshaker service. */
|
76
77
|
grpc_metadata_array recv_initial_metadata;
|
77
78
|
/* A callback function provided by an application to be invoked when response
|
@@ -106,6 +107,8 @@ typedef struct alts_grpc_handshaker_client {
|
|
106
107
|
recv_message_result* pending_recv_message_result = nullptr;
|
107
108
|
/* Maximum frame size used by frame protector. */
|
108
109
|
size_t max_frame_size;
|
110
|
+
// If non-null, will be populated with an error string upon error.
|
111
|
+
std::string* error;
|
109
112
|
} alts_grpc_handshaker_client;
|
110
113
|
|
111
114
|
static void handshaker_client_send_buffer_destroy(
|
@@ -174,10 +177,11 @@ static void maybe_complete_tsi_next(
|
|
174
177
|
}
|
175
178
|
|
176
179
|
static void handle_response_done(alts_grpc_handshaker_client* client,
|
177
|
-
tsi_result status,
|
180
|
+
tsi_result status, std::string error,
|
178
181
|
const unsigned char* bytes_to_send,
|
179
182
|
size_t bytes_to_send_size,
|
180
183
|
tsi_handshaker_result* result) {
|
184
|
+
if (client->error != nullptr) *client->error = std::move(error);
|
181
185
|
recv_message_result* p = grpc_core::Zalloc<recv_message_result>();
|
182
186
|
p->status = status;
|
183
187
|
p->bytes_to_send = bytes_to_send;
|
@@ -193,7 +197,6 @@ void alts_handshaker_client_handle_response(alts_handshaker_client* c,
|
|
193
197
|
alts_grpc_handshaker_client* client =
|
194
198
|
reinterpret_cast<alts_grpc_handshaker_client*>(c);
|
195
199
|
grpc_byte_buffer* recv_buffer = client->recv_buffer;
|
196
|
-
grpc_status_code status = client->status;
|
197
200
|
alts_tsi_handshaker* handshaker = client->handshaker;
|
198
201
|
/* Invalid input check. */
|
199
202
|
if (client->cb == nullptr) {
|
@@ -204,25 +207,34 @@ void alts_handshaker_client_handle_response(alts_handshaker_client* c,
|
|
204
207
|
if (handshaker == nullptr) {
|
205
208
|
gpr_log(GPR_ERROR,
|
206
209
|
"handshaker is nullptr in alts_tsi_handshaker_handle_response()");
|
207
|
-
handle_response_done(
|
210
|
+
handle_response_done(
|
211
|
+
client, TSI_INTERNAL_ERROR,
|
212
|
+
"handshaker is nullptr in alts_tsi_handshaker_handle_response()",
|
213
|
+
nullptr, 0, nullptr);
|
208
214
|
return;
|
209
215
|
}
|
210
216
|
/* TSI handshake has been shutdown. */
|
211
217
|
if (alts_tsi_handshaker_has_shutdown(handshaker)) {
|
212
218
|
gpr_log(GPR_INFO, "TSI handshake shutdown");
|
213
|
-
handle_response_done(client, TSI_HANDSHAKE_SHUTDOWN,
|
219
|
+
handle_response_done(client, TSI_HANDSHAKE_SHUTDOWN,
|
220
|
+
"TSI handshake shutdown", nullptr, 0, nullptr);
|
214
221
|
return;
|
215
222
|
}
|
216
|
-
/*
|
217
|
-
if (!is_ok ||
|
218
|
-
gpr_log(GPR_INFO, "grpc call
|
219
|
-
handle_response_done(client, TSI_INTERNAL_ERROR,
|
223
|
+
/* Check for failed grpc read. */
|
224
|
+
if (!is_ok || client->inject_read_failure) {
|
225
|
+
gpr_log(GPR_INFO, "read failed on grpc call to handshaker service");
|
226
|
+
handle_response_done(client, TSI_INTERNAL_ERROR,
|
227
|
+
"read failed on grpc call to handshaker service",
|
228
|
+
nullptr, 0, nullptr);
|
220
229
|
return;
|
221
230
|
}
|
222
231
|
if (recv_buffer == nullptr) {
|
223
232
|
gpr_log(GPR_ERROR,
|
224
233
|
"recv_buffer is nullptr in alts_tsi_handshaker_handle_response()");
|
225
|
-
handle_response_done(
|
234
|
+
handle_response_done(
|
235
|
+
client, TSI_INTERNAL_ERROR,
|
236
|
+
"recv_buffer is nullptr in alts_tsi_handshaker_handle_response()",
|
237
|
+
nullptr, 0, nullptr);
|
226
238
|
return;
|
227
239
|
}
|
228
240
|
upb::Arena arena;
|
@@ -233,14 +245,17 @@ void alts_handshaker_client_handle_response(alts_handshaker_client* c,
|
|
233
245
|
/* Invalid handshaker response check. */
|
234
246
|
if (resp == nullptr) {
|
235
247
|
gpr_log(GPR_ERROR, "alts_tsi_utils_deserialize_response() failed");
|
236
|
-
handle_response_done(client, TSI_DATA_CORRUPTED,
|
248
|
+
handle_response_done(client, TSI_DATA_CORRUPTED,
|
249
|
+
"alts_tsi_utils_deserialize_response() failed",
|
250
|
+
nullptr, 0, nullptr);
|
237
251
|
return;
|
238
252
|
}
|
239
253
|
const grpc_gcp_HandshakerStatus* resp_status =
|
240
254
|
grpc_gcp_HandshakerResp_status(resp);
|
241
255
|
if (resp_status == nullptr) {
|
242
256
|
gpr_log(GPR_ERROR, "No status in HandshakerResp");
|
243
|
-
handle_response_done(client, TSI_DATA_CORRUPTED,
|
257
|
+
handle_response_done(client, TSI_DATA_CORRUPTED,
|
258
|
+
"No status in HandshakerResp", nullptr, 0, nullptr);
|
244
259
|
return;
|
245
260
|
}
|
246
261
|
upb_StringView out_frames = grpc_gcp_HandshakerResp_out_frames(resp);
|
@@ -262,7 +277,9 @@ void alts_handshaker_client_handle_response(alts_handshaker_client* c,
|
|
262
277
|
alts_tsi_handshaker_result_create(resp, client->is_client, &result);
|
263
278
|
if (status != TSI_OK) {
|
264
279
|
gpr_log(GPR_ERROR, "alts_tsi_handshaker_result_create() failed");
|
265
|
-
handle_response_done(client, status,
|
280
|
+
handle_response_done(client, status,
|
281
|
+
"alts_tsi_handshaker_result_create() failed",
|
282
|
+
nullptr, 0, nullptr);
|
266
283
|
return;
|
267
284
|
}
|
268
285
|
alts_tsi_handshaker_result_set_unused_bytes(
|
@@ -271,13 +288,13 @@ void alts_handshaker_client_handle_response(alts_handshaker_client* c,
|
|
271
288
|
}
|
272
289
|
grpc_status_code code = static_cast<grpc_status_code>(
|
273
290
|
grpc_gcp_HandshakerStatus_code(resp_status));
|
291
|
+
std::string error;
|
274
292
|
if (code != GRPC_STATUS_OK) {
|
275
293
|
upb_StringView details = grpc_gcp_HandshakerStatus_details(resp_status);
|
276
294
|
if (details.size > 0) {
|
277
|
-
|
278
|
-
|
279
|
-
gpr_log(GPR_ERROR, "
|
280
|
-
gpr_free(error_details);
|
295
|
+
error = absl::StrCat("Status ", code, " from handshaker service: ",
|
296
|
+
absl::string_view(details.data, details.size));
|
297
|
+
gpr_log(GPR_ERROR, "%s", error.c_str());
|
281
298
|
}
|
282
299
|
}
|
283
300
|
// TODO(apolcyn): consider short ciruiting handle_response_done and
|
@@ -285,7 +302,8 @@ void alts_handshaker_client_handle_response(alts_handshaker_client* c,
|
|
285
302
|
// handle_response_done's allocation per message received causes
|
286
303
|
// a performance issue.
|
287
304
|
handle_response_done(client, alts_tsi_utils_convert_to_tsi_result(code),
|
288
|
-
bytes_to_send, bytes_to_send_size,
|
305
|
+
std::move(error), bytes_to_send, bytes_to_send_size,
|
306
|
+
result);
|
289
307
|
}
|
290
308
|
|
291
309
|
static tsi_result continue_make_grpc_call(alts_grpc_handshaker_client* client,
|
@@ -690,7 +708,7 @@ alts_handshaker_client* alts_grpc_handshaker_client_create(
|
|
690
708
|
grpc_alts_credentials_options* options, const grpc_slice& target_name,
|
691
709
|
grpc_iomgr_cb_func grpc_cb, tsi_handshaker_on_next_done_cb cb,
|
692
710
|
void* user_data, alts_handshaker_client_vtable* vtable_for_testing,
|
693
|
-
bool is_client, size_t max_frame_size) {
|
711
|
+
bool is_client, size_t max_frame_size, std::string* error) {
|
694
712
|
if (channel == nullptr || handshaker_service_url == nullptr) {
|
695
713
|
gpr_log(GPR_ERROR, "Invalid arguments to alts_handshaker_client_create()");
|
696
714
|
return nullptr;
|
@@ -713,6 +731,7 @@ alts_handshaker_client* alts_grpc_handshaker_client_create(
|
|
713
731
|
client->buffer = static_cast<unsigned char*>(gpr_zalloc(client->buffer_size));
|
714
732
|
client->handshake_status_details = grpc_empty_slice();
|
715
733
|
client->max_frame_size = max_frame_size;
|
734
|
+
client->error = error;
|
716
735
|
grpc_slice slice = grpc_slice_from_copied_string(handshaker_service_url);
|
717
736
|
client->call =
|
718
737
|
strcmp(handshaker_service_url, ALTS_HANDSHAKER_SERVICE_URL_FOR_TESTING) ==
|
@@ -776,7 +795,7 @@ void alts_handshaker_client_set_recv_bytes_for_testing(
|
|
776
795
|
void alts_handshaker_client_set_fields_for_testing(
|
777
796
|
alts_handshaker_client* c, alts_tsi_handshaker* handshaker,
|
778
797
|
tsi_handshaker_on_next_done_cb cb, void* user_data,
|
779
|
-
grpc_byte_buffer* recv_buffer,
|
798
|
+
grpc_byte_buffer* recv_buffer, bool inject_read_failure) {
|
780
799
|
GPR_ASSERT(c != nullptr);
|
781
800
|
alts_grpc_handshaker_client* client =
|
782
801
|
reinterpret_cast<alts_grpc_handshaker_client*>(c);
|
@@ -784,7 +803,7 @@ void alts_handshaker_client_set_fields_for_testing(
|
|
784
803
|
client->cb = cb;
|
785
804
|
client->user_data = user_data;
|
786
805
|
client->recv_buffer = recv_buffer;
|
787
|
-
client->
|
806
|
+
client->inject_read_failure = inject_read_failure;
|
788
807
|
}
|
789
808
|
|
790
809
|
void alts_handshaker_client_check_fields_for_testing(
|
@@ -144,7 +144,7 @@ alts_handshaker_client* alts_grpc_handshaker_client_create(
|
|
144
144
|
grpc_alts_credentials_options* options, const grpc_slice& target_name,
|
145
145
|
grpc_iomgr_cb_func grpc_cb, tsi_handshaker_on_next_done_cb cb,
|
146
146
|
void* user_data, alts_handshaker_client_vtable* vtable_for_testing,
|
147
|
-
bool is_client, size_t max_frame_size);
|
147
|
+
bool is_client, size_t max_frame_size, std::string* error);
|
148
148
|
|
149
149
|
/**
|
150
150
|
* This method handles handshaker response returned from ALTS handshaker
|