grpc 1.45.0 → 1.47.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +69 -110
- data/include/grpc/event_engine/event_engine.h +42 -7
- data/include/grpc/event_engine/memory_allocator.h +0 -15
- data/include/grpc/event_engine/port.h +1 -1
- data/include/grpc/event_engine/slice.h +286 -0
- data/include/grpc/event_engine/slice_buffer.h +112 -0
- data/include/grpc/grpc_security.h +11 -0
- data/include/grpc/impl/codegen/grpc_types.h +7 -13
- data/include/grpc/impl/codegen/port_platform.h +100 -36
- data/include/grpc/impl/codegen/slice.h +1 -1
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +297 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +125 -0
- data/src/core/ext/filters/{client_idle → channel_idle}/idle_filter_state.cc +1 -1
- data/src/core/ext/filters/{client_idle → channel_idle}/idle_filter_state.h +3 -3
- data/src/core/ext/filters/client_channel/backend_metric.cc +17 -12
- data/src/core/ext/filters/client_channel/backend_metric.h +19 -9
- data/src/core/ext/filters/client_channel/backup_poller.cc +5 -5
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -4
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +42 -20
- data/src/core/ext/filters/client_channel/client_channel.cc +223 -113
- data/src/core/ext/filters/client_channel/client_channel.h +28 -6
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +3 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +12 -2
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +5 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +8 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -13
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
- data/src/core/ext/filters/client_channel/config_selector.h +7 -5
- data/src/core/ext/filters/client_channel/connector.h +8 -2
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +13 -2
- data/src/core/ext/filters/client_channel/dynamic_filters.h +11 -1
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -0
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +138 -582
- data/src/core/ext/filters/client_channel/health/health_check_client.h +26 -160
- data/src/core/ext/filters/client_channel/http_proxy.cc +98 -112
- data/src/core/ext/filters/client_channel/http_proxy.h +20 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +1 -0
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +12 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +9 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +59 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +4 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +6 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +10 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +6 -3
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +408 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1038 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +60 -52
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +277 -195
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +158 -101
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +46 -20
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -171
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +39 -36
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +117 -63
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +142 -63
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +6 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +30 -4
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +37 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +300 -291
- data/src/core/ext/filters/client_channel/lb_policy.cc +4 -2
- data/src/core/ext/filters/client_channel/lb_policy.h +18 -24
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +6 -1
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +4 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +1 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +1 -1
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +5 -0
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +23 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +226 -300
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +10 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +26 -9
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +13 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +73 -220
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +13 -14
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +5 -2
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +59 -13
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +213 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +113 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +15 -11
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +182 -79
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +5 -11
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +11 -5
- data/src/core/ext/filters/client_channel/retry_filter.cc +60 -5
- data/src/core/ext/filters/client_channel/retry_service_config.cc +8 -9
- data/src/core/ext/filters/client_channel/retry_service_config.h +10 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +1 -8
- data/src/core/ext/filters/client_channel/retry_throttle.h +7 -1
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +22 -5
- data/src/core/ext/filters/client_channel/subchannel.cc +161 -165
- data/src/core/ext/filters/client_channel/subchannel.h +80 -20
- data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -23
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +12 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -3
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +558 -0
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +226 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +6 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +123 -366
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +24 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +87 -458
- data/src/core/ext/filters/http/client/http_client_filter.h +27 -4
- data/src/core/ext/filters/http/client_authority_filter.cc +21 -31
- data/src/core/ext/filters/http/client_authority_filter.h +6 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +16 -14
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +1 -0
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +3 -1
- data/src/core/ext/filters/http/server/http_server_filter.cc +80 -361
- data/src/core/ext/filters/http/server/http_server_filter.h +31 -2
- data/src/core/ext/filters/message_size/message_size_filter.cc +20 -26
- data/src/core/ext/filters/message_size/message_size_filter.h +2 -2
- data/src/core/ext/filters/rbac/rbac_filter.cc +1 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +2 -8
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +2 -2
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +73 -201
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +102 -135
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -7
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +49 -19
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -0
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +205 -45
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +5 -0
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -0
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -1
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +6 -2
- data/src/core/ext/transport/chttp2/transport/flow_control.h +6 -2
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +7 -1
- data/src/core/ext/transport/chttp2/transport/frame_data.h +4 -1
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +3 -1
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +6 -2
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +3 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +14 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +4 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +13 -15
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +15 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +3 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +25 -7
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +8 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +55 -37
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +38 -21
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +28 -5
- data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -6
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +13 -9
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/stream_map.h +1 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +2 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +62 -15
- data/src/core/ext/transport/inproc/inproc_transport.cc +8 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +27 -24
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +143 -63
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +37 -35
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +177 -77
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +115 -111
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +547 -207
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +26 -13
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +23 -9
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +18 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +13 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +9 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +49 -46
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +217 -78
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +10 -2
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +40 -8
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +20 -2
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +55 -55
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +289 -110
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +133 -125
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +656 -267
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +24 -18
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +96 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +185 -173
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +860 -309
- 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 +10 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +44 -24
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +165 -40
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +72 -63
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +433 -174
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +33 -31
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +154 -52
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +5 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +89 -89
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +460 -166
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +76 -33
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +379 -69
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +14 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +5 -25
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +10 -91
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +26 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +70 -68
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +369 -131
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +94 -65
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +447 -161
- 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 +27 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +104 -85
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +378 -113
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +3 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +30 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +43 -16
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +58 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +18 -18
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +100 -43
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +31 -30
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +171 -71
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +196 -95
- 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 +7 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +53 -46
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +284 -129
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +56 -50
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +337 -146
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +49 -14
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +14 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +20 -4
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +33 -32
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +205 -86
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +34 -34
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +175 -74
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +56 -52
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +370 -146
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +27 -23
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +173 -74
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +362 -341
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2056 -845
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +49 -16
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +56 -50
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +293 -111
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +6 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +10 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +26 -10
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +27 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +17 -16
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +83 -36
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +7 -2
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +46 -17
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +38 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +30 -10
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +10 -6
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +71 -28
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +25 -25
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +149 -65
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +8 -7
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +30 -12
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +42 -15
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +173 -144
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +898 -323
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +51 -45
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +261 -116
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +13 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +70 -25
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +80 -55
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +410 -124
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +23 -9
- 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/discovery.upb.c +44 -44
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +261 -122
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +47 -21
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +175 -66
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +17 -6
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +38 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +12 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +43 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +20 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +24 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +14 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +40 -16
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +70 -25
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +37 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +12 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +81 -30
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +76 -30
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +20 -20
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +90 -30
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +28 -10
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +3 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +13 -4
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +18 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +9 -0
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +17 -4
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +3 -3
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +17 -2
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +70 -66
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +410 -162
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +80 -74
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +440 -158
- data/src/core/ext/upb-generated/google/api/http.upb.c +17 -17
- data/src/core/ext/upb-generated/google/api/http.upb.h +116 -43
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +4 -4
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +19 -7
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +6 -0
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +163 -162
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1157 -435
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +10 -4
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +108 -40
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +3 -3
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +10 -4
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +18 -18
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +27 -0
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +4 -4
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +19 -7
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +15 -15
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +65 -22
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +49 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +69 -65
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +364 -149
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +8 -7
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +20 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +4 -4
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +6 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +150 -58
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +11 -11
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +51 -18
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +175 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +764 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +22 -22
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +97 -10
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +23 -2
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +10 -2
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +6 -6
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +27 -6
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +5 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +20 -2
- data/src/core/ext/upb-generated/validate/validate.upb.c +261 -250
- data/src/core/ext/upb-generated/validate/validate.upb.h +1836 -663
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +22 -22
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +97 -10
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +6 -6
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +23 -2
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +10 -2
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +18 -18
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +70 -10
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +20 -2
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +2 -2
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +3 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +8 -8
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +38 -12
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +27 -10
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +10 -2
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +21 -8
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +10 -10
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +71 -30
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +16 -2
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +12 -12
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +69 -26
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +47 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +109 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +43 -39
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +255 -103
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +4 -4
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +19 -8
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +9 -9
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +70 -25
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +3 -3
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +10 -2
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +50 -46
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +195 -185
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +16 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +129 -94
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +18 -33
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +0 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +163 -155
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +141 -138
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +26 -20
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +738 -730
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +271 -251
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +207 -193
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +75 -0
- data/src/core/ext/xds/certificate_provider_store.cc +10 -0
- data/src/core/ext/xds/certificate_provider_store.h +9 -0
- data/src/core/ext/xds/xds_api.cc +20 -0
- data/src/core/ext/xds/xds_bootstrap.cc +2 -2
- data/src/core/ext/xds/xds_bootstrap.h +2 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +5 -0
- data/src/core/ext/xds/xds_certificate_provider.h +8 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +5 -5
- data/src/core/ext/xds/xds_client.cc +125 -109
- data/src/core/ext/xds/xds_client.h +13 -5
- data/src/core/ext/xds/xds_cluster.cc +106 -16
- data/src/core/ext/xds/xds_cluster.h +3 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +142 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +79 -0
- data/src/core/ext/xds/xds_common_types.cc +9 -9
- data/src/core/ext/xds/xds_common_types.h +3 -3
- data/src/core/ext/xds/xds_endpoint.cc +12 -5
- data/src/core/ext/xds/xds_http_fault_filter.cc +4 -4
- data/src/core/ext/xds/xds_listener.cc +20 -10
- data/src/core/ext/xds/xds_route_config.cc +162 -25
- data/src/core/ext/xds/xds_route_config.h +13 -10
- data/src/core/ext/xds/xds_server_config_fetcher.cc +19 -23
- data/src/core/lib/address_utils/sockaddr_utils.cc +56 -23
- data/src/core/lib/address_utils/sockaddr_utils.h +7 -4
- data/src/core/lib/avl/avl.h +71 -6
- data/src/core/lib/channel/call_finalization.h +4 -0
- data/src/core/lib/channel/call_tracer.h +12 -3
- data/src/core/lib/channel/channel_args.cc +179 -81
- data/src/core/lib/channel/channel_args.h +242 -11
- data/src/core/lib/channel/channel_args_preconditioning.cc +5 -11
- data/src/core/lib/channel/channel_args_preconditioning.h +4 -4
- data/src/core/lib/channel/channel_stack.cc +41 -3
- data/src/core/lib/channel/channel_stack.h +51 -8
- data/src/core/lib/channel/channel_stack_builder.cc +9 -84
- data/src/core/lib/channel/channel_stack_builder.h +35 -26
- data/src/core/lib/channel/channel_stack_builder_impl.cc +97 -0
- data/src/core/lib/channel/channel_stack_builder_impl.h +45 -0
- data/src/core/lib/channel/channel_trace.cc +8 -13
- data/src/core/lib/channel/channel_trace.h +6 -3
- data/src/core/lib/channel/channelz.cc +8 -13
- data/src/core/lib/channel/channelz.h +13 -4
- data/src/core/lib/channel/channelz_registry.cc +7 -14
- data/src/core/lib/channel/channelz_registry.h +10 -9
- data/src/core/lib/channel/connected_channel.cc +21 -31
- data/src/core/lib/channel/connected_channel.h +2 -0
- data/src/core/lib/channel/promise_based_filter.cc +848 -260
- data/src/core/lib/channel/promise_based_filter.h +215 -68
- data/src/core/lib/channel/status_util.cc +2 -0
- data/src/core/lib/channel/status_util.h +0 -3
- data/src/core/lib/compression/compression_internal.cc +46 -17
- data/src/core/lib/compression/compression_internal.h +1 -1
- data/src/core/lib/config/core_configuration.cc +3 -0
- data/src/core/lib/config/core_configuration.h +2 -1
- data/src/core/lib/debug/stats_data.cc +2 -6
- data/src/core/lib/debug/stats_data.h +18 -21
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +4 -2
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +3 -2
- data/src/core/lib/event_engine/default_event_engine_factory.cc +8 -2
- data/src/core/lib/event_engine/event_engine.cc +12 -2
- data/src/core/lib/event_engine/event_engine_factory.h +5 -0
- data/src/core/lib/event_engine/handle_containers.h +67 -0
- data/src/core/lib/event_engine/iomgr_engine.cc +206 -0
- data/src/core/lib/event_engine/iomgr_engine.h +118 -0
- data/src/core/lib/event_engine/memory_allocator.cc +12 -4
- data/src/core/lib/event_engine/resolved_address.cc +4 -2
- data/src/core/lib/event_engine/slice.cc +102 -0
- data/src/core/lib/event_engine/slice_buffer.cc +50 -0
- data/src/core/{ext/filters/max_age/max_age_filter.h → lib/event_engine/trace.cc} +3 -11
- data/src/core/lib/{iomgr/endpoint_pair_event_engine.cc → event_engine/trace.h} +12 -14
- data/src/core/lib/gpr/log.cc +5 -0
- data/src/core/lib/gpr/tls.h +4 -5
- data/src/core/lib/gprpp/bitset.h +17 -1
- data/src/core/lib/gprpp/chunked_vector.h +4 -0
- data/src/core/lib/gprpp/construct_destruct.h +1 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +4 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +1 -4
- data/src/core/lib/gprpp/examine_stack.h +0 -1
- data/src/core/lib/gprpp/fork.cc +3 -6
- data/src/core/lib/gprpp/global_config.h +2 -4
- data/src/core/lib/gprpp/global_config_env.cc +3 -2
- data/src/core/lib/gprpp/global_config_env.h +3 -1
- data/src/core/lib/gprpp/global_config_generic.h +0 -4
- data/src/core/lib/gprpp/host_port.cc +2 -0
- data/src/core/lib/gprpp/manual_constructor.h +0 -1
- data/src/core/lib/gprpp/match.h +75 -0
- data/src/core/lib/gprpp/memory.h +1 -5
- data/src/core/lib/gprpp/orphanable.h +1 -4
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +3 -3
- data/src/core/lib/gprpp/ref_counted_ptr.h +1 -1
- data/src/core/lib/gprpp/single_set_ptr.h +87 -0
- data/src/core/lib/gprpp/stat.h +0 -2
- data/src/core/lib/gprpp/stat_posix.cc +7 -2
- data/src/core/lib/gprpp/status_helper.cc +25 -5
- data/src/core/lib/gprpp/status_helper.h +4 -0
- data/src/core/lib/gprpp/sync.h +3 -1
- data/src/core/lib/gprpp/table.h +10 -0
- data/src/core/lib/gprpp/thd.h +2 -5
- data/src/core/lib/gprpp/thd_posix.cc +4 -2
- data/src/core/lib/gprpp/thd_windows.cc +2 -0
- data/src/core/lib/gprpp/time.cc +20 -0
- data/src/core/lib/gprpp/time.h +7 -2
- data/src/core/lib/gprpp/time_util.cc +4 -0
- data/src/core/lib/gprpp/time_util.h +1 -1
- data/src/core/lib/gprpp/unique_type_name.h +104 -0
- data/src/core/lib/http/format_request.cc +30 -2
- data/src/core/lib/http/format_request.h +2 -0
- data/src/core/lib/http/httpcli.cc +88 -81
- data/src/core/lib/http/httpcli.h +39 -7
- data/src/core/lib/http/httpcli_security_connector.cc +6 -7
- data/src/core/lib/http/parser.cc +80 -9
- data/src/core/lib/http/parser.h +14 -1
- data/src/core/lib/iomgr/endpoint.cc +4 -4
- data/src/core/lib/iomgr/endpoint.h +6 -4
- data/src/core/lib/iomgr/endpoint_cfstream.cc +7 -4
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -1
- data/src/core/lib/iomgr/ev_posix.cc +7 -11
- data/src/core/lib/iomgr/exec_ctx.h +1 -2
- data/src/core/lib/iomgr/fork_posix.cc +1 -1
- data/src/core/lib/iomgr/internal_errqueue.cc +38 -47
- data/src/core/lib/iomgr/internal_errqueue.h +1 -6
- data/src/core/lib/iomgr/iomgr.cc +0 -1
- data/src/core/lib/iomgr/{event_engine/pollset.h → iomgr_fwd.h} +9 -9
- data/src/core/lib/iomgr/pollset_set.h +1 -2
- data/src/core/lib/iomgr/port.h +25 -8
- data/src/core/lib/iomgr/resolve_address.cc +8 -0
- data/src/core/lib/iomgr/resolve_address.h +21 -14
- data/src/core/lib/iomgr/resolve_address_impl.h +2 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +8 -14
- data/src/core/lib/iomgr/resolve_address_posix.h +5 -2
- data/src/core/lib/iomgr/resolve_address_windows.cc +7 -14
- data/src/core/lib/iomgr/resolve_address_windows.h +5 -2
- data/src/core/lib/iomgr/sockaddr.h +2 -3
- data/src/core/lib/iomgr/sockaddr_posix.h +2 -0
- data/src/core/lib/iomgr/sockaddr_windows.h +2 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +3 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +10 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +14 -7
- data/src/core/lib/iomgr/tcp_client_windows.cc +13 -6
- data/src/core/lib/iomgr/tcp_posix.cc +77 -37
- data/src/core/lib/iomgr/tcp_server_posix.cc +50 -27
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +30 -27
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +7 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +13 -5
- data/src/core/lib/iomgr/tcp_windows.cc +7 -4
- data/src/core/lib/json/json.h +1 -2
- data/src/core/lib/json/json_reader.cc +9 -1
- data/src/core/lib/json/json_util.cc +7 -0
- data/src/core/lib/json/json_util.h +13 -4
- data/src/core/lib/json/json_writer.cc +6 -1
- data/src/core/lib/promise/activity.cc +1 -1
- data/src/core/lib/promise/activity.h +6 -6
- data/src/core/lib/promise/arena_promise.h +11 -1
- data/src/core/lib/promise/call_push_pull.h +148 -0
- data/src/core/lib/promise/context.h +1 -1
- data/src/core/lib/promise/detail/basic_seq.h +2 -2
- data/src/core/lib/promise/detail/promise_factory.h +0 -1
- data/src/core/lib/promise/detail/status.h +2 -1
- data/src/core/lib/promise/intra_activity_waiter.h +49 -0
- data/src/core/lib/promise/latch.h +103 -0
- data/src/core/lib/promise/loop.h +1 -0
- data/src/core/lib/promise/race.h +0 -1
- data/src/core/lib/promise/seq.h +0 -2
- data/src/core/lib/promise/sleep.cc +2 -0
- data/src/core/lib/promise/sleep.h +10 -0
- data/src/core/lib/promise/try_seq.h +2 -2
- data/src/core/lib/resolver/resolver_factory.h +1 -2
- data/src/core/lib/resolver/server_address.cc +9 -3
- data/src/core/lib/resolver/server_address.h +4 -4
- data/src/core/lib/resource_quota/api.cc +19 -31
- data/src/core/lib/resource_quota/api.h +5 -2
- data/src/core/lib/resource_quota/arena.cc +0 -6
- data/src/core/lib/resource_quota/arena.h +1 -2
- data/src/core/lib/resource_quota/memory_quota.cc +47 -5
- data/src/core/lib/resource_quota/memory_quota.h +24 -5
- data/src/core/lib/resource_quota/resource_quota.h +16 -0
- data/src/core/lib/resource_quota/thread_quota.cc +2 -0
- data/src/core/lib/resource_quota/thread_quota.h +4 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +7 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +12 -12
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +5 -6
- data/src/core/lib/security/context/security_context.h +8 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +12 -5
- data/src/core/lib/security/credentials/alts/alts_credentials.h +4 -0
- data/src/core/lib/security/credentials/call_creds_util.cc +5 -3
- data/src/core/lib/security/credentials/call_creds_util.h +2 -2
- data/src/core/lib/security/credentials/channel_creds_registry.h +1 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +19 -10
- data/src/core/lib/security/credentials/composite/composite_credentials.h +11 -9
- data/src/core/lib/security/credentials/credentials.h +29 -39
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +81 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +8 -0
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +3 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +2 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +18 -12
- data/src/core/lib/security/credentials/fake/fake_credentials.h +8 -5
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +27 -13
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +4 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.h +6 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +28 -29
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +57 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +6 -2
- data/src/core/lib/security/credentials/local/local_credentials.cc +12 -6
- data/src/core/lib/security/credentials/local/local_credentials.h +4 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +22 -10
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +14 -6
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -6
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +8 -6
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +12 -4
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +8 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +10 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +47 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +34 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +66 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +66 -95
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +19 -6
- data/src/core/lib/security/credentials/tls/tls_credentials.h +5 -5
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +57 -50
- data/src/core/lib/security/credentials/xds/xds_credentials.h +31 -5
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/security_connector.cc +1 -1
- data/src/core/lib/security/security_connector/security_connector.h +10 -1
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +5 -3
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +4 -2
- data/src/core/lib/security/transport/auth_filters.h +7 -7
- data/src/core/lib/security/transport/client_auth_filter.cc +26 -20
- data/src/core/lib/security/transport/secure_endpoint.cc +213 -133
- data/src/core/lib/security/transport/secure_endpoint.h +1 -1
- data/src/core/lib/security/transport/security_handshaker.cc +11 -9
- data/src/core/lib/security/transport/security_handshaker.h +1 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +3 -2
- data/src/core/lib/service_config/service_config.h +4 -8
- data/src/core/lib/service_config/service_config_call_data.h +4 -1
- data/src/core/lib/service_config/service_config_impl.cc +7 -0
- data/src/core/lib/service_config/service_config_impl.h +9 -2
- data/src/core/lib/service_config/service_config_parser.cc +8 -0
- data/src/core/lib/service_config/service_config_parser.h +7 -0
- data/src/core/lib/slice/b64.cc +1 -1
- data/src/core/lib/slice/b64.h +2 -0
- data/src/core/lib/slice/percent_encoding.cc +4 -1
- data/src/core/lib/slice/percent_encoding.h +0 -6
- data/src/core/lib/slice/slice.cc +2 -1
- data/src/core/lib/slice/slice.h +10 -5
- data/src/core/lib/slice/slice_api.cc +1 -1
- data/src/core/lib/slice/slice_buffer.cc +50 -23
- data/src/core/lib/slice/slice_buffer.h +106 -0
- data/src/core/lib/{iomgr/is_epollexclusive_available.h → slice/slice_buffer_api.cc} +11 -12
- data/src/core/lib/slice/slice_internal.h +4 -3
- data/src/core/lib/slice/slice_refcount.h +2 -3
- data/src/core/lib/slice/slice_refcount_base.h +2 -3
- data/src/core/lib/slice/slice_split.cc +3 -0
- data/src/core/lib/slice/slice_split.h +0 -4
- data/src/core/lib/slice/slice_string_helpers.cc +4 -0
- data/src/core/lib/slice/slice_string_helpers.h +1 -4
- data/src/core/lib/surface/builtins.cc +7 -2
- data/src/core/lib/surface/byte_buffer.cc +7 -1
- data/src/core/lib/surface/byte_buffer_reader.cc +4 -4
- data/src/core/lib/surface/call.cc +1052 -917
- data/src/core/lib/surface/call.h +16 -16
- data/src/core/lib/surface/call_details.cc +4 -4
- data/src/core/lib/surface/call_log_batch.cc +7 -1
- data/src/core/lib/surface/call_test_only.h +4 -1
- data/src/core/lib/surface/channel.cc +181 -243
- data/src/core/lib/surface/channel.h +94 -57
- data/src/core/lib/surface/channel_init.cc +2 -3
- data/src/core/lib/surface/channel_init.h +3 -5
- data/src/core/lib/surface/channel_ping.cc +8 -2
- data/src/core/lib/surface/channel_stack_type.cc +0 -2
- data/src/core/lib/surface/channel_stack_type.h +0 -2
- data/src/core/lib/surface/completion_queue.cc +14 -6
- data/src/core/lib/surface/completion_queue.h +5 -1
- data/src/core/lib/surface/completion_queue_factory.cc +1 -0
- data/src/core/lib/surface/completion_queue_factory.h +1 -3
- data/src/core/lib/surface/event_string.cc +1 -7
- data/src/core/lib/surface/event_string.h +1 -1
- data/src/core/lib/surface/init.cc +17 -45
- data/src/core/lib/surface/init.h +0 -8
- data/src/core/lib/surface/lame_client.cc +64 -110
- data/src/core/lib/surface/lame_client.h +40 -2
- data/src/core/lib/surface/metadata_array.cc +2 -0
- data/src/core/lib/surface/server.cc +72 -70
- data/src/core/lib/surface/server.h +40 -11
- data/src/core/lib/surface/validate_metadata.cc +2 -5
- data/src/core/lib/surface/validate_metadata.h +3 -0
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +3 -1
- data/src/core/lib/transport/bdp_estimator.h +2 -3
- data/src/core/lib/transport/byte_stream.cc +6 -3
- data/src/core/lib/transport/byte_stream.h +5 -1
- data/src/core/lib/transport/connectivity_state.cc +6 -4
- data/src/core/lib/transport/connectivity_state.h +2 -3
- data/src/core/lib/transport/error_utils.cc +4 -2
- data/src/core/lib/transport/error_utils.h +5 -1
- data/src/core/lib/{channel → transport}/handshaker.cc +9 -4
- data/src/core/lib/{channel → transport}/handshaker.h +13 -6
- data/src/core/lib/{channel → transport}/handshaker_factory.h +9 -10
- data/src/core/lib/{channel → transport}/handshaker_registry.cc +5 -1
- data/src/core/lib/{channel → transport}/handshaker_registry.h +5 -4
- data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.cc +24 -10
- data/src/core/{ext/filters/client_channel → lib/transport}/http_connect_handshaker.h +3 -3
- data/src/core/lib/transport/metadata_batch.cc +287 -0
- data/src/core/lib/transport/metadata_batch.h +142 -269
- data/src/core/lib/transport/parsed_metadata.cc +2 -0
- data/src/core/lib/transport/parsed_metadata.h +10 -3
- data/src/core/lib/transport/status_conversion.cc +2 -0
- data/src/core/lib/transport/status_conversion.h +2 -2
- data/src/core/lib/transport/tcp_connect_handshaker.cc +253 -0
- data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
- data/src/core/lib/transport/timeout_encoding.cc +2 -6
- data/src/core/lib/transport/timeout_encoding.h +5 -1
- data/src/core/lib/transport/transport.cc +18 -17
- data/src/core/lib/transport/transport.h +48 -7
- data/src/core/lib/transport/transport_impl.h +14 -3
- data/src/core/lib/transport/transport_op_string.cc +9 -10
- data/src/core/lib/uri/uri_parser.cc +11 -3
- data/src/core/lib/uri/uri_parser.h +0 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +13 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +2 -2
- data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -0
- data/src/core/tsi/ssl_transport_security.cc +75 -38
- data/src/core/tsi/ssl_transport_security.h +8 -2
- data/src/core/tsi/transport_security_interface.h +2 -0
- data/src/ruby/ext/grpc/extconf.rb +2 -2
- data/src/ruby/lib/grpc/generic/active_call.rb +7 -1
- data/src/ruby/lib/grpc/grpc.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -0
- data/src/ruby/pb/test/client.rb +769 -0
- data/src/ruby/pb/test/server.rb +252 -0
- data/src/ruby/pb/test/xds_client.rb +415 -0
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +504 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +1 -1
- data/third_party/upb/upb/decode.c +32 -16
- data/third_party/upb/upb/def.c +118 -55
- data/third_party/upb/upb/def.h +12 -3
- data/third_party/upb/upb/encode.c +14 -8
- data/third_party/upb/upb/json_encode.c +776 -0
- data/third_party/upb/upb/json_encode.h +62 -0
- data/third_party/upb/upb/msg.c +5 -7
- data/third_party/upb/upb/msg.h +1 -2
- data/third_party/upb/upb/msg_internal.h +49 -36
- data/third_party/upb/upb/port_def.inc +8 -0
- data/third_party/upb/upb/port_undef.inc +1 -0
- data/third_party/upb/upb/table.c +10 -6
- data/third_party/upb/upb/table_internal.h +2 -0
- data/third_party/upb/upb/upb.h +41 -11
- data/third_party/zlib/crc32.c +966 -292
- data/third_party/zlib/crc32.h +9441 -436
- data/third_party/zlib/deflate.c +78 -30
- data/third_party/zlib/deflate.h +12 -15
- data/third_party/zlib/gzguts.h +3 -2
- data/third_party/zlib/gzlib.c +5 -3
- data/third_party/zlib/gzread.c +5 -7
- data/third_party/zlib/gzwrite.c +25 -13
- data/third_party/zlib/infback.c +2 -1
- data/third_party/zlib/inffast.c +14 -14
- data/third_party/zlib/inflate.c +39 -8
- data/third_party/zlib/inflate.h +3 -2
- data/third_party/zlib/inftrees.c +3 -3
- data/third_party/zlib/trees.c +27 -48
- data/third_party/zlib/zlib.h +123 -100
- data/third_party/zlib/zutil.c +2 -2
- data/third_party/zlib/zutil.h +12 -9
- metadata +100 -72
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +0 -31
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +0 -28
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +0 -201
- data/src/core/ext/filters/max_age/max_age_filter.cc +0 -566
- data/src/core/lib/event_engine/sockaddr.cc +0 -40
- data/src/core/lib/event_engine/sockaddr.h +0 -44
- data/src/core/lib/gprpp/capture.h +0 -76
- data/src/core/lib/iomgr/ev_epollex_linux.cc +0 -1657
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -30
- data/src/core/lib/iomgr/event_engine/closure.cc +0 -77
- data/src/core/lib/iomgr/event_engine/closure.h +0 -42
- data/src/core/lib/iomgr/event_engine/endpoint.cc +0 -172
- data/src/core/lib/iomgr/event_engine/endpoint.h +0 -52
- data/src/core/lib/iomgr/event_engine/iomgr.cc +0 -85
- data/src/core/lib/iomgr/event_engine/pollset.cc +0 -87
- data/src/core/lib/iomgr/event_engine/promise.h +0 -51
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +0 -47
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +0 -37
- data/src/core/lib/iomgr/event_engine/resolver.cc +0 -133
- data/src/core/lib/iomgr/event_engine/resolver.h +0 -56
- data/src/core/lib/iomgr/event_engine/tcp.cc +0 -296
- data/src/core/lib/iomgr/event_engine/timer.cc +0 -62
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +0 -119
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +0 -30
@@ -21,6 +21,8 @@
|
|
21
21
|
#include "absl/strings/str_cat.h"
|
22
22
|
#include "absl/strings/string_view.h"
|
23
23
|
|
24
|
+
#include <grpc/support/string_util.h>
|
25
|
+
|
24
26
|
namespace grpc_core {
|
25
27
|
|
26
28
|
namespace {
|
@@ -31,7 +33,7 @@ struct ServiceUrlAndMethod {
|
|
31
33
|
};
|
32
34
|
|
33
35
|
ServiceUrlAndMethod MakeServiceUrlAndMethod(
|
34
|
-
const
|
36
|
+
const ClientMetadataHandle& initial_metadata,
|
35
37
|
const grpc_call_credentials::GetRequestMetadataArgs* args) {
|
36
38
|
auto service =
|
37
39
|
initial_metadata->get_pointer(HttpPathMetadata())->as_string_view();
|
@@ -65,13 +67,13 @@ ServiceUrlAndMethod MakeServiceUrlAndMethod(
|
|
65
67
|
} // namespace
|
66
68
|
|
67
69
|
std::string MakeJwtServiceUrl(
|
68
|
-
const
|
70
|
+
const ClientMetadataHandle& initial_metadata,
|
69
71
|
const grpc_call_credentials::GetRequestMetadataArgs* args) {
|
70
72
|
return MakeServiceUrlAndMethod(initial_metadata, args).service_url;
|
71
73
|
}
|
72
74
|
|
73
75
|
grpc_auth_metadata_context MakePluginAuthMetadataContext(
|
74
|
-
const
|
76
|
+
const ClientMetadataHandle& initial_metadata,
|
75
77
|
const grpc_call_credentials::GetRequestMetadataArgs* args) {
|
76
78
|
auto fields = MakeServiceUrlAndMethod(initial_metadata, args);
|
77
79
|
grpc_auth_metadata_context ctx;
|
@@ -29,12 +29,12 @@ namespace grpc_core {
|
|
29
29
|
|
30
30
|
// Helper function to construct service URL for jwt call creds.
|
31
31
|
std::string MakeJwtServiceUrl(
|
32
|
-
const
|
32
|
+
const ClientMetadataHandle& initial_metadata,
|
33
33
|
const grpc_call_credentials::GetRequestMetadataArgs* args);
|
34
34
|
|
35
35
|
// Helper function to construct context for plugin call creds.
|
36
36
|
grpc_auth_metadata_context MakePluginAuthMetadataContext(
|
37
|
-
const
|
37
|
+
const ClientMetadataHandle& initial_metadata,
|
38
38
|
const grpc_call_credentials::GetRequestMetadataArgs* args);
|
39
39
|
|
40
40
|
} // namespace grpc_core
|
@@ -37,25 +37,35 @@
|
|
37
37
|
#include "src/core/lib/surface/api_trace.h"
|
38
38
|
#include "src/core/lib/transport/transport.h"
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
//
|
41
|
+
// grpc_composite_channel_credentials
|
42
|
+
//
|
43
|
+
|
44
|
+
grpc_core::UniqueTypeName grpc_composite_channel_credentials::type() const {
|
45
|
+
static grpc_core::UniqueTypeName::Factory kFactory("Composite");
|
46
|
+
return kFactory.Create();
|
47
|
+
}
|
43
48
|
|
44
49
|
/* -- Composite call credentials. -- */
|
45
50
|
|
46
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
51
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
47
52
|
grpc_composite_call_credentials::GetRequestMetadata(
|
48
|
-
grpc_core::
|
53
|
+
grpc_core::ClientMetadataHandle initial_metadata,
|
49
54
|
const grpc_call_credentials::GetRequestMetadataArgs* args) {
|
50
55
|
auto self = Ref();
|
51
56
|
return TrySeqIter(
|
52
57
|
inner_.begin(), inner_.end(), std::move(initial_metadata),
|
53
58
|
[self, args](const grpc_core::RefCountedPtr<grpc_call_credentials>& creds,
|
54
|
-
grpc_core::
|
59
|
+
grpc_core::ClientMetadataHandle initial_metadata) {
|
55
60
|
return creds->GetRequestMetadata(std::move(initial_metadata), args);
|
56
61
|
});
|
57
62
|
}
|
58
63
|
|
64
|
+
grpc_core::UniqueTypeName grpc_composite_call_credentials::Type() {
|
65
|
+
static grpc_core::UniqueTypeName::Factory kFactory("Composite");
|
66
|
+
return kFactory.Create();
|
67
|
+
}
|
68
|
+
|
59
69
|
std::string grpc_composite_call_credentials::debug_string() {
|
60
70
|
std::vector<std::string> outputs;
|
61
71
|
for (auto& inner_cred : inner_) {
|
@@ -89,12 +99,11 @@ void grpc_composite_call_credentials::push_to_inner(
|
|
89
99
|
|
90
100
|
grpc_composite_call_credentials::grpc_composite_call_credentials(
|
91
101
|
grpc_core::RefCountedPtr<grpc_call_credentials> creds1,
|
92
|
-
grpc_core::RefCountedPtr<grpc_call_credentials> creds2)
|
93
|
-
: grpc_call_credentials(GRPC_CALL_CREDENTIALS_TYPE_COMPOSITE) {
|
102
|
+
grpc_core::RefCountedPtr<grpc_call_credentials> creds2) {
|
94
103
|
const bool creds1_is_composite =
|
95
|
-
|
104
|
+
creds1->type() == grpc_composite_call_credentials::Type();
|
96
105
|
const bool creds2_is_composite =
|
97
|
-
|
106
|
+
creds2->type() == grpc_composite_call_credentials::Type();
|
98
107
|
const size_t size = get_creds_array_size(creds1.get(), creds1_is_composite) +
|
99
108
|
get_creds_array_size(creds2.get(), creds2_is_composite);
|
100
109
|
inner_.reserve(size);
|
@@ -30,17 +30,12 @@
|
|
30
30
|
|
31
31
|
/* -- Composite channel credentials. -- */
|
32
32
|
|
33
|
-
namespace grpc_core {
|
34
|
-
extern const char kCredentialsTypeComposite[];
|
35
|
-
}
|
36
|
-
|
37
33
|
class grpc_composite_channel_credentials : public grpc_channel_credentials {
|
38
34
|
public:
|
39
35
|
grpc_composite_channel_credentials(
|
40
36
|
grpc_core::RefCountedPtr<grpc_channel_credentials> channel_creds,
|
41
37
|
grpc_core::RefCountedPtr<grpc_call_credentials> call_creds)
|
42
|
-
:
|
43
|
-
inner_creds_(std::move(channel_creds)),
|
38
|
+
: inner_creds_(std::move(channel_creds)),
|
44
39
|
call_creds_(std::move(call_creds)) {}
|
45
40
|
|
46
41
|
~grpc_composite_channel_credentials() override = default;
|
@@ -56,10 +51,13 @@ class grpc_composite_channel_credentials : public grpc_channel_credentials {
|
|
56
51
|
const char* target, const grpc_channel_args* args,
|
57
52
|
grpc_channel_args** new_args) override;
|
58
53
|
|
59
|
-
|
54
|
+
grpc_core::ChannelArgs update_arguments(
|
55
|
+
grpc_core::ChannelArgs args) override {
|
60
56
|
return inner_creds_->update_arguments(args);
|
61
57
|
}
|
62
58
|
|
59
|
+
grpc_core::UniqueTypeName type() const override;
|
60
|
+
|
63
61
|
const grpc_channel_credentials* inner_creds() const {
|
64
62
|
return inner_creds_.get();
|
65
63
|
}
|
@@ -90,8 +88,8 @@ class grpc_composite_call_credentials : public grpc_call_credentials {
|
|
90
88
|
grpc_core::RefCountedPtr<grpc_call_credentials> creds2);
|
91
89
|
~grpc_composite_call_credentials() override = default;
|
92
90
|
|
93
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
94
|
-
GetRequestMetadata(grpc_core::
|
91
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
92
|
+
GetRequestMetadata(grpc_core::ClientMetadataHandle initial_metadata,
|
95
93
|
const GetRequestMetadataArgs* args) override;
|
96
94
|
|
97
95
|
grpc_security_level min_security_level() const override {
|
@@ -101,6 +99,10 @@ class grpc_composite_call_credentials : public grpc_call_credentials {
|
|
101
99
|
const CallCredentialsList& inner() const { return inner_; }
|
102
100
|
std::string debug_string() override;
|
103
101
|
|
102
|
+
static grpc_core::UniqueTypeName Type();
|
103
|
+
|
104
|
+
grpc_core::UniqueTypeName type() const override { return Type(); }
|
105
|
+
|
104
106
|
private:
|
105
107
|
int cmp_impl(const grpc_call_credentials* other) const override {
|
106
108
|
// TODO(yashykt): Check if we can do something better here
|
@@ -29,7 +29,9 @@
|
|
29
29
|
#include <grpc/grpc_security.h>
|
30
30
|
#include <grpc/support/sync.h>
|
31
31
|
|
32
|
+
#include "src/core/lib/channel/channel_args.h"
|
32
33
|
#include "src/core/lib/gprpp/ref_counted.h"
|
34
|
+
#include "src/core/lib/gprpp/unique_type_name.h"
|
33
35
|
#include "src/core/lib/iomgr/polling_entity.h"
|
34
36
|
#include "src/core/lib/promise/arena_promise.h"
|
35
37
|
#include "src/core/lib/security/context/security_context.h"
|
@@ -48,17 +50,6 @@ typedef enum {
|
|
48
50
|
|
49
51
|
#define GRPC_FAKE_TRANSPORT_SECURITY_TYPE "fake"
|
50
52
|
|
51
|
-
#define GRPC_CHANNEL_CREDENTIALS_TYPE_SSL "Ssl"
|
52
|
-
#define GRPC_CHANNEL_CREDENTIALS_TYPE_FAKE_TRANSPORT_SECURITY \
|
53
|
-
"FakeTransportSecurity"
|
54
|
-
#define GRPC_CHANNEL_CREDENTIALS_TYPE_GOOGLE_DEFAULT "GoogleDefault"
|
55
|
-
#define GRPC_CREDENTIALS_TYPE_INSECURE "insecure"
|
56
|
-
|
57
|
-
#define GRPC_CALL_CREDENTIALS_TYPE_OAUTH2 "Oauth2"
|
58
|
-
#define GRPC_CALL_CREDENTIALS_TYPE_JWT "Jwt"
|
59
|
-
#define GRPC_CALL_CREDENTIALS_TYPE_IAM "Iam"
|
60
|
-
#define GRPC_CALL_CREDENTIALS_TYPE_COMPOSITE "Composite"
|
61
|
-
|
62
53
|
#define GRPC_AUTHORIZATION_METADATA_KEY "authorization"
|
63
54
|
#define GRPC_IAM_AUTHORIZATION_TOKEN_METADATA_KEY \
|
64
55
|
"x-goog-iam-authorization-token"
|
@@ -103,12 +94,14 @@ void grpc_override_well_known_credentials_path_getter(
|
|
103
94
|
struct grpc_channel_credentials
|
104
95
|
: grpc_core::RefCounted<grpc_channel_credentials> {
|
105
96
|
public:
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
97
|
+
static absl::string_view ChannelArgName() {
|
98
|
+
return GRPC_ARG_CHANNEL_CREDENTIALS;
|
99
|
+
}
|
100
|
+
|
101
|
+
static int ChannelArgsCompare(const grpc_channel_credentials* args1,
|
102
|
+
const grpc_channel_credentials* args2) {
|
103
|
+
return args1->cmp(args2);
|
104
|
+
}
|
112
105
|
|
113
106
|
// Creates a security connector for the channel. May also create new channel
|
114
107
|
// args for the channel to be used in place of the passed in const args if
|
@@ -133,7 +126,7 @@ struct grpc_channel_credentials
|
|
133
126
|
// By default, leave channel args as is. The callee takes ownership
|
134
127
|
// of the passed-in channel args, and the caller takes ownership
|
135
128
|
// of the returned channel args.
|
136
|
-
virtual
|
129
|
+
virtual grpc_core::ChannelArgs update_arguments(grpc_core::ChannelArgs args) {
|
137
130
|
return args;
|
138
131
|
}
|
139
132
|
|
@@ -147,21 +140,21 @@ struct grpc_channel_credentials
|
|
147
140
|
// as equal (assuming other channel args match).
|
148
141
|
int cmp(const grpc_channel_credentials* other) const {
|
149
142
|
GPR_ASSERT(other != nullptr);
|
150
|
-
|
151
|
-
// against different grpc_channel_credentials types using the same name.
|
152
|
-
int r = grpc_core::QsortCompare(type(), other->type());
|
143
|
+
int r = type().Compare(other->type());
|
153
144
|
if (r != 0) return r;
|
154
145
|
return cmp_impl(other);
|
155
146
|
}
|
156
147
|
|
157
|
-
|
148
|
+
// The pointer value \a type is used to uniquely identify a creds
|
149
|
+
// implementation for down-casting purposes. Every creds implementation should
|
150
|
+
// use a unique string instance, which should be returned by all instances of
|
151
|
+
// that creds implementation.
|
152
|
+
virtual grpc_core::UniqueTypeName type() const = 0;
|
158
153
|
|
159
154
|
private:
|
160
155
|
// Implementation for `cmp` method intended to be overridden by subclasses.
|
161
|
-
// Only invoked if `type()` and `other->type()`
|
156
|
+
// Only invoked if `type()` and `other->type()` point to the same string.
|
162
157
|
virtual int cmp_impl(const grpc_channel_credentials* other) const = 0;
|
163
|
-
|
164
|
-
const char* type_;
|
165
158
|
};
|
166
159
|
|
167
160
|
// TODO(roth): Once we eliminate insecure builds, find a better way to
|
@@ -209,15 +202,14 @@ struct grpc_call_credentials
|
|
209
202
|
// use a unique string instance, which should be returned by all instances of
|
210
203
|
// that creds implementation.
|
211
204
|
explicit grpc_call_credentials(
|
212
|
-
const char* type,
|
213
205
|
grpc_security_level min_security_level = GRPC_PRIVACY_AND_INTEGRITY)
|
214
|
-
:
|
206
|
+
: min_security_level_(min_security_level) {}
|
215
207
|
|
216
208
|
~grpc_call_credentials() override = default;
|
217
209
|
|
218
210
|
virtual grpc_core::ArenaPromise<
|
219
|
-
absl::StatusOr<grpc_core::
|
220
|
-
GetRequestMetadata(grpc_core::
|
211
|
+
absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
212
|
+
GetRequestMetadata(grpc_core::ClientMetadataHandle initial_metadata,
|
221
213
|
const GetRequestMetadataArgs* args) = 0;
|
222
214
|
|
223
215
|
virtual grpc_security_level min_security_level() const {
|
@@ -229,9 +221,7 @@ struct grpc_call_credentials
|
|
229
221
|
// credentials as effectively the same..
|
230
222
|
int cmp(const grpc_call_credentials* other) const {
|
231
223
|
GPR_ASSERT(other != nullptr);
|
232
|
-
|
233
|
-
// against different grpc_call_credentials types using the same name.
|
234
|
-
int r = grpc_core::QsortCompare(type(), other->type());
|
224
|
+
int r = type().Compare(other->type());
|
235
225
|
if (r != 0) return r;
|
236
226
|
return cmp_impl(other);
|
237
227
|
}
|
@@ -240,14 +230,17 @@ struct grpc_call_credentials
|
|
240
230
|
return "grpc_call_credentials did not provide debug string";
|
241
231
|
}
|
242
232
|
|
243
|
-
|
233
|
+
// The pointer value \a type is used to uniquely identify a creds
|
234
|
+
// implementation for down-casting purposes. Every creds implementation should
|
235
|
+
// use a unique string instance, which should be returned by all instances of
|
236
|
+
// that creds implementation.
|
237
|
+
virtual grpc_core::UniqueTypeName type() const = 0;
|
244
238
|
|
245
239
|
private:
|
246
240
|
// Implementation for `cmp` method intended to be overridden by subclasses.
|
247
|
-
// Only invoked if `type()` and `other->type()`
|
241
|
+
// Only invoked if `type()` and `other->type()` point to the same string.
|
248
242
|
virtual int cmp_impl(const grpc_call_credentials* other) const = 0;
|
249
243
|
|
250
|
-
const char* type_;
|
251
244
|
const grpc_security_level min_security_level_;
|
252
245
|
};
|
253
246
|
|
@@ -264,15 +257,13 @@ grpc_call_credentials* grpc_md_only_test_credentials_create(
|
|
264
257
|
struct grpc_server_credentials
|
265
258
|
: public grpc_core::RefCounted<grpc_server_credentials> {
|
266
259
|
public:
|
267
|
-
explicit grpc_server_credentials(const char* type) : type_(type) {}
|
268
|
-
|
269
260
|
~grpc_server_credentials() override { DestroyProcessor(); }
|
270
261
|
|
271
262
|
// Ownership of \a args is not passed.
|
272
263
|
virtual grpc_core::RefCountedPtr<grpc_server_security_connector>
|
273
264
|
create_security_connector(const grpc_channel_args* args) = 0;
|
274
265
|
|
275
|
-
|
266
|
+
virtual grpc_core::UniqueTypeName type() const = 0;
|
276
267
|
|
277
268
|
const grpc_auth_metadata_processor& auth_metadata_processor() const {
|
278
269
|
return processor_;
|
@@ -287,7 +278,6 @@ struct grpc_server_credentials
|
|
287
278
|
}
|
288
279
|
}
|
289
280
|
|
290
|
-
const char* type_;
|
291
281
|
grpc_auth_metadata_processor processor_ =
|
292
282
|
grpc_auth_metadata_processor(); // Zero-initialize the C struct.
|
293
283
|
};
|
@@ -21,6 +21,8 @@
|
|
21
21
|
#include "absl/strings/str_join.h"
|
22
22
|
#include "absl/strings/str_replace.h"
|
23
23
|
|
24
|
+
#include <grpc/support/string_util.h>
|
25
|
+
|
24
26
|
#include "src/core/lib/gpr/env.h"
|
25
27
|
#include "src/core/lib/http/httpcli_ssl_credentials.h"
|
26
28
|
|
@@ -119,6 +121,12 @@ AwsExternalAccountCredentials::AwsExternalAccountCredentials(
|
|
119
121
|
return;
|
120
122
|
}
|
121
123
|
regional_cred_verification_url_ = it->second.string_value();
|
124
|
+
it =
|
125
|
+
options.credential_source.object_value().find("imdsv2_session_token_url");
|
126
|
+
if (it != options.credential_source.object_value().end() &&
|
127
|
+
it->second.type() == Json::Type::STRING) {
|
128
|
+
imdsv2_session_token_url_ = it->second.string_value();
|
129
|
+
}
|
122
130
|
}
|
123
131
|
|
124
132
|
void AwsExternalAccountCredentials::RetrieveSubjectToken(
|
@@ -133,6 +141,62 @@ void AwsExternalAccountCredentials::RetrieveSubjectToken(
|
|
133
141
|
}
|
134
142
|
ctx_ = ctx;
|
135
143
|
cb_ = cb;
|
144
|
+
if (!imdsv2_session_token_url_.empty()) {
|
145
|
+
RetrieveImdsV2SessionToken();
|
146
|
+
} else if (signer_ != nullptr) {
|
147
|
+
BuildSubjectToken();
|
148
|
+
} else {
|
149
|
+
RetrieveRegion();
|
150
|
+
}
|
151
|
+
}
|
152
|
+
|
153
|
+
void AwsExternalAccountCredentials::RetrieveImdsV2SessionToken() {
|
154
|
+
absl::StatusOr<URI> uri = URI::Parse(imdsv2_session_token_url_);
|
155
|
+
if (!uri.ok()) {
|
156
|
+
return;
|
157
|
+
}
|
158
|
+
grpc_http_header* headers =
|
159
|
+
static_cast<grpc_http_header*>(gpr_malloc(sizeof(grpc_http_header)));
|
160
|
+
headers[0].key = gpr_strdup("x-aws-ec2-metadata-token-ttl-seconds");
|
161
|
+
headers[0].value = gpr_strdup("300");
|
162
|
+
grpc_http_request request;
|
163
|
+
memset(&request, 0, sizeof(grpc_http_request));
|
164
|
+
request.hdr_count = 1;
|
165
|
+
request.hdrs = headers;
|
166
|
+
grpc_http_response_destroy(&ctx_->response);
|
167
|
+
ctx_->response = {};
|
168
|
+
GRPC_CLOSURE_INIT(&ctx_->closure, OnRetrieveImdsV2SessionToken, this,
|
169
|
+
nullptr);
|
170
|
+
RefCountedPtr<grpc_channel_credentials> http_request_creds;
|
171
|
+
if (uri->scheme() == "http") {
|
172
|
+
http_request_creds = RefCountedPtr<grpc_channel_credentials>(
|
173
|
+
grpc_insecure_credentials_create());
|
174
|
+
} else {
|
175
|
+
http_request_creds = CreateHttpRequestSSLCredentials();
|
176
|
+
}
|
177
|
+
http_request_ =
|
178
|
+
HttpRequest::Put(std::move(*uri), nullptr /* channel args */,
|
179
|
+
ctx_->pollent, &request, ctx_->deadline, &ctx_->closure,
|
180
|
+
&ctx_->response, std::move(http_request_creds));
|
181
|
+
http_request_->Start();
|
182
|
+
grpc_http_request_destroy(&request);
|
183
|
+
}
|
184
|
+
|
185
|
+
void AwsExternalAccountCredentials::OnRetrieveImdsV2SessionToken(
|
186
|
+
void* arg, grpc_error_handle error) {
|
187
|
+
AwsExternalAccountCredentials* self =
|
188
|
+
static_cast<AwsExternalAccountCredentials*>(arg);
|
189
|
+
self->OnRetrieveImdsV2SessionTokenInternal(GRPC_ERROR_REF(error));
|
190
|
+
}
|
191
|
+
|
192
|
+
void AwsExternalAccountCredentials::OnRetrieveImdsV2SessionTokenInternal(
|
193
|
+
grpc_error_handle error) {
|
194
|
+
if (error != GRPC_ERROR_NONE) {
|
195
|
+
FinishRetrieveSubjectToken("", error);
|
196
|
+
return;
|
197
|
+
}
|
198
|
+
imdsv2_session_token_ =
|
199
|
+
std::string(ctx_->response.body, ctx_->response.body_length);
|
136
200
|
if (signer_ != nullptr) {
|
137
201
|
BuildSubjectToken();
|
138
202
|
} else {
|
@@ -140,6 +204,20 @@ void AwsExternalAccountCredentials::RetrieveSubjectToken(
|
|
140
204
|
}
|
141
205
|
}
|
142
206
|
|
207
|
+
void AwsExternalAccountCredentials::AddMetadataRequestHeaders(
|
208
|
+
grpc_http_request* request) {
|
209
|
+
if (!imdsv2_session_token_.empty()) {
|
210
|
+
GPR_ASSERT(request->hdr_count == 0);
|
211
|
+
GPR_ASSERT(request->hdrs == nullptr);
|
212
|
+
grpc_http_header* headers =
|
213
|
+
static_cast<grpc_http_header*>(gpr_malloc(sizeof(grpc_http_header)));
|
214
|
+
headers[0].key = gpr_strdup("x-aws-ec2-metadata-token");
|
215
|
+
headers[0].value = gpr_strdup(imdsv2_session_token_.c_str());
|
216
|
+
request->hdr_count = 1;
|
217
|
+
request->hdrs = headers;
|
218
|
+
}
|
219
|
+
}
|
220
|
+
|
143
221
|
void AwsExternalAccountCredentials::RetrieveRegion() {
|
144
222
|
UniquePtr<char> region_from_env(gpr_getenv(kRegionEnvVar));
|
145
223
|
if (region_from_env == nullptr) {
|
@@ -165,6 +243,7 @@ void AwsExternalAccountCredentials::RetrieveRegion() {
|
|
165
243
|
memset(&request, 0, sizeof(grpc_http_request));
|
166
244
|
grpc_http_response_destroy(&ctx_->response);
|
167
245
|
ctx_->response = {};
|
246
|
+
AddMetadataRequestHeaders(&request);
|
168
247
|
GRPC_CLOSURE_INIT(&ctx_->closure, OnRetrieveRegion, this, nullptr);
|
169
248
|
RefCountedPtr<grpc_channel_credentials> http_request_creds;
|
170
249
|
if (uri->scheme() == "http") {
|
@@ -217,6 +296,7 @@ void AwsExternalAccountCredentials::RetrieveRoleName() {
|
|
217
296
|
memset(&request, 0, sizeof(grpc_http_request));
|
218
297
|
grpc_http_response_destroy(&ctx_->response);
|
219
298
|
ctx_->response = {};
|
299
|
+
AddMetadataRequestHeaders(&request);
|
220
300
|
GRPC_CLOSURE_INIT(&ctx_->closure, OnRetrieveRoleName, this, nullptr);
|
221
301
|
// TODO(ctiller): use the caller's resource quota.
|
222
302
|
RefCountedPtr<grpc_channel_credentials> http_request_creds;
|
@@ -282,6 +362,7 @@ void AwsExternalAccountCredentials::RetrieveSigningKeys() {
|
|
282
362
|
memset(&request, 0, sizeof(grpc_http_request));
|
283
363
|
grpc_http_response_destroy(&ctx_->response);
|
284
364
|
ctx_->response = {};
|
365
|
+
AddMetadataRequestHeaders(&request);
|
285
366
|
GRPC_CLOSURE_INIT(&ctx_->closure, OnRetrieveSigningKeys, this, nullptr);
|
286
367
|
// TODO(ctiller): use the caller's resource quota.
|
287
368
|
RefCountedPtr<grpc_channel_credentials> http_request_creds;
|
@@ -43,6 +43,10 @@ class AwsExternalAccountCredentials final : public ExternalAccountCredentials {
|
|
43
43
|
static void OnRetrieveRegion(void* arg, grpc_error_handle error);
|
44
44
|
void OnRetrieveRegionInternal(grpc_error_handle error);
|
45
45
|
|
46
|
+
void RetrieveImdsV2SessionToken();
|
47
|
+
static void OnRetrieveImdsV2SessionToken(void* arg, grpc_error_handle error);
|
48
|
+
void OnRetrieveImdsV2SessionTokenInternal(grpc_error_handle error);
|
49
|
+
|
46
50
|
void RetrieveRoleName();
|
47
51
|
static void OnRetrieveRoleName(void* arg, grpc_error_handle error);
|
48
52
|
void OnRetrieveRoleNameInternal(grpc_error_handle error);
|
@@ -55,6 +59,8 @@ class AwsExternalAccountCredentials final : public ExternalAccountCredentials {
|
|
55
59
|
void FinishRetrieveSubjectToken(std::string subject_token,
|
56
60
|
grpc_error_handle error);
|
57
61
|
|
62
|
+
void AddMetadataRequestHeaders(grpc_http_request* request);
|
63
|
+
|
58
64
|
std::string audience_;
|
59
65
|
OrphanablePtr<HttpRequest> http_request_;
|
60
66
|
|
@@ -62,6 +68,7 @@ class AwsExternalAccountCredentials final : public ExternalAccountCredentials {
|
|
62
68
|
std::string region_url_;
|
63
69
|
std::string url_;
|
64
70
|
std::string regional_cred_verification_url_;
|
71
|
+
std::string imdsv2_session_token_url_;
|
65
72
|
|
66
73
|
// Information required by request signer
|
67
74
|
std::string region_;
|
@@ -69,6 +76,7 @@ class AwsExternalAccountCredentials final : public ExternalAccountCredentials {
|
|
69
76
|
std::string access_key_id_;
|
70
77
|
std::string secret_access_key_;
|
71
78
|
std::string token_;
|
79
|
+
std::string imdsv2_session_token_;
|
72
80
|
|
73
81
|
std::unique_ptr<AwsRequestSigner> signer_;
|
74
82
|
std::string cred_verification_url_;
|
@@ -13,6 +13,7 @@
|
|
13
13
|
// See the License for the specific language governing permissions and
|
14
14
|
// limitations under the License.
|
15
15
|
//
|
16
|
+
|
16
17
|
#include <grpc/support/port_platform.h>
|
17
18
|
|
18
19
|
#include "src/core/lib/security/credentials/external/external_account_credentials.h"
|
@@ -25,6 +26,8 @@
|
|
25
26
|
#include "absl/time/clock.h"
|
26
27
|
#include "absl/time/time.h"
|
27
28
|
|
29
|
+
#include <grpc/support/string_util.h>
|
30
|
+
|
28
31
|
#include "src/core/lib/http/httpcli_ssl_credentials.h"
|
29
32
|
#include "src/core/lib/http/parser.h"
|
30
33
|
#include "src/core/lib/security/credentials/external/aws_external_account_credentials.h"
|
@@ -35,13 +35,9 @@
|
|
35
35
|
/* -- Fake transport security credentials. -- */
|
36
36
|
|
37
37
|
namespace {
|
38
|
+
|
38
39
|
class grpc_fake_channel_credentials final : public grpc_channel_credentials {
|
39
40
|
public:
|
40
|
-
grpc_fake_channel_credentials()
|
41
|
-
: grpc_channel_credentials(
|
42
|
-
GRPC_CHANNEL_CREDENTIALS_TYPE_FAKE_TRANSPORT_SECURITY) {}
|
43
|
-
~grpc_fake_channel_credentials() override = default;
|
44
|
-
|
45
41
|
grpc_core::RefCountedPtr<grpc_channel_security_connector>
|
46
42
|
create_security_connector(
|
47
43
|
grpc_core::RefCountedPtr<grpc_call_credentials> call_creds,
|
@@ -51,6 +47,11 @@ class grpc_fake_channel_credentials final : public grpc_channel_credentials {
|
|
51
47
|
this->Ref(), std::move(call_creds), target, args);
|
52
48
|
}
|
53
49
|
|
50
|
+
grpc_core::UniqueTypeName type() const override {
|
51
|
+
static grpc_core::UniqueTypeName::Factory kFactory("Fake");
|
52
|
+
return kFactory.Create();
|
53
|
+
}
|
54
|
+
|
54
55
|
private:
|
55
56
|
int cmp_impl(const grpc_channel_credentials* other) const override {
|
56
57
|
// TODO(yashykt): Check if we can do something better here
|
@@ -61,15 +62,15 @@ class grpc_fake_channel_credentials final : public grpc_channel_credentials {
|
|
61
62
|
|
62
63
|
class grpc_fake_server_credentials final : public grpc_server_credentials {
|
63
64
|
public:
|
64
|
-
grpc_fake_server_credentials()
|
65
|
-
: grpc_server_credentials(
|
66
|
-
GRPC_CHANNEL_CREDENTIALS_TYPE_FAKE_TRANSPORT_SECURITY) {}
|
67
|
-
~grpc_fake_server_credentials() override = default;
|
68
|
-
|
69
65
|
grpc_core::RefCountedPtr<grpc_server_security_connector>
|
70
66
|
create_security_connector(const grpc_channel_args* /*args*/) override {
|
71
67
|
return grpc_fake_server_security_connector_create(this->Ref());
|
72
68
|
}
|
69
|
+
|
70
|
+
grpc_core::UniqueTypeName type() const override {
|
71
|
+
static grpc_core::UniqueTypeName::Factory kFactory("Fake");
|
72
|
+
return kFactory.Create();
|
73
|
+
}
|
73
74
|
};
|
74
75
|
} // namespace
|
75
76
|
|
@@ -97,9 +98,9 @@ const char* grpc_fake_transport_get_expected_targets(
|
|
97
98
|
|
98
99
|
/* -- Metadata-only test credentials. -- */
|
99
100
|
|
100
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
101
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
101
102
|
grpc_md_only_test_credentials::GetRequestMetadata(
|
102
|
-
grpc_core::
|
103
|
+
grpc_core::ClientMetadataHandle initial_metadata,
|
103
104
|
const grpc_call_credentials::GetRequestMetadataArgs*) {
|
104
105
|
initial_metadata->Append(
|
105
106
|
key_.as_string_view(), value_.Ref(),
|
@@ -107,6 +108,11 @@ grpc_md_only_test_credentials::GetRequestMetadata(
|
|
107
108
|
return grpc_core::Immediate(std::move(initial_metadata));
|
108
109
|
}
|
109
110
|
|
111
|
+
grpc_core::UniqueTypeName grpc_md_only_test_credentials::Type() {
|
112
|
+
static grpc_core::UniqueTypeName::Factory kFactory("MdOnlyTest");
|
113
|
+
return kFactory.Create();
|
114
|
+
}
|
115
|
+
|
110
116
|
grpc_call_credentials* grpc_md_only_test_credentials_create(
|
111
117
|
const char* md_key, const char* md_value) {
|
112
118
|
return new grpc_md_only_test_credentials(md_key, md_value);
|
@@ -60,16 +60,19 @@ const char* grpc_fake_transport_get_expected_targets(
|
|
60
60
|
class grpc_md_only_test_credentials : public grpc_call_credentials {
|
61
61
|
public:
|
62
62
|
grpc_md_only_test_credentials(const char* md_key, const char* md_value)
|
63
|
-
: grpc_call_credentials(
|
64
|
-
GRPC_SECURITY_NONE),
|
63
|
+
: grpc_call_credentials(GRPC_SECURITY_NONE),
|
65
64
|
key_(grpc_core::Slice::FromCopiedString(md_key)),
|
66
65
|
value_(grpc_core::Slice::FromCopiedString(md_value)) {}
|
67
66
|
|
68
|
-
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::
|
69
|
-
GetRequestMetadata(grpc_core::
|
67
|
+
grpc_core::ArenaPromise<absl::StatusOr<grpc_core::ClientMetadataHandle>>
|
68
|
+
GetRequestMetadata(grpc_core::ClientMetadataHandle initial_metadata,
|
70
69
|
const GetRequestMetadataArgs* args) override;
|
71
70
|
|
72
|
-
std::string debug_string() override { return "MD only Test Credentials"; }
|
71
|
+
std::string debug_string() override { return "MD only Test Credentials"; }
|
72
|
+
|
73
|
+
static grpc_core::UniqueTypeName Type();
|
74
|
+
|
75
|
+
grpc_core::UniqueTypeName type() const override { return Type(); }
|
73
76
|
|
74
77
|
private:
|
75
78
|
int cmp_impl(const grpc_call_credentials* other) const override {
|