grpc 1.33.0.pre1 → 1.37.0.pre1
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 +1075 -2814
- data/etc/roots.pem +257 -573
- data/include/grpc/compression.h +1 -1
- data/include/grpc/grpc.h +29 -2
- data/include/grpc/grpc_security.h +215 -175
- data/include/grpc/impl/codegen/atm_windows.h +4 -0
- data/include/grpc/impl/codegen/byte_buffer.h +1 -1
- data/include/grpc/impl/codegen/grpc_types.h +10 -3
- data/include/grpc/impl/codegen/log.h +0 -2
- data/include/grpc/impl/codegen/port_platform.h +24 -55
- data/include/grpc/impl/codegen/sync_windows.h +4 -0
- data/include/grpc/slice_buffer.h +3 -3
- data/include/grpc/support/sync.h +3 -3
- data/include/grpc/support/time.h +7 -7
- data/src/core/ext/filters/client_channel/backend_metric.cc +2 -4
- data/src/core/ext/filters/client_channel/client_channel.cc +2829 -1588
- data/src/core/ext/filters/client_channel/client_channel.h +0 -6
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
- data/src/core/ext/filters/client_channel/config_selector.h +15 -4
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +191 -0
- data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +10 -7
- data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -4
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +7 -8
- data/src/core/ext/filters/client_channel/http_proxy.cc +21 -20
- data/src/core/ext/filters/client_channel/lb_policy.cc +9 -2
- data/src/core/ext/filters/client_channel/lb_policy.h +5 -6
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +115 -106
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +55 -23
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +23 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +8 -5
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +370 -109
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +52 -24
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +29 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/{eds_drop.cc → xds_cluster_impl.cc} +332 -108
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +22 -27
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1384 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
- data/src/core/ext/filters/client_channel/resolver.cc +7 -5
- data/src/core/ext/filters/client_channel/resolver.h +5 -13
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +42 -58
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -32
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +3 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +444 -22
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +22 -23
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +21 -18
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +377 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +37 -30
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +342 -133
- data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
- data/src/core/ext/filters/client_channel/resolver_registry.cc +40 -39
- data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +24 -38
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +8 -8
- data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
- data/src/core/ext/filters/client_channel/retry_throttle.h +4 -2
- data/src/core/ext/filters/client_channel/server_address.cc +9 -0
- data/src/core/ext/filters/client_channel/server_address.h +31 -4
- data/src/core/ext/filters/client_channel/service_config.cc +3 -1
- data/src/core/ext/filters/client_channel/service_config.h +1 -1
- data/src/core/ext/filters/client_channel/service_config_call_data.h +19 -1
- data/src/core/ext/filters/client_channel/subchannel.cc +117 -207
- data/src/core/ext/filters/client_channel/subchannel.h +75 -113
- data/src/core/ext/filters/client_channel/subchannel_interface.h +7 -15
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +16 -10
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +1 -1
- data/src/core/ext/filters/deadline/deadline_filter.cc +87 -79
- data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +495 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
- data/src/core/ext/filters/http/client/http_client_filter.cc +1 -1
- data/src/core/ext/filters/http/client_authority_filter.cc +6 -6
- data/src/core/ext/filters/http/http_filters_plugin.cc +6 -3
- data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
- data/src/core/ext/filters/max_age/max_age_filter.cc +36 -33
- data/src/core/ext/filters/message_size/message_size_filter.cc +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +1 -1
- data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
- data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -2
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +1 -1
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +23 -10
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +21 -10
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +29 -16
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +629 -211
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +11 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -5
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +62 -18
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +50 -39
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.h +3 -3
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +5 -1
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -8
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/writing.cc +2 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +42 -8
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -0
- 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 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +27 -28
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +139 -40
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +44 -17
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +119 -124
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +450 -284
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +13 -5
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +24 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +62 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +21 -21
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +88 -39
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +15 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +69 -45
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +275 -78
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +19 -19
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +80 -43
- 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 +7 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +27 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +30 -30
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +136 -49
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +41 -41
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +172 -89
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +17 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +53 -47
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +188 -78
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +9 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +48 -7
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +13 -14
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +59 -36
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +61 -29
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +26 -26
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +101 -66
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +34 -32
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +151 -61
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +33 -29
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +138 -54
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +2 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +13 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +81 -35
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +70 -37
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +257 -216
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +995 -495
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +26 -6
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +3 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +17 -3
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +67 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +96 -98
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +378 -226
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +28 -25
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +124 -53
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +9 -12
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +29 -24
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +32 -33
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +118 -67
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +7 -0
- 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 +7 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +51 -44
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +179 -129
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +1 -4
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +1 -4
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +7 -8
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +31 -16
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +1 -3
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +7 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
- 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 +7 -0
- 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 +7 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +29 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +2 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +16 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
- 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 +19 -0
- 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 +46 -3
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +41 -8
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +19 -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 +7 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +34 -34
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +149 -72
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +54 -37
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +171 -59
- data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/http.upb.h +25 -6
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +90 -90
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +455 -292
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +22 -3
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +7 -0
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +55 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +10 -3
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -3
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +41 -41
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +149 -76
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -6
- 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 +13 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +82 -25
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +19 -0
- 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 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +9 -2
- 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 -0
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +7 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +64 -64
- data/src/core/ext/upb-generated/validate/validate.upb.h +296 -157
- data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/authority.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +60 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +143 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +84 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +94 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +166 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +251 -0
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +543 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +136 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +272 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +135 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +143 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +233 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +231 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +68 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +107 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +113 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +195 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +193 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +101 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +944 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +290 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +120 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +76 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +505 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +170 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +97 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +246 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +142 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +73 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +80 -0
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +80 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +130 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +73 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +33 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +310 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +42 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +62 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +67 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
- data/src/core/ext/xds/certificate_provider_factory.h +7 -5
- data/src/core/ext/xds/certificate_provider_store.cc +87 -0
- data/src/core/ext/xds/certificate_provider_store.h +70 -8
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +144 -0
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +69 -0
- data/src/core/ext/xds/xds_api.cc +2378 -1183
- data/src/core/ext/xds/xds_api.h +373 -99
- data/src/core/ext/xds/xds_bootstrap.cc +250 -68
- data/src/core/ext/xds/xds_bootstrap.h +40 -13
- data/src/core/ext/xds/xds_certificate_provider.cc +405 -0
- data/src/core/ext/xds/xds_certificate_provider.h +151 -0
- data/src/core/ext/xds/xds_client.cc +364 -182
- data/src/core/ext/xds/xds_client.h +47 -12
- data/src/core/ext/xds/xds_client_stats.cc +43 -5
- data/src/core/ext/xds/xds_client_stats.h +4 -4
- data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
- data/src/core/ext/xds/xds_http_filters.cc +114 -0
- data/src/core/ext/xds/xds_http_filters.h +130 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +532 -0
- data/src/core/lib/channel/channel_args.cc +9 -8
- data/src/core/lib/channel/channel_stack.cc +12 -0
- data/src/core/lib/channel/channel_stack.h +7 -0
- data/src/core/lib/channel/channel_trace.cc +4 -2
- data/src/core/lib/channel/channel_trace.h +1 -1
- data/src/core/lib/channel/channelz.cc +105 -18
- data/src/core/lib/channel/channelz.h +32 -4
- data/src/core/lib/channel/channelz_registry.cc +14 -0
- data/src/core/lib/channel/channelz_registry.h +0 -1
- data/src/core/lib/channel/handshaker.cc +4 -46
- data/src/core/lib/channel/handshaker.h +3 -20
- data/src/core/lib/channel/status_util.cc +12 -2
- data/src/core/lib/channel/status_util.h +5 -0
- data/src/core/lib/compression/compression.cc +8 -4
- data/src/core/lib/compression/compression_args.cc +3 -2
- data/src/core/lib/compression/compression_internal.cc +10 -5
- data/src/core/lib/compression/compression_internal.h +2 -1
- data/src/core/lib/compression/stream_compression_identity.cc +1 -3
- data/src/core/lib/debug/stats.h +2 -2
- data/src/core/lib/debug/stats_data.cc +1 -0
- data/src/core/lib/debug/stats_data.h +13 -13
- data/src/core/lib/gpr/alloc.cc +3 -2
- data/src/core/lib/gpr/cpu_iphone.cc +10 -2
- data/src/core/lib/gpr/log.cc +59 -17
- data/src/core/lib/gpr/log_linux.cc +19 -3
- data/src/core/lib/gpr/log_posix.cc +15 -1
- data/src/core/lib/gpr/log_windows.cc +18 -4
- data/src/core/lib/gpr/murmur_hash.cc +1 -1
- data/src/core/lib/gpr/spinlock.h +10 -2
- data/src/core/lib/gpr/string.cc +23 -22
- data/src/core/lib/gpr/string.h +5 -6
- data/src/core/lib/gpr/sync.cc +4 -4
- data/src/core/lib/gpr/sync_abseil.cc +3 -6
- data/src/core/lib/gpr/sync_windows.cc +2 -2
- data/src/core/lib/gpr/time.cc +12 -12
- data/src/core/lib/gpr/time_precise.cc +3 -2
- data/src/core/lib/gpr/tls.h +4 -0
- data/src/core/lib/gpr/tls_msvc.h +2 -0
- data/src/core/lib/gpr/tls_stdcpp.h +48 -0
- data/src/core/lib/gpr/useful.h +5 -4
- data/src/core/lib/gprpp/arena.h +3 -2
- data/src/core/lib/gprpp/atomic.h +3 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +46 -51
- data/src/core/lib/gprpp/examine_stack.cc +43 -0
- data/src/core/lib/gprpp/examine_stack.h +46 -0
- data/src/core/lib/gprpp/fork.cc +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +1 -1
- data/src/core/lib/gprpp/mpscq.cc +2 -2
- data/src/core/lib/gprpp/orphanable.h +4 -8
- data/src/core/lib/gprpp/ref_counted.h +42 -48
- data/src/core/lib/gprpp/ref_counted_ptr.h +20 -12
- data/src/core/lib/{security/authorization/mock_cel/statusor.h → gprpp/stat.h} +13 -25
- data/src/core/lib/gprpp/stat_posix.cc +49 -0
- data/src/core/lib/gprpp/stat_windows.cc +48 -0
- data/src/core/lib/gprpp/sync.h +129 -40
- data/src/core/lib/gprpp/thd.h +3 -3
- data/src/core/lib/gprpp/thd_posix.cc +42 -37
- data/src/core/lib/gprpp/thd_windows.cc +3 -1
- data/src/core/lib/gprpp/time_util.cc +77 -0
- data/src/core/lib/gprpp/time_util.h +42 -0
- data/src/core/lib/http/httpcli.cc +1 -1
- data/src/core/lib/http/httpcli.h +2 -3
- data/src/core/lib/http/httpcli_security_connector.cc +3 -3
- data/src/core/lib/http/parser.cc +47 -27
- data/src/core/lib/iomgr/buffer_list.h +1 -1
- data/src/core/lib/iomgr/call_combiner.cc +8 -5
- data/src/core/lib/iomgr/cfstream_handle.cc +2 -2
- data/src/core/lib/iomgr/combiner.cc +2 -1
- data/src/core/lib/iomgr/endpoint.h +1 -1
- data/src/core/lib/iomgr/error.cc +17 -12
- data/src/core/lib/iomgr/error.h +1 -1
- data/src/core/lib/iomgr/error_internal.h +1 -1
- data/src/core/lib/iomgr/ev_apple.cc +11 -8
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +23 -16
- data/src/core/lib/iomgr/ev_epollex_linux.cc +29 -21
- data/src/core/lib/iomgr/ev_poll_posix.cc +9 -7
- data/src/core/lib/iomgr/ev_posix.cc +3 -3
- data/src/core/lib/iomgr/exec_ctx.cc +7 -3
- data/src/core/lib/iomgr/exec_ctx.h +6 -4
- data/src/core/lib/iomgr/executor.cc +2 -1
- data/src/core/lib/iomgr/executor.h +1 -1
- data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
- data/src/core/lib/iomgr/executor/threadpool.h +4 -4
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr_posix.cc +0 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +0 -1
- data/src/core/lib/iomgr/load_file.h +1 -1
- data/src/core/lib/iomgr/lockfree_event.cc +19 -14
- data/src/core/lib/iomgr/lockfree_event.h +2 -2
- data/src/core/lib/iomgr/parse_address.cc +127 -43
- data/src/core/lib/iomgr/parse_address.h +32 -8
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +2 -1
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +1 -1
- data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
- data/src/core/lib/iomgr/python_util.h +4 -4
- data/src/core/lib/iomgr/resolve_address.cc +4 -4
- data/src/core/lib/iomgr/resolve_address_posix.cc +1 -5
- data/src/core/lib/iomgr/resource_quota.cc +5 -5
- data/src/core/lib/iomgr/sockaddr_utils.cc +131 -11
- data/src/core/lib/iomgr/sockaddr_utils.h +26 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
- data/src/core/lib/iomgr/socket_mutator.cc +3 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -0
- data/src/core/lib/iomgr/tcp_client.cc +3 -3
- data/src/core/lib/iomgr/tcp_client_custom.cc +7 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +1 -1
- data/src/core/lib/iomgr/tcp_custom.cc +22 -17
- data/src/core/lib/iomgr/tcp_posix.cc +17 -16
- data/src/core/lib/iomgr/tcp_server_custom.cc +28 -22
- data/src/core/lib/iomgr/tcp_uv.cc +2 -2
- data/src/core/lib/iomgr/timer_custom.cc +5 -5
- data/src/core/lib/iomgr/timer_generic.cc +5 -5
- data/src/core/lib/iomgr/timer_manager.cc +3 -3
- data/src/core/lib/iomgr/udp_server.cc +1 -2
- data/src/core/lib/iomgr/udp_server.h +1 -2
- data/src/core/lib/iomgr/unix_sockets_posix.cc +32 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +5 -0
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +7 -0
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
- data/src/core/lib/json/json.h +12 -2
- data/src/core/lib/json/json_reader.cc +8 -4
- data/src/core/lib/json/json_util.h +167 -0
- data/src/core/lib/json/json_writer.cc +2 -1
- data/src/core/lib/matchers/matchers.cc +339 -0
- data/src/core/lib/matchers/matchers.h +160 -0
- data/src/core/lib/security/context/security_context.cc +4 -3
- data/src/core/lib/security/context/security_context.h +3 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
- data/src/core/lib/security/credentials/credentials.cc +7 -7
- data/src/core/lib/security/credentials/credentials.h +5 -4
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +413 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +80 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +213 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +497 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.h +120 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +135 -0
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +48 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +213 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +58 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +25 -18
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +5 -4
- data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +39 -46
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +1 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +7 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +30 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +13 -14
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +399 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +138 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +78 -150
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +57 -187
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +18 -13
- data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -3
- data/src/core/lib/security/credentials/tls/tls_utils.cc +91 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +38 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +209 -10
- data/src/core/lib/security/credentials/xds/xds_credentials.h +27 -9
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +3 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +121 -0
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +87 -0
- data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +3 -3
- data/src/core/lib/security/security_connector/security_connector.cc +4 -3
- data/src/core/lib/security/security_connector/security_connector.h +4 -2
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/ssl_utils.cc +11 -6
- data/src/core/lib/security/security_connector/ssl_utils.h +16 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +360 -279
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +105 -61
- data/src/core/lib/security/transport/secure_endpoint.cc +2 -2
- data/src/core/lib/security/transport/security_handshaker.cc +36 -8
- data/src/core/lib/security/transport/server_auth_filter.cc +2 -1
- data/src/core/lib/security/util/json_util.h +1 -0
- data/src/core/lib/slice/slice.cc +7 -4
- data/src/core/lib/slice/slice_buffer.cc +2 -1
- data/src/core/lib/slice/slice_intern.cc +11 -13
- data/src/core/lib/slice/slice_internal.h +2 -2
- data/src/core/lib/surface/call.cc +41 -32
- data/src/core/lib/surface/call_details.cc +8 -8
- data/src/core/lib/surface/channel.cc +16 -10
- data/src/core/lib/surface/channel.h +6 -5
- data/src/core/lib/surface/channel_init.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +31 -25
- data/src/core/lib/surface/completion_queue.h +16 -16
- data/src/core/lib/surface/init.cc +19 -20
- data/src/core/lib/surface/lame_client.cc +47 -54
- data/src/core/lib/surface/lame_client.h +5 -0
- data/src/core/lib/surface/server.cc +106 -53
- data/src/core/lib/surface/server.h +114 -20
- data/src/core/lib/surface/validate_metadata.h +3 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/authority_override.cc +6 -4
- data/src/core/lib/transport/authority_override.h +7 -2
- data/src/core/lib/transport/bdp_estimator.cc +1 -1
- data/src/core/lib/transport/byte_stream.h +3 -3
- data/src/core/lib/transport/connectivity_state.h +9 -7
- data/src/core/lib/transport/error_utils.h +1 -1
- data/src/core/lib/transport/metadata.cc +6 -2
- data/src/core/lib/transport/metadata.h +2 -2
- data/src/core/lib/transport/metadata_batch.cc +27 -0
- data/src/core/lib/transport/metadata_batch.h +18 -4
- data/src/core/lib/transport/static_metadata.cc +1 -1
- data/src/core/lib/transport/status_metadata.cc +4 -3
- data/src/core/lib/transport/timeout_encoding.cc +4 -4
- data/src/core/lib/transport/transport.cc +5 -3
- data/src/core/lib/transport/transport.h +8 -8
- data/src/core/lib/uri/uri_parser.cc +131 -249
- data/src/core/lib/uri/uri_parser.h +57 -21
- data/src/core/plugin_registry/grpc_plugin_registry.cc +26 -8
- data/src/core/tsi/alts/crypt/gsec.cc +5 -4
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +19 -25
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +43 -47
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
- data/src/core/tsi/fake_transport_security.cc +17 -5
- data/src/core/tsi/local_transport_security.cc +5 -1
- data/src/core/tsi/local_transport_security.h +6 -7
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +3 -2
- data/src/core/tsi/ssl_transport_security.cc +73 -56
- data/src/core/tsi/ssl_transport_security.h +6 -6
- data/src/core/tsi/transport_security.cc +10 -8
- data/src/core/tsi/transport_security_interface.h +1 -1
- data/src/ruby/ext/grpc/extconf.rb +10 -2
- data/src/ruby/ext/grpc/rb_channel.c +10 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +36 -14
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +70 -37
- data/src/ruby/ext/grpc/rb_server.c +13 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +35 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +18 -0
- data/src/ruby/spec/call_spec.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +32 -0
- data/src/ruby/spec/channel_spec.rb +17 -6
- data/src/ruby/spec/client_auth_spec.rb +27 -1
- data/src/ruby/spec/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +2 -2
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +59 -22
- data/third_party/abseil-cpp/absl/base/attributes.h +99 -38
- data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
- data/third_party/abseil-cpp/absl/base/casts.h +9 -6
- data/third_party/abseil-cpp/absl/base/config.h +60 -17
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +428 -335
- data/third_party/abseil-cpp/absl/base/internal/bits.h +17 -16
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +5 -0
- data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +29 -1
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +7 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +25 -38
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +19 -25
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +8 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
- data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +2 -2
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
- data/third_party/abseil-cpp/absl/base/macros.h +36 -109
- data/third_party/abseil-cpp/absl/base/optimization.h +61 -1
- data/third_party/abseil-cpp/absl/base/options.h +31 -4
- data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +94 -39
- data/third_party/abseil-cpp/absl/container/fixed_array.h +42 -25
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +33 -36
- data/third_party/abseil-cpp/absl/container/internal/common.h +6 -2
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +33 -8
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +49 -29
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +15 -0
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +24 -7
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +35 -11
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +10 -9
- data/third_party/abseil-cpp/absl/container/internal/layout.h +7 -5
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +55 -34
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +5 -4
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +66 -16
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +4 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +13 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +43 -24
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +12 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +10 -2
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +22 -1
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +0 -21
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +12 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +100 -20
- data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +1 -1
- data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
- data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
- data/third_party/abseil-cpp/absl/hash/hash.h +6 -5
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +73 -65
- data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +2 -8
- data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
- data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +51 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +399 -0
- data/third_party/abseil-cpp/absl/status/status.cc +4 -6
- data/third_party/abseil-cpp/absl/status/status.h +502 -113
- data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +5 -10
- data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
- data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
- data/third_party/abseil-cpp/absl/strings/charconv.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +91 -112
- data/third_party/abseil-cpp/absl/strings/cord.h +360 -205
- data/third_party/abseil-cpp/absl/strings/escaping.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +45 -23
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +222 -136
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +136 -64
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +14 -21
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -14
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +999 -87
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +8 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -2
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
- data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -0
- data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
- data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +4 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +28 -28
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +4 -16
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +8 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -2
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -64
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +15 -6
- data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
- data/third_party/abseil-cpp/absl/time/clock.cc +3 -3
- data/third_party/abseil-cpp/absl/time/duration.cc +90 -59
- data/third_party/abseil-cpp/absl/time/format.cc +43 -36
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +26 -16
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +136 -129
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +8 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -6
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
- data/third_party/abseil-cpp/absl/time/time.h +15 -16
- data/third_party/abseil-cpp/absl/types/internal/variant.h +4 -4
- data/third_party/abseil-cpp/absl/types/optional.h +9 -9
- data/third_party/abseil-cpp/absl/types/span.h +49 -36
- data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
- data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
- data/third_party/boringssl-with-bazel/err_data.c +728 -722
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +3 -10
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +15 -14
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +30 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +28 -79
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +39 -85
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +5 -16
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -61
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +158 -0
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +8 -9
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +60 -45
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +87 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +21 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +173 -35
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +136 -213
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +28 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +135 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +0 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +97 -39
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +155 -2
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +18 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +13 -4
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +90 -63
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +60 -60
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +179 -47
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +10 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +1 -29
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +29 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +22 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +39 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +25 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +25 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +40 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +25 -36
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +6 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +24 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +10 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +652 -545
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -167
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +14 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +22 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +19 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +56 -26
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +15 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +12 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +3 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +2 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +122 -34
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +31 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +31 -23
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +287 -99
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +546 -402
- data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +35 -0
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +11 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +10 -5
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +73 -17
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +49 -9
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +87 -14
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +18 -22
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +570 -53
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +55 -13
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +48 -15
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +192 -56
- data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
- data/third_party/upb/upb/decode.c +248 -167
- data/third_party/upb/upb/decode.h +20 -1
- data/third_party/upb/upb/decode.int.h +163 -0
- data/third_party/upb/upb/decode_fast.c +1040 -0
- data/third_party/upb/upb/decode_fast.h +126 -0
- data/third_party/upb/upb/def.c +2178 -0
- data/third_party/upb/upb/def.h +315 -0
- data/third_party/upb/upb/def.hpp +439 -0
- data/third_party/upb/upb/encode.c +227 -169
- data/third_party/upb/upb/encode.h +27 -2
- data/third_party/upb/upb/msg.c +167 -88
- data/third_party/upb/upb/msg.h +174 -34
- data/third_party/upb/upb/port_def.inc +74 -61
- data/third_party/upb/upb/port_undef.inc +3 -7
- data/third_party/upb/upb/reflection.c +408 -0
- data/third_party/upb/upb/reflection.h +168 -0
- data/third_party/upb/upb/table.c +34 -197
- data/third_party/upb/upb/table.int.h +14 -5
- data/third_party/upb/upb/text_encode.c +421 -0
- data/third_party/upb/upb/text_encode.h +38 -0
- data/third_party/upb/upb/upb.c +18 -41
- data/third_party/upb/upb/upb.h +36 -7
- data/third_party/upb/upb/upb.hpp +4 -4
- data/third_party/upb/upb/upb.int.h +29 -0
- data/third_party/xxhash/xxhash.h +5443 -0
- metadata +335 -75
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -1136
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -355
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -138
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +0 -53
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +0 -52
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +0 -129
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +0 -42
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +0 -77
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +0 -36
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +0 -85
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +0 -54
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +0 -160
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +0 -36
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +0 -84
- data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.cc +0 -377
- data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.h +0 -102
- data/src/core/lib/gprpp/map.h +0 -53
- data/src/core/lib/iomgr/iomgr_posix.h +0 -26
- data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
- data/src/core/lib/security/authorization/authorization_engine.h +0 -84
- data/src/core/lib/security/authorization/evaluate_args.cc +0 -153
- data/src/core/lib/security/authorization/evaluate_args.h +0 -59
- data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -42
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -68
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -93
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -56
- data/src/core/lib/security/certificate_provider.h +0 -60
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -503
- data/third_party/upb/upb/port.c +0 -26
@@ -21,7 +21,10 @@
|
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
+
#include <map>
|
25
|
+
|
24
26
|
#include "src/core/ext/filters/client_channel/subchannel_pool_interface.h"
|
27
|
+
#include "src/core/lib/gprpp/sync.h"
|
25
28
|
|
26
29
|
namespace grpc_core {
|
27
30
|
|
@@ -33,8 +36,8 @@ namespace grpc_core {
|
|
33
36
|
class GlobalSubchannelPool final : public SubchannelPoolInterface {
|
34
37
|
public:
|
35
38
|
// The ctor and dtor are not intended to use directly.
|
36
|
-
GlobalSubchannelPool()
|
37
|
-
~GlobalSubchannelPool() override
|
39
|
+
GlobalSubchannelPool() {}
|
40
|
+
~GlobalSubchannelPool() override {}
|
38
41
|
|
39
42
|
// Should be called exactly once at filter initialization time.
|
40
43
|
static void Init();
|
@@ -45,22 +48,24 @@ class GlobalSubchannelPool final : public SubchannelPoolInterface {
|
|
45
48
|
static RefCountedPtr<GlobalSubchannelPool> instance();
|
46
49
|
|
47
50
|
// Implements interface methods.
|
48
|
-
Subchannel
|
49
|
-
|
50
|
-
|
51
|
-
|
51
|
+
RefCountedPtr<Subchannel> RegisterSubchannel(
|
52
|
+
const SubchannelKey& key, RefCountedPtr<Subchannel> constructed) override
|
53
|
+
ABSL_LOCKS_EXCLUDED(mu_);
|
54
|
+
void UnregisterSubchannel(const SubchannelKey& key,
|
55
|
+
Subchannel* subchannel) override
|
56
|
+
ABSL_LOCKS_EXCLUDED(mu_);
|
57
|
+
RefCountedPtr<Subchannel> FindSubchannel(const SubchannelKey& key) override
|
58
|
+
ABSL_LOCKS_EXCLUDED(mu_);
|
52
59
|
|
53
60
|
private:
|
54
61
|
// The singleton instance. (It's a pointer to RefCountedPtr so that this
|
55
62
|
// non-local static object can be trivially destructible.)
|
56
63
|
static RefCountedPtr<GlobalSubchannelPool>* instance_;
|
57
64
|
|
58
|
-
// The vtable for subchannel operations in an AVL tree.
|
59
|
-
static const grpc_avl_vtable subchannel_avl_vtable_;
|
60
65
|
// A map from subchannel key to subchannel.
|
61
|
-
|
66
|
+
std::map<SubchannelKey, Subchannel*> subchannel_map_ ABSL_GUARDED_BY(mu_);
|
62
67
|
// To protect subchannel_map_.
|
63
|
-
|
68
|
+
Mutex mu_;
|
64
69
|
};
|
65
70
|
|
66
71
|
} // namespace grpc_core
|
@@ -46,13 +46,16 @@ TraceFlag grpc_health_check_client_trace(false, "health_check_client");
|
|
46
46
|
//
|
47
47
|
|
48
48
|
HealthCheckClient::HealthCheckClient(
|
49
|
-
|
49
|
+
std::string service_name,
|
50
50
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel,
|
51
51
|
grpc_pollset_set* interested_parties,
|
52
52
|
RefCountedPtr<channelz::SubchannelNode> channelz_node,
|
53
53
|
RefCountedPtr<ConnectivityStateWatcherInterface> watcher)
|
54
|
-
: InternallyRefCounted<HealthCheckClient>(
|
55
|
-
|
54
|
+
: InternallyRefCounted<HealthCheckClient>(
|
55
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_health_check_client_trace)
|
56
|
+
? "HealthCheckClient"
|
57
|
+
: nullptr),
|
58
|
+
service_name_(std::move(service_name)),
|
56
59
|
connected_subchannel_(std::move(connected_subchannel)),
|
57
60
|
interested_parties_(interested_parties),
|
58
61
|
channelz_node_(std::move(channelz_node)),
|
@@ -177,13 +180,14 @@ void HealthCheckClient::OnRetryTimer(void* arg, grpc_error* error) {
|
|
177
180
|
|
178
181
|
namespace {
|
179
182
|
|
180
|
-
void EncodeRequest(const
|
183
|
+
void EncodeRequest(const std::string& service_name,
|
181
184
|
ManualConstructor<SliceBufferByteStream>* send_message) {
|
182
185
|
upb::Arena arena;
|
183
186
|
grpc_health_v1_HealthCheckRequest* request_struct =
|
184
187
|
grpc_health_v1_HealthCheckRequest_new(arena.ptr());
|
185
188
|
grpc_health_v1_HealthCheckRequest_set_service(
|
186
|
-
request_struct,
|
189
|
+
request_struct,
|
190
|
+
upb_strview_make(service_name.data(), service_name.size()));
|
187
191
|
size_t buf_length;
|
188
192
|
char* buf = grpc_health_v1_HealthCheckRequest_serialize(
|
189
193
|
request_struct, arena.ptr(), &buf_length);
|
@@ -249,7 +253,7 @@ HealthCheckClient::CallState::CallState(
|
|
249
253
|
: health_check_client_(std::move(health_check_client)),
|
250
254
|
pollent_(grpc_polling_entity_create_from_pollset_set(interested_parties)),
|
251
255
|
arena_(Arena::Create(health_check_client_->connected_subchannel_
|
252
|
-
->GetInitialCallSizeEstimate(
|
256
|
+
->GetInitialCallSizeEstimate())),
|
253
257
|
payload_(context_) {}
|
254
258
|
|
255
259
|
HealthCheckClient::CallState::~CallState() {
|
@@ -288,7 +292,6 @@ void HealthCheckClient::CallState::StartCall() {
|
|
288
292
|
arena_,
|
289
293
|
context_,
|
290
294
|
&call_combiner_,
|
291
|
-
0, // parent_data_size
|
292
295
|
};
|
293
296
|
grpc_error* error = GRPC_ERROR_NONE;
|
294
297
|
call_ = SubchannelCall::Create(std::move(args), &error).release();
|
@@ -44,13 +44,13 @@ namespace grpc_core {
|
|
44
44
|
|
45
45
|
class HealthCheckClient : public InternallyRefCounted<HealthCheckClient> {
|
46
46
|
public:
|
47
|
-
HealthCheckClient(
|
47
|
+
HealthCheckClient(std::string service_name,
|
48
48
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel,
|
49
49
|
grpc_pollset_set* interested_parties,
|
50
50
|
RefCountedPtr<channelz::SubchannelNode> channelz_node,
|
51
51
|
RefCountedPtr<ConnectivityStateWatcherInterface> watcher);
|
52
52
|
|
53
|
-
~HealthCheckClient();
|
53
|
+
~HealthCheckClient() override;
|
54
54
|
|
55
55
|
void Orphan() override;
|
56
56
|
|
@@ -60,7 +60,7 @@ class HealthCheckClient : public InternallyRefCounted<HealthCheckClient> {
|
|
60
60
|
public:
|
61
61
|
CallState(RefCountedPtr<HealthCheckClient> health_check_client,
|
62
62
|
grpc_pollset_set* interested_parties_);
|
63
|
-
~CallState();
|
63
|
+
~CallState() override;
|
64
64
|
|
65
65
|
void Orphan() override;
|
66
66
|
|
@@ -150,7 +150,7 @@ class HealthCheckClient : public InternallyRefCounted<HealthCheckClient> {
|
|
150
150
|
void SetHealthStatusLocked(grpc_connectivity_state state,
|
151
151
|
const char* reason); // Requires holding mu_.
|
152
152
|
|
153
|
-
|
153
|
+
std::string service_name_;
|
154
154
|
RefCountedPtr<ConnectedSubchannel> connected_subchannel_;
|
155
155
|
grpc_pollset_set* interested_parties_; // Do not own.
|
156
156
|
RefCountedPtr<channelz::SubchannelNode> channelz_node_;
|
@@ -54,7 +54,7 @@ class HttpConnectHandshaker : public Handshaker {
|
|
54
54
|
const char* name() const override { return "http_connect"; }
|
55
55
|
|
56
56
|
private:
|
57
|
-
|
57
|
+
~HttpConnectHandshaker() override;
|
58
58
|
void CleanupArgsForFailureLocked();
|
59
59
|
void HandshakeFailedLocked(grpc_error* error);
|
60
60
|
static void OnWriteDone(void* arg, grpc_error* error);
|
@@ -151,7 +151,7 @@ void HttpConnectHandshaker::OnWriteDone(void* arg, grpc_error* error) {
|
|
151
151
|
// If the write failed or we're shutting down, clean up and invoke the
|
152
152
|
// callback with the error.
|
153
153
|
handshaker->HandshakeFailedLocked(GRPC_ERROR_REF(error));
|
154
|
-
lock.
|
154
|
+
lock.Release();
|
155
155
|
handshaker->Unref();
|
156
156
|
} else {
|
157
157
|
// Otherwise, read the response.
|
@@ -256,7 +256,7 @@ done:
|
|
256
256
|
// Set shutdown to true so that subsequent calls to
|
257
257
|
// http_connect_handshaker_shutdown() do nothing.
|
258
258
|
handshaker->is_shutdown_ = true;
|
259
|
-
lock.
|
259
|
+
lock.Release();
|
260
260
|
handshaker->Unref();
|
261
261
|
}
|
262
262
|
|
@@ -332,7 +332,7 @@ void HttpConnectHandshaker::DoHandshake(grpc_tcp_server_acceptor* /*acceptor*/,
|
|
332
332
|
grpc_httpcli_request request;
|
333
333
|
request.host = server_name;
|
334
334
|
request.ssl_host_override = nullptr;
|
335
|
-
request.http.method = (
|
335
|
+
request.http.method = const_cast<char*>("CONNECT");
|
336
336
|
request.http.path = server_name;
|
337
337
|
request.http.version = GRPC_HTTP_HTTP10; // Set by OnReadDone
|
338
338
|
request.http.hdrs = headers;
|
@@ -382,8 +382,7 @@ class HttpConnectHandshakerFactory : public HandshakerFactory {
|
|
382
382
|
} // namespace grpc_core
|
383
383
|
|
384
384
|
void grpc_http_connect_register_handshaker_factory() {
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
absl::make_unique<HttpConnectHandshakerFactory>());
|
385
|
+
grpc_core::HandshakerRegistry::RegisterHandshakerFactory(
|
386
|
+
true /* at_start */, grpc_core::HANDSHAKER_CLIENT,
|
387
|
+
absl::make_unique<grpc_core::HttpConnectHandshakerFactory>());
|
389
388
|
}
|
@@ -24,6 +24,7 @@
|
|
24
24
|
#include <string.h>
|
25
25
|
|
26
26
|
#include "absl/strings/str_cat.h"
|
27
|
+
#include "absl/strings/strip.h"
|
27
28
|
|
28
29
|
#include <grpc/support/alloc.h>
|
29
30
|
#include <grpc/support/log.h>
|
@@ -47,9 +48,10 @@ namespace {
|
|
47
48
|
* credentials if present in the 'http_proxy' env var, otherwise leaves it
|
48
49
|
* unchanged. It is caller's responsibility to gpr_free user_cred.
|
49
50
|
*/
|
51
|
+
// TODO(hork): change this to return std::string
|
50
52
|
char* GetHttpProxyServer(const grpc_channel_args* args, char** user_cred) {
|
51
53
|
GPR_ASSERT(user_cred != nullptr);
|
52
|
-
|
54
|
+
absl::StatusOr<URI> uri;
|
53
55
|
char* proxy_name = nullptr;
|
54
56
|
char** authority_strs = nullptr;
|
55
57
|
size_t authority_nstrs;
|
@@ -69,17 +71,20 @@ char* GetHttpProxyServer(const grpc_channel_args* args, char** user_cred) {
|
|
69
71
|
if (uri_str == nullptr) return nullptr;
|
70
72
|
// an emtpy value means "don't use proxy"
|
71
73
|
if (uri_str[0] == '\0') goto done;
|
72
|
-
uri =
|
73
|
-
if (uri
|
74
|
-
gpr_log(GPR_ERROR, "cannot parse value of 'http_proxy' env var"
|
74
|
+
uri = URI::Parse(uri_str);
|
75
|
+
if (!uri.ok() || uri->authority().empty()) {
|
76
|
+
gpr_log(GPR_ERROR, "cannot parse value of 'http_proxy' env var. Error: %s",
|
77
|
+
uri.status().ToString().c_str());
|
75
78
|
goto done;
|
76
79
|
}
|
77
|
-
if (
|
78
|
-
gpr_log(GPR_ERROR, "'%s' scheme not supported in proxy URI",
|
80
|
+
if (uri->scheme() != "http") {
|
81
|
+
gpr_log(GPR_ERROR, "'%s' scheme not supported in proxy URI",
|
82
|
+
uri->scheme().c_str());
|
79
83
|
goto done;
|
80
84
|
}
|
81
85
|
/* Split on '@' to separate user credentials from host */
|
82
|
-
gpr_string_split(uri->authority, "@", &authority_strs,
|
86
|
+
gpr_string_split(uri->authority().c_str(), "@", &authority_strs,
|
87
|
+
&authority_nstrs);
|
83
88
|
GPR_ASSERT(authority_nstrs != 0); /* should have at least 1 string */
|
84
89
|
if (authority_nstrs == 1) {
|
85
90
|
/* User cred not present in authority */
|
@@ -99,7 +104,6 @@ char* GetHttpProxyServer(const grpc_channel_args* args, char** user_cred) {
|
|
99
104
|
gpr_free(authority_strs);
|
100
105
|
done:
|
101
106
|
gpr_free(uri_str);
|
102
|
-
grpc_uri_destroy(uri);
|
103
107
|
return proxy_name;
|
104
108
|
}
|
105
109
|
|
@@ -114,15 +118,15 @@ class HttpProxyMapper : public ProxyMapperInterface {
|
|
114
118
|
*name_to_resolve = GetHttpProxyServer(args, &user_cred);
|
115
119
|
if (*name_to_resolve == nullptr) return false;
|
116
120
|
char* no_proxy_str = nullptr;
|
117
|
-
|
118
|
-
if (uri
|
121
|
+
absl::StatusOr<URI> uri = URI::Parse(server_uri);
|
122
|
+
if (!uri.ok() || uri->path().empty()) {
|
119
123
|
gpr_log(GPR_ERROR,
|
120
124
|
"'http_proxy' environment variable set, but cannot "
|
121
|
-
"parse server URI '%s' -- not using proxy",
|
122
|
-
server_uri);
|
125
|
+
"parse server URI '%s' -- not using proxy. Error: %s",
|
126
|
+
server_uri, uri.status().ToString().c_str());
|
123
127
|
goto no_use_proxy;
|
124
128
|
}
|
125
|
-
if (
|
129
|
+
if (uri->scheme() == "unix") {
|
126
130
|
gpr_log(GPR_INFO, "not using proxy for Unix domain socket '%s'",
|
127
131
|
server_uri);
|
128
132
|
goto no_use_proxy;
|
@@ -135,9 +139,8 @@ class HttpProxyMapper : public ProxyMapperInterface {
|
|
135
139
|
bool use_proxy = true;
|
136
140
|
std::string server_host;
|
137
141
|
std::string server_port;
|
138
|
-
if (!
|
139
|
-
|
140
|
-
&server_port)) {
|
142
|
+
if (!SplitHostPort(absl::StripPrefix(uri->path(), "/"), &server_host,
|
143
|
+
&server_port)) {
|
141
144
|
gpr_log(GPR_INFO,
|
142
145
|
"unable to split host and port, not checking no_proxy list for "
|
143
146
|
"host '%s'",
|
@@ -172,8 +175,8 @@ class HttpProxyMapper : public ProxyMapperInterface {
|
|
172
175
|
}
|
173
176
|
grpc_arg args_to_add[2];
|
174
177
|
args_to_add[0] = grpc_channel_arg_string_create(
|
175
|
-
(
|
176
|
-
uri->path
|
178
|
+
const_cast<char*>(GRPC_ARG_HTTP_CONNECT_SERVER),
|
179
|
+
const_cast<char*>(absl::StripPrefix(uri->path(), "/").data()));
|
177
180
|
if (user_cred != nullptr) {
|
178
181
|
/* Use base64 encoding for user credentials as stated in RFC 7617 */
|
179
182
|
char* encoded_user_cred =
|
@@ -188,11 +191,9 @@ class HttpProxyMapper : public ProxyMapperInterface {
|
|
188
191
|
} else {
|
189
192
|
*new_args = grpc_channel_args_copy_and_add(args, args_to_add, 1);
|
190
193
|
}
|
191
|
-
grpc_uri_destroy(uri);
|
192
194
|
gpr_free(user_cred);
|
193
195
|
return true;
|
194
196
|
no_use_proxy:
|
195
|
-
if (uri != nullptr) grpc_uri_destroy(uri);
|
196
197
|
gpr_free(*name_to_resolve);
|
197
198
|
*name_to_resolve = nullptr;
|
198
199
|
gpr_free(user_cred);
|
@@ -32,7 +32,11 @@ DebugOnlyTraceFlag grpc_trace_lb_policy_refcount(false, "lb_policy_refcount");
|
|
32
32
|
//
|
33
33
|
|
34
34
|
LoadBalancingPolicy::LoadBalancingPolicy(Args args, intptr_t initial_refcount)
|
35
|
-
: InternallyRefCounted(
|
35
|
+
: InternallyRefCounted(
|
36
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_trace_lb_policy_refcount)
|
37
|
+
? "LoadBalancingPolicy"
|
38
|
+
: nullptr,
|
39
|
+
initial_refcount),
|
36
40
|
work_serializer_(std::move(args.work_serializer)),
|
37
41
|
interested_parties_(grpc_pollset_set_create()),
|
38
42
|
channel_control_helper_(std::move(args.channel_control_helper)) {}
|
@@ -66,6 +70,9 @@ LoadBalancingPolicy::UpdateArgs::UpdateArgs(UpdateArgs&& other) noexcept {
|
|
66
70
|
|
67
71
|
LoadBalancingPolicy::UpdateArgs& LoadBalancingPolicy::UpdateArgs::operator=(
|
68
72
|
const UpdateArgs& other) {
|
73
|
+
if (&other == this) {
|
74
|
+
return *this;
|
75
|
+
}
|
69
76
|
addresses = other.addresses;
|
70
77
|
config = other.config;
|
71
78
|
grpc_channel_args_destroy(args);
|
@@ -101,7 +108,7 @@ LoadBalancingPolicy::PickResult LoadBalancingPolicy::QueuePicker::Pick(
|
|
101
108
|
// 2. We are currently running in the data plane mutex, but we
|
102
109
|
// need to bounce into the control plane work_serializer to call
|
103
110
|
// ExitIdleLocked().
|
104
|
-
if (!exit_idle_called_) {
|
111
|
+
if (!exit_idle_called_ && parent_ != nullptr) {
|
105
112
|
exit_idle_called_ = true;
|
106
113
|
auto* parent = parent_->Ref().release(); // ref held by lambda.
|
107
114
|
ExecCtx::Run(DEBUG_LOCATION,
|
@@ -30,7 +30,6 @@
|
|
30
30
|
#include "src/core/ext/filters/client_channel/server_address.h"
|
31
31
|
#include "src/core/ext/filters/client_channel/service_config.h"
|
32
32
|
#include "src/core/ext/filters/client_channel/subchannel_interface.h"
|
33
|
-
#include "src/core/lib/gprpp/map.h"
|
34
33
|
#include "src/core/lib/gprpp/orphanable.h"
|
35
34
|
#include "src/core/lib/gprpp/ref_counted_ptr.h"
|
36
35
|
#include "src/core/lib/iomgr/polling_entity.h"
|
@@ -95,11 +94,11 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
95
94
|
/// Application-specific requests cost metrics. Metric names are
|
96
95
|
/// determined by the application. Each value is an absolute cost
|
97
96
|
/// (e.g. 3487 bytes of storage) associated with the request.
|
98
|
-
std::map<absl::string_view, double
|
97
|
+
std::map<absl::string_view, double> request_cost;
|
99
98
|
/// Application-specific resource utilization metrics. Metric names
|
100
99
|
/// are determined by the application. Each value is expressed as a
|
101
100
|
/// fraction of total resources available.
|
102
|
-
std::map<absl::string_view, double
|
101
|
+
std::map<absl::string_view, double> utilization;
|
103
102
|
};
|
104
103
|
|
105
104
|
/// Interface for accessing per-call state.
|
@@ -301,7 +300,7 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
301
300
|
/// return the parameters they need.
|
302
301
|
class Config : public RefCounted<Config> {
|
303
302
|
public:
|
304
|
-
|
303
|
+
~Config() override = default;
|
305
304
|
|
306
305
|
// Returns the load balancing policy name
|
307
306
|
virtual const char* name() const = 0;
|
@@ -341,7 +340,7 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
341
340
|
};
|
342
341
|
|
343
342
|
explicit LoadBalancingPolicy(Args args, intptr_t initial_refcount = 1);
|
344
|
-
|
343
|
+
~LoadBalancingPolicy() override;
|
345
344
|
|
346
345
|
// Not copyable nor movable.
|
347
346
|
LoadBalancingPolicy(const LoadBalancingPolicy&) = delete;
|
@@ -376,7 +375,7 @@ class LoadBalancingPolicy : public InternallyRefCounted<LoadBalancingPolicy> {
|
|
376
375
|
explicit QueuePicker(RefCountedPtr<LoadBalancingPolicy> parent)
|
377
376
|
: parent_(std::move(parent)) {}
|
378
377
|
|
379
|
-
~QueuePicker() { parent_.reset(DEBUG_LOCATION, "QueuePicker"); }
|
378
|
+
~QueuePicker() override { parent_.reset(DEBUG_LOCATION, "QueuePicker"); }
|
380
379
|
|
381
380
|
PickResult Pick(PickArgs args) override;
|
382
381
|
|
@@ -36,7 +36,7 @@ class ChildPolicyHandler::Helper
|
|
36
36
|
explicit Helper(RefCountedPtr<ChildPolicyHandler> parent)
|
37
37
|
: parent_(std::move(parent)) {}
|
38
38
|
|
39
|
-
~Helper() { parent_.reset(DEBUG_LOCATION, "Helper"); }
|
39
|
+
~Helper() override { parent_.reset(DEBUG_LOCATION, "Helper"); }
|
40
40
|
|
41
41
|
RefCountedPtr<SubchannelInterface> CreateSubchannel(
|
42
42
|
ServerAddress address, const grpc_channel_args& args) override {
|
@@ -36,7 +36,7 @@ class ChildPolicyHandler : public LoadBalancingPolicy {
|
|
36
36
|
ChildPolicyHandler(Args args, TraceFlag* tracer)
|
37
37
|
: LoadBalancingPolicy(std::move(args)), tracer_(tracer) {}
|
38
38
|
|
39
|
-
|
39
|
+
const char* name() const override { return "child_policy_handler"; }
|
40
40
|
|
41
41
|
void UpdateLocked(UpdateArgs args) override;
|
42
42
|
void ExitIdleLocked() override;
|
@@ -68,6 +68,7 @@
|
|
68
68
|
#include "absl/strings/str_cat.h"
|
69
69
|
#include "absl/strings/str_format.h"
|
70
70
|
#include "absl/strings/str_join.h"
|
71
|
+
#include "absl/strings/strip.h"
|
71
72
|
|
72
73
|
#include "upb/upb.hpp"
|
73
74
|
|
@@ -164,7 +165,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
164
165
|
public:
|
165
166
|
explicit BalancerCallState(
|
166
167
|
RefCountedPtr<LoadBalancingPolicy> parent_grpclb_policy);
|
167
|
-
~BalancerCallState();
|
168
|
+
~BalancerCallState() override;
|
168
169
|
|
169
170
|
// It's the caller's responsibility to ensure that Orphan() is called from
|
170
171
|
// inside the combiner.
|
@@ -235,6 +236,23 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
235
236
|
grpc_closure client_load_report_closure_;
|
236
237
|
};
|
237
238
|
|
239
|
+
class SubchannelWrapper : public DelegatingSubchannel {
|
240
|
+
public:
|
241
|
+
SubchannelWrapper(RefCountedPtr<SubchannelInterface> subchannel,
|
242
|
+
std::string lb_token,
|
243
|
+
RefCountedPtr<GrpcLbClientStats> client_stats)
|
244
|
+
: DelegatingSubchannel(std::move(subchannel)),
|
245
|
+
lb_token_(std::move(lb_token)),
|
246
|
+
client_stats_(std::move(client_stats)) {}
|
247
|
+
|
248
|
+
const std::string& lb_token() const { return lb_token_; }
|
249
|
+
GrpcLbClientStats* client_stats() const { return client_stats_.get(); }
|
250
|
+
|
251
|
+
private:
|
252
|
+
std::string lb_token_;
|
253
|
+
RefCountedPtr<GrpcLbClientStats> client_stats_;
|
254
|
+
};
|
255
|
+
|
238
256
|
class TokenAndClientStatsAttribute
|
239
257
|
: public ServerAddress::AttributeInterface {
|
240
258
|
public:
|
@@ -262,7 +280,9 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
262
280
|
}
|
263
281
|
|
264
282
|
const std::string& lb_token() const { return lb_token_; }
|
265
|
-
GrpcLbClientStats
|
283
|
+
RefCountedPtr<GrpcLbClientStats> client_stats() const {
|
284
|
+
return client_stats_;
|
285
|
+
}
|
266
286
|
|
267
287
|
private:
|
268
288
|
std::string lb_token_;
|
@@ -310,21 +330,16 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
310
330
|
|
311
331
|
class Picker : public SubchannelPicker {
|
312
332
|
public:
|
313
|
-
Picker(
|
333
|
+
Picker(RefCountedPtr<Serverlist> serverlist,
|
314
334
|
std::unique_ptr<SubchannelPicker> child_picker,
|
315
335
|
RefCountedPtr<GrpcLbClientStats> client_stats)
|
316
|
-
:
|
317
|
-
serverlist_(std::move(serverlist)),
|
336
|
+
: serverlist_(std::move(serverlist)),
|
318
337
|
child_picker_(std::move(child_picker)),
|
319
338
|
client_stats_(std::move(client_stats)) {}
|
320
339
|
|
321
340
|
PickResult Pick(PickArgs args) override;
|
322
341
|
|
323
342
|
private:
|
324
|
-
// Storing the address for logging, but not holding a ref.
|
325
|
-
// DO NOT DEFERENCE!
|
326
|
-
GrpcLb* parent_;
|
327
|
-
|
328
343
|
// Serverlist to be used for determining drops.
|
329
344
|
RefCountedPtr<Serverlist> serverlist_;
|
330
345
|
|
@@ -355,7 +370,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
355
370
|
: AsyncConnectivityStateWatcherInterface(parent->work_serializer()),
|
356
371
|
parent_(std::move(parent)) {}
|
357
372
|
|
358
|
-
~StateWatcher() { parent_.reset(DEBUG_LOCATION, "StateWatcher"); }
|
373
|
+
~StateWatcher() override { parent_.reset(DEBUG_LOCATION, "StateWatcher"); }
|
359
374
|
|
360
375
|
private:
|
361
376
|
void OnConnectivityStateChange(grpc_connectivity_state new_state,
|
@@ -381,7 +396,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
381
396
|
RefCountedPtr<GrpcLb> parent_;
|
382
397
|
};
|
383
398
|
|
384
|
-
~GrpcLb();
|
399
|
+
~GrpcLb() override;
|
385
400
|
|
386
401
|
void ShutdownLocked() override;
|
387
402
|
|
@@ -412,7 +427,7 @@ class GrpcLb : public LoadBalancingPolicy {
|
|
412
427
|
void CreateOrUpdateChildPolicyLocked();
|
413
428
|
|
414
429
|
// Who the client is trying to communicate with.
|
415
|
-
|
430
|
+
std::string server_name_;
|
416
431
|
// Configurations for the policy.
|
417
432
|
RefCountedPtr<GrpcLbConfig> config_;
|
418
433
|
|
@@ -477,7 +492,7 @@ bool GrpcLb::Serverlist::operator==(const Serverlist& other) const {
|
|
477
492
|
void ParseServer(const GrpcLbServer& server, grpc_resolved_address* addr) {
|
478
493
|
memset(addr, 0, sizeof(*addr));
|
479
494
|
if (server.drop) return;
|
480
|
-
const uint16_t netorder_port = grpc_htons((
|
495
|
+
const uint16_t netorder_port = grpc_htons(static_cast<uint16_t>(server.port));
|
481
496
|
/* the addresses are given in binary format (a in(6)_addr struct) in
|
482
497
|
* server->ip_address.bytes. */
|
483
498
|
if (server.ip_size == 4) {
|
@@ -488,7 +503,8 @@ void ParseServer(const GrpcLbServer& server, grpc_resolved_address* addr) {
|
|
488
503
|
addr4->sin_port = netorder_port;
|
489
504
|
} else if (server.ip_size == 16) {
|
490
505
|
addr->len = static_cast<socklen_t>(sizeof(grpc_sockaddr_in6));
|
491
|
-
grpc_sockaddr_in6* addr6 =
|
506
|
+
grpc_sockaddr_in6* addr6 =
|
507
|
+
reinterpret_cast<grpc_sockaddr_in6*>(&addr->addr);
|
492
508
|
addr6->sin6_family = GRPC_AF_INET6;
|
493
509
|
memcpy(&addr6->sin6_addr, server.ip_addr, server.ip_size);
|
494
510
|
addr6->sin6_port = netorder_port;
|
@@ -518,17 +534,18 @@ bool IsServerValid(const GrpcLbServer& server, size_t idx, bool log) {
|
|
518
534
|
if (GPR_UNLIKELY(server.port >> 16 != 0)) {
|
519
535
|
if (log) {
|
520
536
|
gpr_log(GPR_ERROR,
|
521
|
-
"Invalid port '%d' at index %
|
522
|
-
|
537
|
+
"Invalid port '%d' at index %" PRIuPTR
|
538
|
+
" of serverlist. Ignoring.",
|
539
|
+
server.port, idx);
|
523
540
|
}
|
524
541
|
return false;
|
525
542
|
}
|
526
543
|
if (GPR_UNLIKELY(server.ip_size != 4 && server.ip_size != 16)) {
|
527
544
|
if (log) {
|
528
545
|
gpr_log(GPR_ERROR,
|
529
|
-
"Expected IP to be 4 or 16 bytes, got %d at index %
|
530
|
-
"serverlist. Ignoring",
|
531
|
-
server.ip_size,
|
546
|
+
"Expected IP to be 4 or 16 bytes, got %d at index %" PRIuPTR
|
547
|
+
" of serverlist. Ignoring",
|
548
|
+
server.ip_size, idx);
|
532
549
|
}
|
533
550
|
return false;
|
534
551
|
}
|
@@ -591,7 +608,8 @@ const char* GrpcLb::Serverlist::ShouldDrop() {
|
|
591
608
|
GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
592
609
|
PickResult result;
|
593
610
|
// Check if we should drop the call.
|
594
|
-
const char* drop_token =
|
611
|
+
const char* drop_token =
|
612
|
+
serverlist_ == nullptr ? nullptr : serverlist_->ShouldDrop();
|
595
613
|
if (drop_token != nullptr) {
|
596
614
|
// Update client load reporting stats to indicate the number of
|
597
615
|
// dropped calls. Note that we have to do this here instead of in
|
@@ -609,17 +627,11 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
609
627
|
// If pick succeeded, add LB token to initial metadata.
|
610
628
|
if (result.type == PickResult::PICK_COMPLETE &&
|
611
629
|
result.subchannel != nullptr) {
|
612
|
-
const
|
613
|
-
static_cast<
|
614
|
-
result.subchannel->GetAttribute(kGrpcLbAddressAttributeKey));
|
615
|
-
if (attribute == nullptr) {
|
616
|
-
gpr_log(GPR_ERROR, "[grpclb %p picker %p] No LB token for subchannel %p",
|
617
|
-
parent_, this, result.subchannel.get());
|
618
|
-
abort();
|
619
|
-
}
|
630
|
+
const SubchannelWrapper* subchannel_wrapper =
|
631
|
+
static_cast<SubchannelWrapper*>(result.subchannel.get());
|
620
632
|
// Encode client stats object into metadata for use by
|
621
633
|
// client_load_reporting filter.
|
622
|
-
GrpcLbClientStats* client_stats =
|
634
|
+
GrpcLbClientStats* client_stats = subchannel_wrapper->client_stats();
|
623
635
|
if (client_stats != nullptr) {
|
624
636
|
client_stats->Ref().release(); // Ref passed via metadata.
|
625
637
|
// The metadata value is a hack: we pretend the pointer points to
|
@@ -635,10 +647,14 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
635
647
|
// Create a new copy on the call arena, since the subchannel list
|
636
648
|
// may get refreshed between when we return this pick and when the
|
637
649
|
// initial metadata goes out on the wire.
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
650
|
+
if (!subchannel_wrapper->lb_token().empty()) {
|
651
|
+
char* lb_token = static_cast<char*>(
|
652
|
+
args.call_state->Alloc(subchannel_wrapper->lb_token().size() + 1));
|
653
|
+
strcpy(lb_token, subchannel_wrapper->lb_token().c_str());
|
654
|
+
args.initial_metadata->Add(kGrpcLbLbTokenMetadataKey, lb_token);
|
655
|
+
}
|
656
|
+
// Unwrap subchannel to pass up to the channel.
|
657
|
+
result.subchannel = subchannel_wrapper->wrapped_subchannel();
|
642
658
|
}
|
643
659
|
return result;
|
644
660
|
}
|
@@ -650,8 +666,21 @@ GrpcLb::PickResult GrpcLb::Picker::Pick(PickArgs args) {
|
|
650
666
|
RefCountedPtr<SubchannelInterface> GrpcLb::Helper::CreateSubchannel(
|
651
667
|
ServerAddress address, const grpc_channel_args& args) {
|
652
668
|
if (parent_->shutting_down_) return nullptr;
|
653
|
-
|
654
|
-
|
669
|
+
const TokenAndClientStatsAttribute* attribute =
|
670
|
+
static_cast<const TokenAndClientStatsAttribute*>(
|
671
|
+
address.GetAttribute(kGrpcLbAddressAttributeKey));
|
672
|
+
if (attribute == nullptr) {
|
673
|
+
gpr_log(GPR_ERROR,
|
674
|
+
"[grpclb %p] no TokenAndClientStatsAttribute for address %p",
|
675
|
+
parent_.get(), address.ToString().c_str());
|
676
|
+
abort();
|
677
|
+
}
|
678
|
+
std::string lb_token = attribute->lb_token();
|
679
|
+
RefCountedPtr<GrpcLbClientStats> client_stats = attribute->client_stats();
|
680
|
+
return MakeRefCounted<SubchannelWrapper>(
|
681
|
+
parent_->channel_control_helper()->CreateSubchannel(std::move(address),
|
682
|
+
args),
|
683
|
+
std::move(lb_token), std::move(client_stats));
|
655
684
|
}
|
656
685
|
|
657
686
|
void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
|
@@ -662,56 +691,37 @@ void GrpcLb::Helper::UpdateState(grpc_connectivity_state state,
|
|
662
691
|
parent_->child_policy_ready_ = state == GRPC_CHANNEL_READY;
|
663
692
|
// Enter fallback mode if needed.
|
664
693
|
parent_->MaybeEnterFallbackModeAfterStartup();
|
665
|
-
//
|
666
|
-
//
|
667
|
-
//
|
668
|
-
//
|
669
|
-
//
|
670
|
-
//
|
671
|
-
//
|
672
|
-
//
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
// to process drops for picks that yield a QUEUE result; this would
|
679
|
-
// result in dropping too many calls, since we will see the
|
680
|
-
// queued picks multiple times, and we'd consider each one a
|
681
|
-
// separate call for the drop calculation.
|
682
|
-
//
|
683
|
-
// Cases 1 and 3b: return picker from the child policy as-is.
|
684
|
-
if (parent_->serverlist_ == nullptr ||
|
685
|
-
(!parent_->serverlist_->ContainsAllDropEntries() &&
|
686
|
-
state != GRPC_CHANNEL_READY)) {
|
687
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
688
|
-
gpr_log(GPR_INFO,
|
689
|
-
"[grpclb %p helper %p] state=%s (%s) passing "
|
690
|
-
"child picker %p as-is",
|
691
|
-
parent_.get(), this, ConnectivityStateName(state),
|
692
|
-
status.ToString().c_str(), picker.get());
|
693
|
-
}
|
694
|
-
parent_->channel_control_helper()->UpdateState(state, status,
|
695
|
-
std::move(picker));
|
696
|
-
return;
|
697
|
-
}
|
698
|
-
// Cases 2 and 3a: wrap picker from the child in our own picker.
|
699
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
700
|
-
gpr_log(GPR_INFO,
|
701
|
-
"[grpclb %p helper %p] state=%s (%s) wrapping child "
|
702
|
-
"picker %p",
|
703
|
-
parent_.get(), this, ConnectivityStateName(state),
|
704
|
-
status.ToString().c_str(), picker.get());
|
694
|
+
// We pass the serverlist to the picker so that it can handle drops.
|
695
|
+
// However, we don't want to handle drops in the case where the child
|
696
|
+
// policy is reporting a state other than READY (unless we are
|
697
|
+
// dropping *all* calls), because we don't want to process drops for picks
|
698
|
+
// that yield a QUEUE result; this would result in dropping too many calls,
|
699
|
+
// since we will see the queued picks multiple times, and we'd consider each
|
700
|
+
// one a separate call for the drop calculation. So in this case, we pass
|
701
|
+
// a null serverlist to the picker, which tells it not to do drops.
|
702
|
+
RefCountedPtr<Serverlist> serverlist;
|
703
|
+
if (state == GRPC_CHANNEL_READY ||
|
704
|
+
(parent_->serverlist_ != nullptr &&
|
705
|
+
parent_->serverlist_->ContainsAllDropEntries())) {
|
706
|
+
serverlist = parent_->serverlist_;
|
705
707
|
}
|
706
708
|
RefCountedPtr<GrpcLbClientStats> client_stats;
|
707
709
|
if (parent_->lb_calld_ != nullptr &&
|
708
710
|
parent_->lb_calld_->client_stats() != nullptr) {
|
709
711
|
client_stats = parent_->lb_calld_->client_stats()->Ref();
|
710
712
|
}
|
713
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
714
|
+
gpr_log(GPR_INFO,
|
715
|
+
"[grpclb %p helper %p] state=%s (%s) wrapping child "
|
716
|
+
"picker %p (serverlist=%p, client_stats=%p)",
|
717
|
+
parent_.get(), this, ConnectivityStateName(state),
|
718
|
+
status.ToString().c_str(), picker.get(), serverlist.get(),
|
719
|
+
client_stats.get());
|
720
|
+
}
|
711
721
|
parent_->channel_control_helper()->UpdateState(
|
712
722
|
state, status,
|
713
|
-
absl::make_unique<Picker>(
|
714
|
-
std::move(
|
723
|
+
absl::make_unique<Picker>(std::move(serverlist), std::move(picker),
|
724
|
+
std::move(client_stats)));
|
715
725
|
}
|
716
726
|
|
717
727
|
void GrpcLb::Helper::RequestReresolution() {
|
@@ -738,15 +748,16 @@ void GrpcLb::Helper::AddTraceEvent(TraceSeverity severity,
|
|
738
748
|
|
739
749
|
GrpcLb::BalancerCallState::BalancerCallState(
|
740
750
|
RefCountedPtr<LoadBalancingPolicy> parent_grpclb_policy)
|
741
|
-
: InternallyRefCounted<BalancerCallState>(
|
751
|
+
: InternallyRefCounted<BalancerCallState>(
|
752
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace) ? "BalancerCallState"
|
753
|
+
: nullptr),
|
742
754
|
grpclb_policy_(std::move(parent_grpclb_policy)) {
|
743
755
|
GPR_ASSERT(grpclb_policy_ != nullptr);
|
744
756
|
GPR_ASSERT(!grpclb_policy()->shutting_down_);
|
745
757
|
// Init the LB call. Note that the LB call will progress every time there's
|
746
758
|
// activity in grpclb_policy_->interested_parties(), which is comprised of
|
747
759
|
// the polling entities from client_channel.
|
748
|
-
GPR_ASSERT(grpclb_policy()->server_name_
|
749
|
-
GPR_ASSERT(grpclb_policy()->server_name_[0] != '\0');
|
760
|
+
GPR_ASSERT(!grpclb_policy()->server_name_.empty());
|
750
761
|
// Closure Initialization
|
751
762
|
GRPC_CLOSURE_INIT(&lb_on_initial_request_sent_, OnInitialRequestSent, this,
|
752
763
|
grpc_schedule_on_exec_ctx);
|
@@ -769,7 +780,7 @@ GrpcLb::BalancerCallState::BalancerCallState(
|
|
769
780
|
upb::Arena arena;
|
770
781
|
grpc_slice request_payload_slice = GrpcLbRequestCreate(
|
771
782
|
grpclb_policy()->config_->service_name().empty()
|
772
|
-
? grpclb_policy()->server_name_
|
783
|
+
? grpclb_policy()->server_name_.c_str()
|
773
784
|
: grpclb_policy()->config_->service_name().c_str(),
|
774
785
|
arena.ptr());
|
775
786
|
send_message_payload_ =
|
@@ -835,8 +846,9 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
835
846
|
// with the callback.
|
836
847
|
auto self = Ref(DEBUG_LOCATION, "on_initial_request_sent");
|
837
848
|
self.release();
|
838
|
-
call_error = grpc_call_start_batch_and_execute(
|
839
|
-
|
849
|
+
call_error = grpc_call_start_batch_and_execute(lb_call_, ops,
|
850
|
+
static_cast<size_t>(op - ops),
|
851
|
+
&lb_on_initial_request_sent_);
|
840
852
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
841
853
|
// Op: recv initial metadata.
|
842
854
|
op = ops;
|
@@ -858,7 +870,8 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
858
870
|
self = Ref(DEBUG_LOCATION, "on_message_received");
|
859
871
|
self.release();
|
860
872
|
call_error = grpc_call_start_batch_and_execute(
|
861
|
-
lb_call_, ops,
|
873
|
+
lb_call_, ops, static_cast<size_t>(op - ops),
|
874
|
+
&lb_on_balancer_message_received_);
|
862
875
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
863
876
|
// Op: recv server status.
|
864
877
|
op = ops;
|
@@ -874,7 +887,8 @@ void GrpcLb::BalancerCallState::StartQuery() {
|
|
874
887
|
// ref instead of a new ref. When it's invoked, it's the initial ref that is
|
875
888
|
// unreffed.
|
876
889
|
call_error = grpc_call_start_batch_and_execute(
|
877
|
-
lb_call_, ops,
|
890
|
+
lb_call_, ops, static_cast<size_t>(op - ops),
|
891
|
+
&lb_on_balancer_status_received_);
|
878
892
|
GPR_ASSERT(GRPC_CALL_OK == call_error);
|
879
893
|
}
|
880
894
|
|
@@ -932,7 +946,7 @@ void GrpcLb::BalancerCallState::SendClientLoadReportLocked() {
|
|
932
946
|
if (num_calls_started == 0 && num_calls_finished == 0 &&
|
933
947
|
num_calls_finished_with_client_failed_to_send == 0 &&
|
934
948
|
num_calls_finished_known_received == 0 &&
|
935
|
-
(drop_token_counts == nullptr || drop_token_counts->
|
949
|
+
(drop_token_counts == nullptr || drop_token_counts->empty())) {
|
936
950
|
if (last_client_load_report_counters_were_zero_) {
|
937
951
|
ScheduleNextClientLoadReportLocked();
|
938
952
|
return;
|
@@ -1245,12 +1259,10 @@ ServerAddressList ExtractBalancerAddresses(const grpc_channel_args& args) {
|
|
1245
1259
|
* stream for the reception of load balancing updates.
|
1246
1260
|
*
|
1247
1261
|
* Inputs:
|
1248
|
-
* - \a addresses: corresponding to the balancers.
|
1249
1262
|
* - \a response_generator: in order to propagate updates from the resolver
|
1250
1263
|
* above the grpclb policy.
|
1251
1264
|
* - \a args: other args inherited from the grpclb policy. */
|
1252
1265
|
grpc_channel_args* BuildBalancerChannelArgs(
|
1253
|
-
const ServerAddressList& addresses,
|
1254
1266
|
FakeResolverResponseGenerator* response_generator,
|
1255
1267
|
const grpc_channel_args* args) {
|
1256
1268
|
// Channel args to remove.
|
@@ -1299,7 +1311,7 @@ grpc_channel_args* BuildBalancerChannelArgs(
|
|
1299
1311
|
args, args_to_remove, GPR_ARRAY_SIZE(args_to_remove), args_to_add.data(),
|
1300
1312
|
args_to_add.size());
|
1301
1313
|
// Make any necessary modifications for security.
|
1302
|
-
return ModifyGrpclbBalancerChannelArgs(
|
1314
|
+
return ModifyGrpclbBalancerChannelArgs(new_args);
|
1303
1315
|
}
|
1304
1316
|
|
1305
1317
|
//
|
@@ -1326,15 +1338,14 @@ GrpcLb::GrpcLb(Args args)
|
|
1326
1338
|
const grpc_arg* arg = grpc_channel_args_find(args.args, GRPC_ARG_SERVER_URI);
|
1327
1339
|
const char* server_uri = grpc_channel_arg_get_string(arg);
|
1328
1340
|
GPR_ASSERT(server_uri != nullptr);
|
1329
|
-
|
1330
|
-
GPR_ASSERT(uri->path
|
1331
|
-
server_name_ =
|
1341
|
+
absl::StatusOr<URI> uri = URI::Parse(server_uri);
|
1342
|
+
GPR_ASSERT(uri.ok() && !uri->path().empty());
|
1343
|
+
server_name_ = std::string(absl::StripPrefix(uri->path(), "/"));
|
1332
1344
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_lb_glb_trace)) {
|
1333
1345
|
gpr_log(GPR_INFO,
|
1334
1346
|
"[grpclb %p] Will use '%s' as the server name for LB request.",
|
1335
|
-
this, server_name_);
|
1347
|
+
this, server_name_.c_str());
|
1336
1348
|
}
|
1337
|
-
grpc_uri_destroy(uri);
|
1338
1349
|
// Record LB call timeout.
|
1339
1350
|
arg = grpc_channel_args_find(args.args, GRPC_ARG_GRPCLB_CALL_TIMEOUT_MS);
|
1340
1351
|
lb_call_timeout_ms_ = grpc_channel_arg_get_integer(arg, {0, 0, INT_MAX});
|
@@ -1344,10 +1355,7 @@ GrpcLb::GrpcLb(Args args)
|
|
1344
1355
|
arg, {GRPC_GRPCLB_DEFAULT_FALLBACK_TIMEOUT_MS, 0, INT_MAX});
|
1345
1356
|
}
|
1346
1357
|
|
1347
|
-
GrpcLb::~GrpcLb() {
|
1348
|
-
gpr_free((void*)server_name_);
|
1349
|
-
grpc_channel_args_destroy(args_);
|
1350
|
-
}
|
1358
|
+
GrpcLb::~GrpcLb() { grpc_channel_args_destroy(args_); }
|
1351
1359
|
|
1352
1360
|
void GrpcLb::ShutdownLocked() {
|
1353
1361
|
shutting_down_ = true;
|
@@ -1448,14 +1456,14 @@ void GrpcLb::ProcessAddressesAndChannelArgsLocked(
|
|
1448
1456
|
// since we use this to trigger the client_load_reporting filter.
|
1449
1457
|
static const char* args_to_remove[] = {GRPC_ARG_LB_POLICY_NAME};
|
1450
1458
|
grpc_arg new_arg = grpc_channel_arg_string_create(
|
1451
|
-
(
|
1459
|
+
const_cast<char*>(GRPC_ARG_LB_POLICY_NAME), const_cast<char*>("grpclb"));
|
1452
1460
|
grpc_channel_args_destroy(args_);
|
1453
1461
|
args_ = grpc_channel_args_copy_and_add_and_remove(
|
1454
1462
|
&args, args_to_remove, GPR_ARRAY_SIZE(args_to_remove), &new_arg, 1);
|
1455
1463
|
// Construct args for balancer channel.
|
1456
1464
|
ServerAddressList balancer_addresses = ExtractBalancerAddresses(args);
|
1457
|
-
grpc_channel_args* lb_channel_args =
|
1458
|
-
|
1465
|
+
grpc_channel_args* lb_channel_args =
|
1466
|
+
BuildBalancerChannelArgs(response_generator_.get(), &args);
|
1459
1467
|
// Create balancer channel if needed.
|
1460
1468
|
if (lb_channel_ == nullptr) {
|
1461
1469
|
std::string uri_str = absl::StrCat("fake:///", server_name_);
|
@@ -1757,7 +1765,8 @@ bool maybe_add_client_load_reporting_filter(grpc_channel_stack_builder* builder,
|
|
1757
1765
|
// will minimize the number of metadata elements that the filter
|
1758
1766
|
// needs to iterate through to find the ClientStats object.
|
1759
1767
|
return grpc_channel_stack_builder_prepend_filter(
|
1760
|
-
builder,
|
1768
|
+
builder, static_cast<const grpc_channel_filter*>(arg), nullptr,
|
1769
|
+
nullptr);
|
1761
1770
|
}
|
1762
1771
|
return true;
|
1763
1772
|
}
|
@@ -1768,10 +1777,10 @@ void grpc_lb_policy_grpclb_init() {
|
|
1768
1777
|
grpc_core::LoadBalancingPolicyRegistry::Builder::
|
1769
1778
|
RegisterLoadBalancingPolicyFactory(
|
1770
1779
|
absl::make_unique<grpc_core::GrpcLbFactory>());
|
1771
|
-
grpc_channel_init_register_stage(
|
1772
|
-
|
1773
|
-
|
1774
|
-
|
1780
|
+
grpc_channel_init_register_stage(
|
1781
|
+
GRPC_CLIENT_SUBCHANNEL, GRPC_CHANNEL_INIT_BUILTIN_PRIORITY,
|
1782
|
+
maybe_add_client_load_reporting_filter,
|
1783
|
+
const_cast<grpc_channel_filter*>(&grpc_client_load_reporting_filter));
|
1775
1784
|
}
|
1776
1785
|
|
1777
1786
|
void grpc_lb_policy_grpclb_shutdown() {}
|