grpc 1.42.0 → 1.52.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 +778 -456
- data/include/grpc/byte_buffer.h +76 -1
- data/include/grpc/byte_buffer_reader.h +19 -1
- data/include/grpc/compression.h +2 -2
- data/include/grpc/event_engine/endpoint_config.h +11 -5
- data/include/grpc/event_engine/event_engine.h +137 -45
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +2 -32
- data/include/grpc/event_engine/internal/slice_cast.h +67 -0
- data/include/grpc/event_engine/memory_allocator.h +28 -27
- data/include/grpc/event_engine/memory_request.h +57 -0
- data/include/grpc/event_engine/port.h +1 -1
- data/include/grpc/event_engine/slice.h +306 -0
- data/include/grpc/event_engine/slice_buffer.h +147 -0
- data/include/grpc/fork.h +25 -1
- data/include/grpc/grpc.h +44 -28
- data/include/grpc/grpc_posix.h +21 -20
- data/include/grpc/grpc_security.h +323 -195
- data/include/grpc/grpc_security_constants.h +1 -14
- data/include/grpc/impl/codegen/atm.h +3 -71
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +3 -67
- data/include/grpc/impl/codegen/atm_gcc_sync.h +3 -61
- data/include/grpc/impl/codegen/atm_windows.h +3 -108
- data/include/grpc/impl/codegen/byte_buffer.h +4 -78
- data/include/grpc/impl/codegen/byte_buffer_reader.h +4 -19
- data/include/grpc/impl/codegen/compression_types.h +5 -85
- data/include/grpc/impl/codegen/connectivity_state.h +5 -21
- data/include/grpc/impl/codegen/fork.h +4 -25
- data/include/grpc/impl/codegen/gpr_types.h +4 -35
- data/include/grpc/impl/codegen/grpc_types.h +5 -788
- data/include/grpc/impl/codegen/log.h +3 -86
- data/include/grpc/impl/codegen/port_platform.h +3 -695
- data/include/grpc/impl/codegen/propagation_bits.h +3 -28
- data/include/grpc/impl/codegen/slice.h +4 -104
- data/include/grpc/impl/codegen/status.h +4 -131
- data/include/grpc/impl/codegen/sync.h +3 -42
- data/include/grpc/impl/codegen/sync_abseil.h +3 -12
- data/include/grpc/impl/codegen/sync_custom.h +3 -14
- data/include/grpc/impl/codegen/sync_generic.h +3 -25
- data/include/grpc/impl/codegen/sync_posix.h +3 -28
- data/include/grpc/impl/codegen/sync_windows.h +3 -16
- data/include/grpc/impl/compression_types.h +109 -0
- data/include/grpc/impl/connectivity_state.h +47 -0
- data/include/grpc/impl/grpc_types.h +824 -0
- data/include/grpc/impl/propagation_bits.h +54 -0
- data/include/grpc/impl/slice_type.h +112 -0
- data/include/grpc/load_reporting.h +1 -1
- data/include/grpc/module.modulemap +5 -1
- data/include/grpc/slice.h +1 -12
- data/include/grpc/status.h +131 -1
- data/include/grpc/support/atm.h +70 -1
- data/include/grpc/support/atm_gcc_atomic.h +59 -1
- data/include/grpc/support/atm_gcc_sync.h +58 -1
- data/include/grpc/support/atm_windows.h +105 -1
- data/include/grpc/support/log.h +87 -1
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/port_platform.h +767 -1
- data/include/grpc/support/string_util.h +1 -1
- data/include/grpc/support/sync.h +35 -2
- data/include/grpc/support/sync_abseil.h +11 -1
- data/include/grpc/support/sync_custom.h +13 -1
- data/include/grpc/support/sync_generic.h +24 -1
- data/include/grpc/support/sync_posix.h +27 -1
- data/include/grpc/support/sync_windows.h +15 -1
- data/include/grpc/support/time.h +25 -2
- data/src/core/ext/filters/census/grpc_context.cc +19 -17
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +315 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +142 -0
- data/src/core/ext/filters/channel_idle/idle_filter_state.cc +96 -0
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +68 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +22 -16
- data/src/core/ext/filters/client_channel/backend_metric.h +19 -8
- data/src/core/ext/filters/client_channel/backup_poller.cc +44 -40
- data/src/core/ext/filters/client_channel/backup_poller.h +23 -25
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +94 -49
- data/src/core/ext/filters/client_channel/client_channel.cc +708 -630
- data/src/core/ext/filters/client_channel/client_channel.h +106 -60
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +19 -23
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +30 -20
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +19 -43
- data/src/core/ext/filters/client_channel/client_channel_factory.h +8 -8
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +26 -58
- data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
- data/src/core/ext/filters/client_channel/client_channel_service_config.h +111 -0
- data/src/core/ext/filters/client_channel/config_selector.cc +1 -0
- data/src/core/ext/filters/client_channel/config_selector.h +31 -25
- data/src/core/ext/filters/client_channel/connector.h +13 -8
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +44 -59
- data/src/core/ext/filters/client_channel/dynamic_filters.h +19 -10
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +4 -22
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +24 -33
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +139 -583
- data/src/core/ext/filters/client_channel/health/health_check_client.h +26 -160
- data/src/core/ext/filters/client_channel/http_proxy.cc +130 -164
- data/src/core/ext/filters/client_channel/http_proxy.h +43 -19
- data/src/core/ext/filters/client_channel/lb_call_state_internal.h +39 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +12 -8
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
- 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 +37 -16
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +16 -11
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +64 -134
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +38 -21
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +467 -414
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +24 -32
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +15 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +8 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +19 -22
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +26 -21
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +43 -34
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +28 -27
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +415 -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 +1129 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +94 -0
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +221 -209
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +488 -480
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +525 -392
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +16 -6
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +725 -701
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +282 -254
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +174 -147
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +287 -249
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +290 -267
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +42 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h +64 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +296 -297
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +213 -215
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +600 -738
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +651 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +60 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +364 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +4 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +19 -18
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +42 -33
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +678 -336
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +65 -49
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +50 -45
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +111 -130
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +420 -418
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +92 -78
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +18 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +21 -20
- 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 +20 -20
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +124 -255
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +37 -49
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +18 -3
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +189 -102
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +269 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +121 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +56 -61
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +654 -523
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +4 -2
- data/src/core/ext/filters/client_channel/retry_filter.cc +382 -294
- data/src/core/ext/filters/client_channel/retry_filter.h +1 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +198 -232
- data/src/core/ext/filters/client_channel/retry_service_config.h +41 -32
- data/src/core/ext/filters/client_channel/retry_throttle.cc +37 -60
- data/src/core/ext/filters/client_channel/retry_throttle.h +44 -31
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +37 -19
- data/src/core/ext/filters/client_channel/subchannel.cc +342 -405
- data/src/core/ext/filters/client_channel/subchannel.h +113 -83
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +17 -77
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +38 -44
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +470 -0
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +222 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +66 -39
- data/src/core/ext/filters/deadline/deadline_filter.h +12 -5
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +180 -403
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +38 -6
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +112 -0
- data/src/core/ext/filters/http/client/http_client_filter.cc +125 -571
- data/src/core/ext/filters/http/client/http_client_filter.h +52 -22
- data/src/core/ext/filters/http/client_authority_filter.cc +60 -129
- data/src/core/ext/filters/http/client_authority_filter.h +46 -24
- data/src/core/ext/filters/http/http_filters_plugin.cc +53 -62
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +315 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.h +132 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +117 -493
- data/src/core/ext/filters/http/server/http_server_filter.h +55 -21
- data/src/core/ext/filters/message_size/message_size_filter.cc +136 -165
- data/src/core/ext/filters/message_size/message_size_filter.h +42 -18
- data/src/core/ext/filters/rbac/rbac_filter.cc +174 -0
- data/src/core/ext/filters/rbac/rbac_filter.h +84 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +819 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +86 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +83 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +159 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +33 -0
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +229 -0
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +66 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +82 -0
- data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +93 -0
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +18 -18
- data/src/core/ext/transport/chttp2/alpn/alpn.h +22 -22
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +319 -151
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +36 -30
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +410 -240
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +23 -23
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +24 -24
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +32 -31
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +31 -30
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +27 -27
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +839 -1196
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +34 -24
- data/src/core/ext/transport/chttp2/transport/context_list.cc +25 -22
- data/src/core/ext/transport/chttp2/transport/context_list.h +31 -29
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +251 -0
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +971 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +352 -303
- data/src/core/ext/transport/chttp2/transport/flow_control.h +247 -324
- data/src/core/ext/transport/chttp2/transport/frame.h +19 -23
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +83 -235
- data/src/core/ext/transport/chttp2/transport/frame_data.h +35 -58
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +39 -36
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +21 -19
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +33 -28
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +22 -19
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +38 -26
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +21 -18
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +45 -77
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +24 -20
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +32 -33
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +21 -18
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +7 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +441 -367
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +141 -201
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +5 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +12 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +212 -326
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +28 -22
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +161 -61
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +68 -68
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +36 -35
- data/src/core/ext/transport/chttp2/transport/http_trace.cc +19 -0
- data/src/core/ext/transport/chttp2/transport/http_trace.h +24 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.cc +20 -20
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +19 -19
- data/src/core/ext/transport/chttp2/transport/internal.h +242 -324
- data/src/core/ext/transport/chttp2/transport/parsing.cc +262 -115
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +30 -30
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +24 -24
- data/src/core/ext/transport/chttp2/transport/stream_map.h +32 -31
- data/src/core/ext/transport/chttp2/transport/varint.cc +19 -20
- data/src/core/ext/transport/chttp2/transport/varint.h +37 -32
- data/src/core/ext/transport/chttp2/transport/writing.cc +191 -220
- data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -22
- data/src/core/ext/transport/inproc/inproc_transport.cc +260 -346
- data/src/core/ext/transport/inproc/inproc_transport.h +22 -23
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +117 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +502 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +569 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +60 -341
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +280 -1355
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +159 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +64 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +189 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +128 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +106 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +101 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +106 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +613 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +107 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +51 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +30 -4
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +54 -17
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +143 -116
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +730 -385
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +241 -199
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1360 -663
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +49 -28
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +213 -90
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +321 -271
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1776 -826
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +47 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +60 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +277 -98
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +299 -0
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1437 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +74 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +383 -189
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +21 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +50 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +215 -176
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1179 -583
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +105 -45
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +554 -166
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +19 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +43 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +16 -22
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +46 -100
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +159 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +145 -117
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +821 -409
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +141 -92
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +773 -348
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +62 -30
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +204 -125
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1068 -398
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +17 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +33 -16
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +27 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +92 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +22 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +80 -33
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +26 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +98 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +51 -25
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +51 -35
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +207 -108
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +74 -55
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +374 -189
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +70 -53
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +378 -187
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +19 -6
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +39 -20
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +122 -71
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +660 -259
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +104 -79
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +589 -300
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +31 -16
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +109 -48
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +27 -10
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +98 -39
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +140 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +82 -61
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +446 -234
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +86 -65
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +443 -236
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +139 -103
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +649 -293
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +45 -41
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +255 -165
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +706 -570
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +4125 -1898
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +38 -19
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +161 -71
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +241 -0
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +1191 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +92 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +107 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +27 -13
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +86 -45
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +138 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +254 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +221 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +33 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +43 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +226 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +150 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +17 -4
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +39 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +45 -28
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +208 -111
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +51 -36
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +273 -131
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +71 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +237 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +26 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +91 -42
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +179 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +292 -224
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1679 -733
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +168 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +98 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +9 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +6 -3
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +107 -60
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +607 -234
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +41 -26
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +169 -86
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +126 -83
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +651 -262
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +168 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +15 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +26 -14
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +206 -72
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1095 -255
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +31 -17
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +116 -61
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +74 -57
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +368 -185
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +116 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +34 -18
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +140 -80
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +230 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +28 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +108 -56
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +55 -30
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +53 -26
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +19 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +43 -23
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +35 -20
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +130 -68
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +31 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +132 -64
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +26 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +94 -52
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +37 -22
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +163 -82
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +50 -31
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +258 -144
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +53 -36
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +256 -130
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +213 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +9 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +3 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +143 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +23 -9
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +71 -35
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +30 -15
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +111 -51
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +19 -6
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +45 -18
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +131 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +22 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +23 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +154 -125
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +765 -381
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +158 -126
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +844 -401
- data/src/core/ext/upb-generated/google/api/http.upb.c +43 -28
- data/src/core/ext/upb-generated/google/api/http.upb.h +229 -114
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +115 -0
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +18 -5
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +43 -21
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +374 -282
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2199 -1029
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +18 -5
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +41 -19
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +15 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +26 -14
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +47 -31
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +190 -92
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +18 -5
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +41 -19
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +57 -36
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +277 -148
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +21 -8
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +57 -29
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +335 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +32 -18
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +108 -47
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +135 -107
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +726 -358
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +27 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +85 -40
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +22 -8
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +65 -34
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +81 -61
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +435 -237
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +34 -19
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +124 -62
- 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 +792 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +75 -13
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +206 -56
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +31 -5
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +59 -17
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +21 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +16 -0
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +31 -5
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +61 -19
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +30 -4
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +54 -17
- data/src/core/ext/upb-generated/validate/validate.upb.c +406 -310
- data/src/core/ext/upb-generated/validate/validate.upb.h +2822 -1164
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +290 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +112 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +46 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +64 -17
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +191 -67
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +103 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +17 -4
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +35 -18
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +47 -0
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +107 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +30 -16
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +107 -54
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +25 -11
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +58 -29
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +107 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +22 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +60 -29
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +33 -19
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +139 -69
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +22 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +63 -29
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +37 -21
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +115 -45
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +113 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +98 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +62 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +174 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +74 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +191 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +207 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +914 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +127 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +474 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +151 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +226 -0
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +67 -0
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +214 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +64 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +208 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +20 -8
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +47 -23
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +75 -327
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +16 -101
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +10 -8
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +10 -13
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +120 -150
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +46 -46
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +253 -280
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +55 -55
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +60 -62
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +387 -424
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +76 -76
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +25 -23
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +17 -32
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +203 -246
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +73 -73
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +140 -116
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +26 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +16 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +24 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +4 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +23 -51
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +43 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +179 -187
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +30 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +16 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +254 -254
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +53 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +14 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +16 -20
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +26 -28
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +15 -18
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +20 -28
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +21 -33
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +19 -19
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +20 -30
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +180 -165
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +24 -19
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +155 -166
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +21 -23
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +46 -42
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +19 -35
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +19 -37
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +28 -28
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +194 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +82 -85
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +7 -12
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +874 -917
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +170 -160
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +54 -48
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +199 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +17 -21
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +17 -18
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +19 -29
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +20 -26
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +80 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +19 -20
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +405 -410
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +63 -58
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +17 -13
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +174 -157
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +24 -19
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +21 -27
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +219 -216
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +24 -19
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +162 -107
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +57 -22
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +18 -22
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +125 -135
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +15 -23
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +17 -21
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +38 -43
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +17 -21
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +16 -21
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +18 -24
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +15 -29
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +16 -26
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +12 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +14 -19
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +13 -19
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +13 -16
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +7 -7
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +5 -14
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +96 -151
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +5 -16
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +5 -26
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +6 -11
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -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/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +6 -15
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +7 -12
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +6 -11
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +6 -11
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +8 -57
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +70 -70
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +6 -17
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +7 -12
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +9 -16
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +6 -13
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +8 -13
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +8 -15
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +8 -13
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +60 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +36 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +8 -16
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +4 -4
- data/src/core/ext/xds/certificate_provider_store.cc +75 -3
- data/src/core/ext/xds/certificate_provider_store.h +28 -2
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +20 -14
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +11 -3
- data/src/core/ext/xds/upb_utils.h +45 -0
- data/src/core/ext/xds/xds_api.cc +318 -3659
- data/src/core/ext/xds/xds_api.h +79 -630
- data/src/core/ext/xds/xds_bootstrap.cc +10 -443
- data/src/core/ext/xds/xds_bootstrap.h +44 -81
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +361 -0
- data/src/core/ext/xds/xds_bootstrap_grpc.h +184 -0
- data/src/core/ext/xds/xds_certificate_provider.cc +36 -25
- data/src/core/ext/xds/xds_certificate_provider.h +35 -3
- data/src/core/ext/xds/xds_channel_args.h +1 -1
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +27 -21
- data/src/core/ext/xds/xds_channel_stack_modifier.h +18 -5
- data/src/core/ext/xds/xds_client.cc +1287 -2038
- data/src/core/ext/xds/xds_client.h +162 -198
- data/src/core/ext/xds/xds_client_grpc.cc +236 -0
- data/src/core/ext/xds/xds_client_grpc.h +79 -0
- data/src/core/ext/xds/xds_client_stats.cc +35 -36
- data/src/core/ext/xds/xds_client_stats.h +27 -25
- data/src/core/ext/xds/xds_cluster.cc +707 -0
- data/src/core/ext/xds/xds_cluster.h +137 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +132 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +97 -0
- data/src/core/ext/xds/xds_common_types.cc +502 -0
- data/src/core/ext/xds/xds_common_types.h +108 -0
- data/src/core/ext/xds/xds_endpoint.cc +474 -0
- data/src/core/ext/xds/xds_endpoint.h +139 -0
- data/src/core/ext/xds/xds_health_status.cc +80 -0
- data/src/core/ext/xds/xds_health_status.h +82 -0
- data/src/core/ext/xds/xds_http_fault_filter.cc +68 -59
- data/src/core/ext/xds/xds_http_fault_filter.h +18 -24
- data/src/core/ext/xds/xds_http_filters.cc +71 -66
- data/src/core/ext/xds/xds_http_filters.h +72 -24
- data/src/core/ext/xds/xds_http_rbac_filter.cc +506 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +58 -0
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +218 -0
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +58 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +239 -0
- data/src/core/ext/xds/xds_lb_policy_registry.h +71 -0
- data/src/core/ext/xds/xds_listener.cc +1130 -0
- data/src/core/ext/xds/xds_listener.h +226 -0
- data/src/core/ext/xds/xds_resource_type.h +104 -0
- data/src/core/ext/xds/xds_resource_type_impl.h +88 -0
- data/src/core/ext/xds/xds_route_config.cc +1138 -0
- data/src/core/ext/xds/xds_route_config.h +252 -0
- data/src/core/ext/xds/xds_routing.cc +264 -0
- data/src/core/ext/xds/xds_routing.h +106 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +1143 -324
- data/src/core/ext/xds/xds_transport.h +86 -0
- data/src/core/ext/xds/xds_transport_grpc.cc +356 -0
- data/src/core/ext/xds/xds_transport_grpc.h +135 -0
- data/src/core/lib/address_utils/parse_address.cc +55 -35
- data/src/core/lib/address_utils/parse_address.h +43 -34
- data/src/core/lib/address_utils/sockaddr_utils.cc +111 -79
- data/src/core/lib/address_utils/sockaddr_utils.h +42 -52
- data/src/core/lib/avl/avl.h +476 -88
- data/src/core/lib/backoff/backoff.cc +26 -57
- data/src/core/lib/backoff/backoff.h +30 -30
- data/src/core/lib/channel/call_finalization.h +88 -0
- data/src/core/lib/channel/call_tracer.h +24 -6
- data/src/core/lib/channel/channel_args.cc +293 -68
- data/src/core/lib/channel/channel_args.h +454 -52
- data/src/core/lib/channel/channel_args_preconditioning.cc +43 -0
- data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
- data/src/core/lib/channel/channel_fwd.h +26 -0
- data/src/core/lib/channel/channel_stack.cc +102 -54
- data/src/core/lib/channel/channel_stack.h +208 -126
- data/src/core/lib/channel/channel_stack_builder.cc +35 -297
- data/src/core/lib/channel/channel_stack_builder.h +112 -150
- data/src/core/lib/channel/channel_stack_builder_impl.cc +113 -0
- data/src/core/lib/channel/channel_stack_builder_impl.h +48 -0
- data/src/core/lib/channel/channel_trace.cc +29 -39
- data/src/core/lib/channel/channel_trace.h +24 -21
- data/src/core/lib/channel/channelz.cc +52 -66
- data/src/core/lib/channel/channelz.h +47 -30
- data/src/core/lib/channel/channelz_registry.cc +28 -36
- data/src/core/lib/channel/channelz_registry.h +28 -27
- data/src/core/lib/channel/connected_channel.cc +740 -75
- data/src/core/lib/channel/connected_channel.h +21 -22
- data/src/core/lib/channel/context.h +29 -18
- data/src/core/lib/channel/promise_based_filter.cc +2249 -0
- data/src/core/lib/channel/promise_based_filter.h +857 -0
- data/src/core/lib/channel/status_util.cc +64 -17
- data/src/core/lib/channel/status_util.h +35 -21
- data/src/core/lib/compression/compression.cc +44 -131
- data/src/core/lib/compression/compression_internal.cc +189 -230
- data/src/core/lib/compression/compression_internal.h +87 -91
- data/src/core/lib/compression/message_compress.cc +39 -37
- data/src/core/lib/compression/message_compress.h +28 -29
- data/src/core/lib/config/core_configuration.cc +18 -3
- data/src/core/lib/config/core_configuration.h +134 -37
- data/src/core/lib/debug/event_log.cc +88 -0
- data/src/core/lib/debug/event_log.h +81 -0
- data/src/core/lib/debug/histogram_view.cc +69 -0
- data/src/core/lib/debug/histogram_view.h +37 -0
- data/src/core/lib/debug/stats.cc +48 -152
- data/src/core/lib/debug/stats.h +47 -54
- data/src/core/lib/debug/stats_data.cc +290 -638
- data/src/core/lib/debug/stats_data.h +263 -527
- data/src/core/lib/debug/trace.cc +18 -20
- data/src/core/lib/debug/trace.h +34 -33
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +40 -0
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +49 -0
- data/src/core/lib/event_engine/common_closures.h +71 -0
- data/src/core/lib/event_engine/default_event_engine.cc +94 -0
- data/src/core/lib/event_engine/default_event_engine.h +49 -0
- data/src/core/lib/event_engine/default_event_engine_factory.cc +48 -0
- data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
- data/src/core/lib/event_engine/executor/executor.h +38 -0
- data/src/core/lib/event_engine/forkable.cc +101 -0
- data/src/core/lib/event_engine/forkable.h +61 -0
- data/src/core/lib/event_engine/handle_containers.h +67 -0
- data/src/core/lib/event_engine/memory_allocator.cc +74 -0
- data/src/core/lib/event_engine/poller.h +62 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +614 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +129 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +900 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +97 -0
- data/src/core/lib/event_engine/posix_engine/event_poller.h +111 -0
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +74 -0
- data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +33 -0
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +77 -0
- data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +179 -0
- data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +265 -0
- data/src/core/lib/event_engine/posix_engine/lockfree_event.h +73 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1308 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +684 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +570 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +245 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +80 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +236 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +228 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +380 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +91 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +853 -0
- data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +316 -0
- data/src/core/lib/event_engine/posix_engine/timer.cc +311 -0
- data/src/core/lib/event_engine/posix_engine/timer.h +194 -0
- data/src/core/lib/event_engine/posix_engine/timer_heap.cc +107 -0
- data/src/core/lib/event_engine/posix_engine/timer_heap.h +56 -0
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +173 -0
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +114 -0
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +332 -0
- data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +185 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +127 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +45 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +150 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +45 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +76 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +67 -0
- data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +37 -0
- data/src/core/lib/event_engine/resolved_address.cc +41 -0
- data/src/core/lib/event_engine/slice.cc +103 -0
- data/src/core/lib/event_engine/slice_buffer.cc +50 -0
- data/src/core/lib/event_engine/socket_notifier.h +55 -0
- data/src/core/lib/event_engine/tcp_socket_utils.cc +373 -0
- data/src/core/lib/event_engine/tcp_socket_utils.h +85 -0
- data/src/core/lib/event_engine/thread_pool.cc +277 -0
- data/src/core/lib/event_engine/thread_pool.h +137 -0
- data/src/core/lib/event_engine/time_util.cc +30 -0
- data/src/core/lib/event_engine/time_util.h +32 -0
- data/src/core/lib/event_engine/trace.cc +18 -0
- data/src/core/lib/event_engine/trace.h +30 -0
- data/src/core/lib/event_engine/utils.cc +44 -0
- data/src/core/lib/event_engine/utils.h +36 -0
- data/src/core/lib/event_engine/windows/iocp.cc +156 -0
- data/src/core/lib/event_engine/windows/iocp.h +69 -0
- data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
- data/src/core/lib/event_engine/windows/win_socket.h +120 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +165 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +124 -0
- data/src/core/lib/experiments/config.cc +146 -0
- data/src/core/lib/experiments/config.h +43 -0
- data/src/core/lib/experiments/experiments.cc +75 -0
- data/src/core/lib/experiments/experiments.h +58 -0
- data/src/core/lib/gpr/alloc.cc +19 -25
- data/src/core/lib/gpr/alloc.h +18 -18
- data/src/core/lib/gpr/atm.cc +17 -17
- data/src/core/lib/gpr/cpu_iphone.cc +24 -24
- data/src/core/lib/gpr/cpu_linux.cc +28 -23
- data/src/core/lib/gpr/cpu_posix.cc +23 -22
- data/src/core/lib/gpr/cpu_windows.cc +20 -18
- data/src/core/lib/gpr/log.cc +30 -17
- data/src/core/lib/gpr/log_android.cc +22 -20
- data/src/core/lib/gpr/log_linux.cc +24 -24
- data/src/core/lib/gpr/log_posix.cc +20 -19
- data/src/core/lib/gpr/log_windows.cc +25 -25
- data/src/core/lib/gpr/spinlock.h +18 -18
- data/src/core/lib/gpr/string.cc +25 -24
- data/src/core/lib/gpr/string.h +58 -58
- data/src/core/lib/gpr/string_posix.cc +24 -24
- data/src/core/lib/gpr/string_util_windows.cc +25 -52
- data/src/core/lib/gpr/string_windows.cc +24 -24
- data/src/core/lib/gpr/sync.cc +25 -25
- data/src/core/lib/gpr/sync_abseil.cc +21 -33
- data/src/core/lib/gpr/sync_posix.cc +23 -34
- data/src/core/lib/gpr/sync_windows.cc +29 -27
- data/src/core/lib/gpr/time.cc +36 -31
- data/src/core/lib/gpr/time_posix.cc +41 -45
- data/src/core/lib/gpr/time_precise.cc +22 -22
- data/src/core/lib/gpr/time_precise.h +19 -20
- data/src/core/lib/gpr/time_windows.cc +35 -29
- data/src/core/lib/gpr/tmpfile.h +22 -22
- data/src/core/lib/gpr/tmpfile_msys.cc +21 -20
- data/src/core/lib/gpr/tmpfile_posix.cc +22 -20
- data/src/core/lib/gpr/tmpfile_windows.cc +28 -29
- data/src/core/lib/gpr/useful.h +98 -27
- data/src/core/lib/gpr/wrap_memcpy.cc +23 -23
- data/src/core/lib/gprpp/atomic_utils.h +18 -18
- data/src/core/lib/gprpp/bitset.h +51 -14
- data/src/core/lib/gprpp/chunked_vector.h +49 -3
- data/src/core/lib/gprpp/construct_destruct.h +1 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +49 -0
- data/src/core/lib/gprpp/crash.cc +33 -0
- data/src/core/lib/gprpp/crash.h +34 -0
- data/src/core/lib/gprpp/debug_location.h +59 -25
- data/src/core/lib/gprpp/dual_ref_counted.h +2 -5
- data/src/core/lib/gprpp/env.h +53 -0
- data/src/core/lib/gprpp/env_linux.cc +80 -0
- data/src/core/lib/gprpp/env_posix.cc +47 -0
- data/src/core/lib/gprpp/env_windows.cc +56 -0
- data/src/core/lib/gprpp/examine_stack.cc +17 -17
- data/src/core/lib/gprpp/examine_stack.h +18 -19
- data/src/core/lib/gprpp/fork.cc +37 -49
- data/src/core/lib/gprpp/fork.h +22 -30
- data/src/core/lib/gprpp/global_config.h +20 -22
- data/src/core/lib/gprpp/global_config_custom.h +18 -18
- data/src/core/lib/gprpp/global_config_env.cc +33 -31
- data/src/core/lib/gprpp/global_config_env.h +28 -26
- data/src/core/lib/gprpp/global_config_generic.h +18 -22
- data/src/core/lib/gprpp/host_port.cc +28 -26
- data/src/core/lib/gprpp/host_port.h +29 -28
- data/src/core/lib/gprpp/load_file.cc +75 -0
- data/src/core/lib/gprpp/load_file.h +33 -0
- data/src/core/lib/gprpp/manual_constructor.h +17 -86
- data/src/core/lib/gprpp/match.h +2 -0
- data/src/core/lib/gprpp/memory.h +19 -23
- data/src/core/lib/gprpp/mpscq.cc +17 -17
- data/src/core/lib/gprpp/mpscq.h +18 -18
- data/src/core/lib/gprpp/no_destruct.h +95 -0
- data/src/core/lib/gprpp/notification.h +67 -0
- data/src/core/lib/gprpp/orphanable.h +20 -23
- data/src/core/lib/gprpp/packed_table.h +40 -0
- data/src/core/lib/gprpp/per_cpu.h +46 -0
- data/src/core/lib/gprpp/ref_counted.h +22 -22
- data/src/core/lib/gprpp/ref_counted_ptr.h +41 -56
- data/src/core/lib/gprpp/single_set_ptr.h +87 -0
- data/src/core/lib/gprpp/sorted_pack.h +98 -0
- data/src/core/lib/gprpp/stat.h +0 -2
- data/src/core/lib/gprpp/stat_posix.cc +10 -4
- data/src/core/lib/gprpp/stat_windows.cc +4 -2
- data/src/core/lib/gprpp/status_helper.cc +79 -51
- data/src/core/lib/gprpp/status_helper.h +16 -21
- data/src/core/lib/gprpp/strerror.cc +41 -0
- data/src/core/lib/gprpp/strerror.h +29 -0
- data/src/core/lib/gprpp/sync.h +23 -21
- data/src/core/lib/gprpp/table.h +43 -2
- data/src/core/lib/gprpp/tchar.cc +49 -0
- data/src/core/lib/gprpp/tchar.h +33 -0
- data/src/core/lib/gprpp/thd.h +21 -24
- data/src/core/lib/gprpp/thd_posix.cc +33 -32
- data/src/core/lib/gprpp/thd_windows.cc +28 -26
- data/src/core/lib/gprpp/time.cc +240 -0
- data/src/core/lib/gprpp/time.h +366 -0
- data/src/core/lib/gprpp/time_averaged_stats.cc +60 -0
- data/src/core/lib/gprpp/time_averaged_stats.h +79 -0
- data/src/core/lib/gprpp/time_util.cc +4 -0
- data/src/core/lib/gprpp/unique_type_name.h +104 -0
- data/src/core/lib/gprpp/validation_errors.cc +61 -0
- data/src/core/lib/gprpp/validation_errors.h +127 -0
- data/src/core/lib/gprpp/work_serializer.cc +247 -0
- data/src/core/lib/gprpp/work_serializer.h +86 -0
- data/src/core/lib/handshaker/proxy_mapper.h +53 -0
- data/src/core/lib/handshaker/proxy_mapper_registry.cc +71 -0
- data/src/core/lib/handshaker/proxy_mapper_registry.h +75 -0
- data/src/core/lib/http/format_request.cc +80 -47
- data/src/core/lib/http/format_request.h +28 -25
- data/src/core/lib/http/httpcli.cc +330 -261
- data/src/core/lib/http/httpcli.h +254 -111
- data/src/core/lib/http/httpcli_security_connector.cc +101 -104
- data/src/core/lib/http/httpcli_ssl_credentials.h +39 -0
- data/src/core/lib/http/parser.cc +144 -85
- data/src/core/lib/http/parser.h +48 -32
- data/src/core/lib/iomgr/block_annotate.h +21 -21
- data/src/core/lib/iomgr/buffer_list.cc +161 -141
- data/src/core/lib/iomgr/buffer_list.h +126 -104
- data/src/core/lib/iomgr/call_combiner.cc +35 -57
- data/src/core/lib/iomgr/call_combiner.h +21 -22
- data/src/core/lib/iomgr/cfstream_handle.cc +33 -36
- data/src/core/lib/iomgr/cfstream_handle.h +22 -22
- data/src/core/lib/iomgr/closure.h +106 -51
- data/src/core/lib/iomgr/combiner.cc +29 -26
- data/src/core/lib/iomgr/combiner.h +18 -18
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +21 -21
- data/src/core/lib/iomgr/dynamic_annotations.h +20 -20
- data/src/core/lib/iomgr/endpoint.cc +21 -21
- data/src/core/lib/iomgr/endpoint.h +50 -49
- data/src/core/lib/iomgr/endpoint_cfstream.cc +58 -71
- data/src/core/lib/iomgr/endpoint_cfstream.h +31 -31
- data/src/core/lib/iomgr/endpoint_pair.h +18 -18
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +33 -28
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +23 -31
- data/src/core/lib/iomgr/error.cc +52 -832
- data/src/core/lib/iomgr/error.h +42 -316
- data/src/core/lib/iomgr/error_cfstream.cc +18 -23
- data/src/core/lib/iomgr/error_cfstream.h +19 -19
- data/src/core/lib/iomgr/ev_apple.cc +27 -26
- data/src/core/lib/iomgr/ev_apple.h +17 -17
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +270 -254
- data/src/core/lib/iomgr/ev_epoll1_linux.h +19 -19
- data/src/core/lib/iomgr/ev_poll_posix.cc +302 -277
- data/src/core/lib/iomgr/ev_poll_posix.h +20 -20
- data/src/core/lib/iomgr/ev_posix.cc +91 -125
- data/src/core/lib/iomgr/ev_posix.h +91 -85
- data/src/core/lib/iomgr/ev_windows.cc +18 -18
- data/src/core/lib/iomgr/exec_ctx.cc +45 -139
- data/src/core/lib/iomgr/exec_ctx.h +156 -197
- data/src/core/lib/iomgr/executor.cc +36 -40
- data/src/core/lib/iomgr/executor.h +25 -28
- data/src/core/lib/iomgr/fork_posix.cc +25 -22
- data/src/core/lib/iomgr/fork_windows.cc +21 -21
- data/src/core/lib/iomgr/gethostname.h +18 -18
- data/src/core/lib/iomgr/gethostname_fallback.cc +17 -17
- data/src/core/lib/iomgr/gethostname_host_name_max.cc +17 -17
- data/src/core/lib/iomgr/gethostname_sysconf.cc +17 -17
- data/src/core/lib/iomgr/grpc_if_nametoindex.h +20 -20
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +20 -19
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +20 -19
- data/src/core/lib/iomgr/internal_errqueue.cc +41 -48
- data/src/core/lib/iomgr/internal_errqueue.h +81 -86
- data/src/core/lib/iomgr/iocp_windows.cc +31 -31
- data/src/core/lib/iomgr/iocp_windows.h +19 -19
- data/src/core/lib/iomgr/iomgr.cc +25 -20
- data/src/core/lib/iomgr/iomgr.h +32 -32
- data/src/core/lib/iomgr/iomgr_fwd.h +26 -0
- data/src/core/lib/iomgr/iomgr_internal.cc +17 -17
- data/src/core/lib/iomgr/iomgr_internal.h +25 -25
- data/src/core/lib/iomgr/iomgr_posix.cc +22 -21
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +22 -20
- data/src/core/lib/iomgr/iomgr_windows.cc +25 -23
- data/src/core/lib/iomgr/load_file.cc +24 -27
- data/src/core/lib/iomgr/load_file.h +20 -20
- data/src/core/lib/iomgr/lockfree_event.cc +114 -131
- data/src/core/lib/iomgr/lockfree_event.h +19 -19
- data/src/core/lib/iomgr/nameser.h +84 -84
- data/src/core/lib/iomgr/polling_entity.cc +25 -21
- data/src/core/lib/iomgr/polling_entity.h +33 -27
- data/src/core/lib/iomgr/pollset.cc +18 -18
- data/src/core/lib/iomgr/pollset.h +57 -57
- data/src/core/lib/iomgr/pollset_set.cc +17 -17
- data/src/core/lib/iomgr/pollset_set.h +23 -25
- data/src/core/lib/iomgr/pollset_set_windows.cc +18 -18
- data/src/core/lib/iomgr/pollset_set_windows.h +18 -18
- data/src/core/lib/iomgr/pollset_windows.cc +32 -31
- data/src/core/lib/iomgr/pollset_windows.h +22 -22
- data/src/core/lib/iomgr/port.h +57 -40
- data/src/core/lib/iomgr/python_util.h +20 -20
- data/src/core/lib/iomgr/resolve_address.cc +34 -39
- data/src/core/lib/iomgr/resolve_address.h +97 -64
- data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +133 -98
- data/src/core/lib/iomgr/resolve_address_posix.h +63 -0
- data/src/core/lib/iomgr/resolve_address_windows.cc +129 -84
- data/src/core/lib/iomgr/resolve_address_windows.h +63 -0
- data/src/core/lib/iomgr/resolved_address.h +39 -0
- data/src/core/lib/iomgr/sockaddr.h +23 -24
- data/src/core/lib/iomgr/sockaddr_posix.h +20 -18
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +64 -0
- data/src/core/lib/iomgr/sockaddr_windows.h +20 -18
- data/src/core/lib/iomgr/socket_factory_posix.cc +18 -18
- data/src/core/lib/iomgr/socket_factory_posix.h +30 -30
- data/src/core/lib/iomgr/socket_mutator.cc +19 -18
- data/src/core/lib/iomgr/socket_mutator.h +37 -37
- data/src/core/lib/iomgr/socket_utils.h +24 -24
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +82 -118
- data/src/core/lib/iomgr/socket_utils_linux.cc +18 -17
- data/src/core/lib/iomgr/socket_utils_posix.cc +103 -19
- data/src/core/lib/iomgr/socket_utils_posix.h +173 -81
- data/src/core/lib/iomgr/socket_utils_windows.cc +20 -19
- data/src/core/lib/iomgr/socket_windows.cc +37 -36
- data/src/core/lib/iomgr/socket_windows.h +56 -58
- data/src/core/lib/iomgr/systemd_utils.cc +116 -0
- data/src/core/lib/iomgr/systemd_utils.h +33 -0
- data/src/core/lib/iomgr/tcp_client.cc +28 -26
- data/src/core/lib/iomgr/tcp_client.h +47 -37
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +47 -44
- data/src/core/lib/iomgr/tcp_client_posix.cc +233 -123
- data/src/core/lib/iomgr/tcp_client_posix.h +54 -52
- data/src/core/lib/iomgr/tcp_client_windows.cc +61 -62
- data/src/core/lib/iomgr/tcp_posix.cc +587 -374
- data/src/core/lib/iomgr/tcp_posix.h +31 -31
- data/src/core/lib/iomgr/tcp_server.cc +32 -25
- data/src/core/lib/iomgr/tcp_server.h +73 -66
- data/src/core/lib/iomgr/tcp_server_posix.cc +197 -159
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +73 -69
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +121 -82
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +47 -43
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +19 -19
- data/src/core/lib/iomgr/tcp_server_windows.cc +116 -123
- data/src/core/lib/iomgr/tcp_windows.cc +125 -105
- data/src/core/lib/iomgr/tcp_windows.h +30 -32
- data/src/core/lib/iomgr/timer.cc +19 -19
- data/src/core/lib/iomgr/timer.h +75 -70
- data/src/core/lib/iomgr/timer_generic.cc +214 -204
- data/src/core/lib/iomgr/timer_generic.h +19 -19
- data/src/core/lib/iomgr/timer_heap.cc +25 -25
- data/src/core/lib/iomgr/timer_heap.h +19 -19
- data/src/core/lib/iomgr/timer_manager.cc +44 -43
- data/src/core/lib/iomgr/timer_manager.h +25 -25
- data/src/core/lib/iomgr/unix_sockets_posix.cc +38 -51
- data/src/core/lib/iomgr/unix_sockets_posix.h +22 -25
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +25 -32
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +23 -23
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +23 -23
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +29 -26
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +18 -18
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +33 -30
- data/src/core/lib/iomgr/wakeup_fd_posix.h +50 -52
- data/src/core/lib/json/json.h +20 -24
- data/src/core/lib/json/json_args.h +34 -0
- data/src/core/lib/json/json_channel_args.h +42 -0
- data/src/core/lib/json/json_object_loader.cc +217 -0
- data/src/core/lib/json/json_object_loader.h +634 -0
- data/src/core/lib/json/json_reader.cc +183 -103
- data/src/core/lib/json/json_util.cc +17 -37
- data/src/core/lib/json/json_util.h +18 -9
- data/src/core/lib/json/json_writer.cc +62 -57
- data/src/core/lib/load_balancing/lb_policy.cc +93 -0
- data/src/core/lib/load_balancing/lb_policy.h +438 -0
- data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +141 -0
- data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
- data/src/core/lib/load_balancing/subchannel_interface.h +133 -0
- data/src/core/lib/matchers/matchers.cc +12 -8
- data/src/core/lib/matchers/matchers.h +3 -1
- data/src/core/lib/promise/activity.cc +134 -0
- data/src/core/lib/promise/activity.h +612 -0
- data/src/core/lib/promise/arena_promise.h +231 -0
- data/src/core/lib/promise/context.h +93 -0
- data/src/core/lib/promise/detail/basic_seq.h +497 -0
- data/src/core/lib/promise/detail/promise_factory.h +236 -0
- data/src/core/lib/promise/detail/promise_like.h +85 -0
- data/src/core/lib/promise/detail/status.h +78 -0
- data/src/core/lib/promise/detail/switch.h +1455 -0
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +56 -0
- data/src/core/lib/promise/for_each.h +155 -0
- data/src/core/lib/promise/intra_activity_waiter.h +49 -0
- data/src/core/lib/promise/latch.h +97 -0
- data/src/core/lib/promise/loop.h +138 -0
- data/src/core/lib/promise/map.h +88 -0
- data/src/core/lib/promise/map_pipe.h +88 -0
- data/src/core/lib/promise/pipe.cc +19 -0
- data/src/core/lib/promise/pipe.h +505 -0
- data/src/core/lib/promise/poll.h +85 -0
- data/src/core/lib/promise/promise.h +96 -0
- data/src/core/lib/promise/race.h +83 -0
- data/src/core/lib/promise/seq.h +107 -0
- data/src/core/lib/promise/sleep.cc +90 -0
- data/src/core/lib/promise/sleep.h +84 -0
- data/src/core/lib/promise/try_concurrently.h +342 -0
- data/src/core/lib/promise/try_seq.h +175 -0
- data/src/core/lib/resolver/resolver.cc +37 -0
- data/src/core/lib/resolver/resolver.h +138 -0
- data/src/core/lib/resolver/resolver_factory.h +77 -0
- data/src/core/lib/resolver/resolver_registry.cc +149 -0
- data/src/core/lib/resolver/resolver_registry.h +123 -0
- data/src/core/lib/resolver/server_address.cc +181 -0
- data/src/core/lib/resolver/server_address.h +145 -0
- data/src/core/lib/resource_quota/api.cc +104 -0
- data/src/core/lib/resource_quota/api.h +49 -0
- data/src/core/lib/resource_quota/arena.cc +138 -0
- data/src/core/lib/resource_quota/arena.h +252 -0
- data/src/core/lib/resource_quota/memory_quota.cc +699 -0
- data/src/core/lib/resource_quota/memory_quota.h +592 -0
- data/src/core/lib/resource_quota/periodic_update.cc +78 -0
- data/src/core/lib/resource_quota/periodic_update.h +71 -0
- data/src/core/lib/resource_quota/resource_quota.cc +33 -0
- data/src/core/lib/resource_quota/resource_quota.h +74 -0
- data/src/core/lib/resource_quota/thread_quota.cc +45 -0
- data/src/core/lib/resource_quota/thread_quota.h +61 -0
- data/src/core/lib/resource_quota/trace.cc +19 -0
- data/src/core/lib/resource_quota/trace.h +24 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +14 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +3 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +53 -45
- data/src/core/lib/security/authorization/evaluate_args.h +9 -5
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +64 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +69 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +122 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +61 -0
- data/src/core/lib/security/authorization/matchers.cc +241 -0
- data/src/core/lib/security/authorization/matchers.h +218 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +445 -0
- data/src/core/lib/security/authorization/rbac_policy.h +178 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +66 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +60 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +70 -0
- data/src/core/lib/security/context/security_context.cc +31 -27
- data/src/core/lib/security/context/security_context.h +62 -33
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +35 -27
- data/src/core/lib/security/credentials/alts/alts_credentials.h +68 -54
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +19 -19
- data/src/core/lib/security/credentials/alts/check_gcp_environment.h +41 -41
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +17 -17
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +18 -17
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +18 -17
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +20 -22
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +18 -18
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +36 -37
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +19 -22
- data/src/core/lib/security/credentials/call_creds_util.cc +97 -0
- data/src/core/lib/security/credentials/call_creds_util.h +43 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +103 -0
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +80 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +52 -111
- data/src/core/lib/security/credentials/composite/composite_credentials.h +62 -37
- data/src/core/lib/security/credentials/credentials.cc +25 -29
- data/src/core/lib/security/credentials/credentials.h +138 -130
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +249 -107
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +19 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +13 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +137 -103
- data/src/core/lib/security/credentials/external/external_account_credentials.h +16 -9
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +29 -27
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +6 -0
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +76 -45
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +11 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +62 -62
- data/src/core/lib/security/credentials/fake/fake_credentials.h +68 -60
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +23 -25
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +165 -128
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +38 -26
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +49 -47
- data/src/core/lib/security/credentials/iam/iam_credentials.h +43 -27
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +35 -26
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +61 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +44 -35
- data/src/core/lib/security/credentials/jwt/json_token.h +33 -33
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +63 -72
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +47 -30
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +166 -131
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +48 -46
- data/src/core/lib/security/credentials/local/local_credentials.cc +36 -30
- data/src/core/lib/security/credentials/local/local_credentials.h +39 -23
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +237 -246
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +99 -52
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +122 -174
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +98 -45
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +49 -54
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +47 -24
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +22 -30
- 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 +75 -59
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +73 -14
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +241 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +168 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +55 -110
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +73 -149
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +76 -60
- data/src/core/lib/security/credentials/tls/tls_credentials.h +31 -22
- data/src/core/lib/security/credentials/tls/tls_utils.cc +5 -1
- data/src/core/lib/security/credentials/tls/tls_utils.h +1 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +80 -89
- data/src/core/lib/security/credentials/xds/xds_credentials.h +54 -9
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +71 -71
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +50 -48
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +81 -95
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +23 -26
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +23 -24
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +35 -29
- data/src/core/lib/security/security_connector/load_system_roots.h +18 -18
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +22 -20
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +175 -0
- data/src/core/lib/security/security_connector/load_system_roots_supported.h +45 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +75 -63
- data/src/core/lib/security/security_connector/local/local_security_connector.h +47 -44
- data/src/core/lib/security/security_connector/security_connector.cc +39 -49
- data/src/core/lib/security/security_connector/security_connector.h +79 -62
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +64 -59
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +42 -41
- data/src/core/lib/security/security_connector/ssl_utils.cc +85 -71
- data/src/core/lib/security/security_connector/ssl_utils.h +53 -54
- data/src/core/lib/security/security_connector/ssl_utils_config.cc +22 -22
- data/src/core/lib/security/security_connector/ssl_utils_config.h +19 -20
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +412 -251
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +114 -71
- data/src/core/lib/security/transport/auth_filters.h +63 -23
- data/src/core/lib/security/transport/client_auth_filter.cc +142 -388
- data/src/core/lib/security/transport/secure_endpoint.cc +305 -181
- data/src/core/lib/security/transport/secure_endpoint.h +26 -25
- data/src/core/lib/security/transport/security_handshaker.cc +140 -109
- data/src/core/lib/security/transport/security_handshaker.h +25 -20
- data/src/core/lib/security/transport/server_auth_filter.cc +107 -79
- data/src/core/lib/security/transport/tsi_error.cc +23 -20
- data/src/core/lib/security/transport/tsi_error.h +18 -18
- data/src/core/lib/security/util/json_util.cc +24 -24
- data/src/core/lib/security/util/json_util.h +18 -20
- data/src/core/lib/service_config/service_config.h +89 -0
- data/src/core/lib/service_config/service_config_call_data.h +82 -0
- data/src/core/lib/service_config/service_config_impl.cc +191 -0
- data/src/core/lib/service_config/service_config_impl.h +125 -0
- data/src/core/lib/service_config/service_config_parser.cc +81 -0
- data/src/core/lib/service_config/service_config_parser.h +105 -0
- data/src/core/lib/slice/b64.cc +26 -26
- data/src/core/lib/slice/b64.h +31 -29
- data/src/core/lib/slice/percent_encoding.cc +52 -114
- data/src/core/lib/slice/percent_encoding.h +28 -40
- data/src/core/lib/slice/slice.cc +130 -220
- data/src/core/lib/slice/slice.h +435 -0
- data/src/core/lib/slice/slice_buffer.cc +139 -75
- data/src/core/lib/slice/slice_buffer.h +162 -0
- data/src/core/lib/slice/slice_internal.h +40 -66
- data/src/core/lib/slice/slice_refcount.h +32 -93
- data/src/core/lib/slice/slice_string_helpers.cc +17 -33
- data/src/core/lib/slice/slice_string_helpers.h +20 -27
- data/src/core/lib/surface/api_trace.cc +17 -17
- data/src/core/lib/surface/api_trace.h +22 -22
- data/src/core/lib/surface/builtins.cc +11 -6
- data/src/core/lib/surface/byte_buffer.cc +26 -21
- data/src/core/lib/surface/byte_buffer_reader.cc +24 -24
- data/src/core/lib/surface/call.cc +2475 -1429
- data/src/core/lib/surface/call.h +109 -58
- data/src/core/lib/surface/call_details.cc +22 -23
- data/src/core/lib/surface/call_log_batch.cc +24 -18
- data/src/core/lib/surface/call_test_only.h +31 -28
- data/src/core/lib/surface/call_trace.cc +113 -0
- data/src/core/lib/surface/call_trace.h +30 -0
- data/src/core/lib/surface/channel.cc +247 -345
- data/src/core/lib/surface/channel.h +140 -104
- data/src/core/lib/surface/channel_init.cc +19 -20
- data/src/core/lib/surface/channel_init.h +22 -24
- data/src/core/lib/surface/channel_ping.cc +26 -20
- data/src/core/lib/surface/channel_stack_type.cc +21 -19
- data/src/core/lib/surface/channel_stack_type.h +20 -20
- data/src/core/lib/surface/completion_queue.cc +209 -231
- data/src/core/lib/surface/completion_queue.h +38 -36
- data/src/core/lib/surface/completion_queue_factory.cc +34 -28
- data/src/core/lib/surface/completion_queue_factory.h +19 -21
- data/src/core/lib/surface/event_string.cc +18 -24
- data/src/core/lib/surface/event_string.h +19 -19
- data/src/core/lib/surface/init.cc +106 -95
- data/src/core/lib/surface/init.h +18 -28
- data/src/core/lib/surface/init_internally.cc +25 -0
- data/src/core/lib/surface/init_internally.h +37 -0
- data/src/core/lib/surface/lame_client.cc +86 -124
- data/src/core/lib/surface/lame_client.h +59 -21
- data/src/core/lib/surface/metadata_array.cc +18 -17
- data/src/core/lib/surface/server.cc +165 -218
- data/src/core/lib/surface/server.h +64 -37
- data/src/core/lib/surface/validate_metadata.cc +34 -48
- data/src/core/lib/surface/validate_metadata.h +21 -18
- data/src/core/lib/surface/version.cc +21 -21
- data/src/core/lib/transport/bdp_estimator.cc +28 -29
- data/src/core/lib/transport/bdp_estimator.h +21 -23
- data/src/core/lib/transport/connectivity_state.cc +24 -23
- data/src/core/lib/transport/connectivity_state.h +21 -22
- data/src/core/lib/transport/error_utils.cc +62 -82
- data/src/core/lib/transport/error_utils.h +28 -23
- data/src/core/lib/transport/handshaker.cc +228 -0
- data/src/core/lib/transport/handshaker.h +172 -0
- data/src/core/lib/transport/handshaker_factory.h +74 -0
- data/src/core/lib/transport/handshaker_registry.cc +61 -0
- data/src/core/lib/transport/handshaker_registry.h +69 -0
- data/src/core/lib/transport/http2_errors.h +20 -20
- data/src/core/lib/transport/http_connect_handshaker.cc +400 -0
- data/src/core/lib/transport/http_connect_handshaker.h +42 -0
- data/src/core/lib/transport/metadata_batch.cc +269 -69
- data/src/core/lib/transport/metadata_batch.h +1136 -855
- data/src/core/lib/transport/parsed_metadata.cc +35 -0
- data/src/core/lib/transport/parsed_metadata.h +239 -92
- data/src/core/lib/transport/pid_controller.cc +24 -24
- data/src/core/lib/transport/pid_controller.h +24 -24
- data/src/core/lib/transport/status_conversion.cc +25 -25
- data/src/core/lib/transport/status_conversion.h +23 -23
- data/src/core/lib/transport/tcp_connect_handshaker.cc +246 -0
- data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
- data/src/core/lib/transport/timeout_encoding.cc +225 -92
- data/src/core/lib/transport/timeout_encoding.h +62 -28
- data/src/core/lib/transport/transport.cc +107 -82
- data/src/core/lib/transport/transport.h +271 -150
- data/src/core/lib/transport/transport_fwd.h +20 -0
- data/src/core/lib/transport/transport_impl.h +56 -32
- data/src/core/lib/transport/transport_op_string.cc +43 -85
- data/src/core/lib/uri/uri_parser.cc +248 -66
- data/src/core/lib/uri/uri_parser.h +39 -25
- data/src/core/plugin_registry/grpc_plugin_registry.cc +75 -157
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +66 -0
- data/src/core/tsi/alts/crypt/aes_gcm.cc +20 -20
- data/src/core/tsi/alts/crypt/gsec.cc +26 -26
- data/src/core/tsi/alts/crypt/gsec.h +334 -334
- data/src/core/tsi/alts/frame_protector/alts_counter.cc +23 -23
- data/src/core/tsi/alts/frame_protector/alts_counter.h +66 -66
- data/src/core/tsi/alts/frame_protector/alts_crypter.cc +19 -19
- data/src/core/tsi/alts/frame_protector/alts_crypter.h +206 -206
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +72 -71
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +38 -38
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +18 -18
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +80 -81
- data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +22 -22
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +22 -22
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +26 -25
- data/src/core/tsi/alts/frame_protector/frame_handler.h +166 -166
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +143 -118
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +101 -101
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +27 -18
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +41 -42
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +72 -56
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +58 -58
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +21 -21
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +23 -22
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +37 -37
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +21 -21
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +104 -103
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +45 -44
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +38 -39
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +38 -36
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +33 -34
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +65 -66
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +32 -31
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +53 -54
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +54 -53
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +138 -139
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +67 -58
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +41 -42
- data/src/core/tsi/fake_transport_security.cc +146 -110
- data/src/core/tsi/fake_transport_security.h +33 -27
- data/src/core/tsi/local_transport_security.cc +58 -61
- data/src/core/tsi/local_transport_security.h +32 -35
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +146 -0
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
- data/src/core/tsi/ssl/session_cache/ssl_session.h +21 -21
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +21 -19
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +18 -17
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +31 -24
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +27 -20
- data/src/core/tsi/ssl_transport_security.cc +383 -386
- data/src/core/tsi/ssl_transport_security.h +231 -191
- data/src/core/tsi/ssl_transport_security_utils.cc +250 -0
- data/src/core/tsi/ssl_transport_security_utils.h +147 -0
- data/src/core/tsi/ssl_types.h +25 -25
- data/src/core/tsi/transport_security.cc +44 -32
- data/src/core/tsi/transport_security.h +47 -46
- data/src/core/tsi/transport_security_grpc.cc +23 -22
- data/src/core/tsi/transport_security_grpc.h +42 -39
- data/src/core/tsi/transport_security_interface.h +343 -329
- data/src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.gcc +1 -1
- data/src/ruby/ext/grpc/extconf.rb +107 -22
- data/src/ruby/ext/grpc/rb_call.c +1 -0
- data/src/ruby/ext/grpc/rb_channel.c +6 -2
- data/src/ruby/ext/grpc/rb_channel_args.c +1 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +64 -72
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +99 -111
- data/src/ruby/ext/grpc/rb_loader.c +6 -2
- data/src/ruby/ext/grpc/rb_server.c +7 -4
- data/src/ruby/lib/grpc/errors.rb +1 -1
- data/src/ruby/lib/grpc/generic/active_call.rb +7 -1
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
- 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/src/proto/grpc/testing/messages_pb.rb +4 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -1
- 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/src/ruby/spec/channel_spec.rb +5 -43
- data/src/ruby/spec/client_server_spec.rb +20 -8
- data/src/ruby/spec/generic/active_call_spec.rb +12 -3
- data/src/ruby/spec/generic/client_stub_spec.rb +23 -23
- data/src/ruby/spec/generic/server_interceptors_spec.rb +1 -1
- data/src/ruby/spec/user_agent_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +102 -92
- data/third_party/abseil-cpp/absl/base/attributes.h +112 -52
- data/third_party/abseil-cpp/absl/base/casts.h +61 -68
- data/third_party/abseil-cpp/absl/base/config.h +245 -74
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +1 -26
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +67 -2
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +3 -3
- data/third_party/abseil-cpp/absl/base/internal/endian.h +17 -62
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +50 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +54 -0
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +29 -22
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +13 -12
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +11 -1
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +2 -0
- data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
- data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +68 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +2 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -4
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +22 -7
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +15 -6
- data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
- data/third_party/abseil-cpp/absl/base/log_severity.h +51 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +19 -11
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +2 -2
- 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/fixed_array.h +2 -5
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +11 -4
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +510 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +118 -99
- data/third_party/abseil-cpp/absl/container/internal/common.h +6 -5
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +10 -28
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +77 -113
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +62 -85
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +417 -431
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +18 -8
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +724 -262
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -88
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +11 -1
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +16 -11
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +7 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +13 -5
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +8 -3
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +236 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +33 -10
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +8 -2
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +35 -4
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +7 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +60 -7
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
- data/third_party/abseil-cpp/absl/functional/bind_front.h +10 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +6 -2
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
- data/third_party/abseil-cpp/absl/hash/hash.h +104 -8
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +15 -16
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +297 -51
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +123 -0
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +50 -0
- data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
- data/third_party/abseil-cpp/absl/meta/type_traits.h +32 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +2 -1
- data/third_party/abseil-cpp/absl/numeric/int128.cc +7 -12
- data/third_party/abseil-cpp/absl/numeric/int128.h +148 -75
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +93 -0
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.h +130 -0
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +245 -0
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
- data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +95 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +269 -0
- data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +161 -0
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
- data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.h +96 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +225 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +264 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +165 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
- data/third_party/abseil-cpp/absl/random/internal/traits.h +149 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +96 -0
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +256 -0
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +261 -0
- data/third_party/abseil-cpp/absl/random/random.h +189 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +111 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +272 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +22 -5
- data/third_party/abseil-cpp/absl/status/status.cc +183 -19
- data/third_party/abseil-cpp/absl/status/status.h +41 -27
- data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +40 -24
- data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
- data/third_party/abseil-cpp/absl/strings/charconv.cc +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +469 -1094
- data/third_party/abseil-cpp/absl/strings/cord.h +392 -144
- data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
- data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +572 -0
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +23 -29
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +208 -96
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1228 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +924 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +187 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +267 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +69 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +212 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +62 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +54 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +102 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +60 -19
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +48 -172
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +42 -24
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +4 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +418 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +88 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +123 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +6 -5
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +1 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +9 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +39 -8
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +10 -11
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +41 -20
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +62 -73
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +28 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -35
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +10 -2
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/numbers.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/numbers.h +60 -23
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/str_cat.h +20 -13
- data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
- data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
- data/third_party/abseil-cpp/absl/strings/str_split.h +1 -2
- data/third_party/abseil-cpp/absl/strings/string_view.cc +18 -34
- data/third_party/abseil-cpp/absl/strings/string_view.h +123 -41
- data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
- data/third_party/abseil-cpp/absl/strings/substitute.h +109 -76
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +9 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +0 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -6
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -26
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +10 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -40
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +20 -12
- data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -2
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
- data/third_party/abseil-cpp/absl/time/duration.cc +5 -4
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +11 -7
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
- data/third_party/abseil-cpp/absl/time/time.h +82 -47
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
- data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
- data/third_party/abseil-cpp/absl/types/internal/variant.h +3 -3
- data/third_party/abseil-cpp/absl/types/optional.h +17 -14
- data/third_party/abseil-cpp/absl/types/span.h +5 -4
- data/third_party/boringssl-with-bazel/err_data.c +681 -677
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +19 -11
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +41 -30
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +59 -47
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +28 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +48 -272
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +7 -7
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +18 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +29 -0
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +8 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +216 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +21 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +971 -253
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +0 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +13 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +8 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +29 -55
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +12 -13
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +6 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +24 -28
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +29 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +12 -43
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +4 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +4 -0
- data/third_party/cares/cares/include/ares.h +742 -0
- data/third_party/cares/cares/include/ares_dns.h +112 -0
- data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
- data/third_party/cares/cares/include/ares_version.h +24 -0
- data/third_party/cares/cares/src/lib/ares__close_sockets.c +61 -0
- data/third_party/cares/cares/src/lib/ares__get_hostent.c +260 -0
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
- data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
- data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_android.c +444 -0
- data/third_party/cares/cares/src/lib/ares_android.h +27 -0
- data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_create_query.c +197 -0
- data/third_party/cares/cares/src/lib/ares_data.c +240 -0
- data/third_party/cares/cares/src/lib/ares_data.h +74 -0
- data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_expand_name.c +300 -0
- data/third_party/cares/cares/src/lib/ares_expand_string.c +67 -0
- data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_free_hostent.c +43 -0
- data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
- data/third_party/cares/cares/src/lib/ares_getenv.c +28 -0
- data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
- data/third_party/cares/cares/src/lib/ares_gethostbyaddr.c +287 -0
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +534 -0
- data/third_party/cares/cares/src/lib/ares_getnameinfo.c +447 -0
- data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
- data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
- data/third_party/cares/cares/src/lib/ares_init.c +2654 -0
- data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
- data/third_party/cares/cares/src/lib/ares_ipv6.h +85 -0
- data/third_party/cares/cares/src/lib/ares_library_init.c +200 -0
- data/third_party/cares/cares/src/lib/ares_library_init.h +43 -0
- data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
- data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
- data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
- data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
- data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
- data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
- data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
- data/third_party/cares/cares/src/lib/ares_parse_mx_reply.c +164 -0
- data/third_party/cares/cares/src/lib/ares_parse_naptr_reply.c +183 -0
- data/third_party/cares/cares/src/lib/ares_parse_ns_reply.c +177 -0
- data/third_party/cares/cares/src/lib/ares_parse_ptr_reply.c +228 -0
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
- data/third_party/cares/cares/src/lib/ares_parse_srv_reply.c +168 -0
- data/third_party/cares/cares/src/lib/ares_parse_txt_reply.c +214 -0
- data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
- data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
- data/third_party/cares/cares/src/lib/ares_private.h +423 -0
- data/third_party/cares/cares/src/lib/ares_process.c +1548 -0
- data/third_party/cares/cares/src/lib/ares_query.c +180 -0
- data/third_party/cares/cares/src/lib/ares_search.c +321 -0
- data/third_party/cares/cares/src/lib/ares_send.c +131 -0
- data/third_party/cares/cares/src/lib/ares_setup.h +220 -0
- data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
- data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
- data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
- data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
- data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_strsplit.c +178 -0
- data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
- data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
- data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
- data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
- data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
- data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
- data/third_party/cares/cares/src/lib/config-dos.h +115 -0
- data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
- data/third_party/cares/cares/src/lib/inet_net_pton.c +444 -0
- data/third_party/cares/cares/src/lib/inet_ntop.c +201 -0
- data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
- data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
- data/third_party/re2/re2/bitstate.cc +3 -3
- data/third_party/re2/re2/dfa.cc +13 -13
- data/third_party/re2/re2/nfa.cc +4 -4
- data/third_party/re2/re2/onepass.cc +2 -2
- data/third_party/re2/re2/prefilter_tree.cc +27 -59
- data/third_party/re2/re2/prefilter_tree.h +3 -2
- data/third_party/re2/re2/prog.cc +11 -2
- data/third_party/re2/re2/prog.h +17 -5
- data/third_party/re2/re2/re2.cc +6 -11
- data/third_party/re2/re2/re2.h +1 -1
- data/third_party/re2/re2/regexp.cc +1 -2
- data/third_party/re2/re2/stringpiece.h +10 -7
- data/third_party/re2/re2/unicode_casefold.cc +25 -11
- data/third_party/re2/re2/unicode_groups.cc +319 -151
- data/third_party/re2/re2/walker-inl.h +3 -2
- data/third_party/re2/util/mutex.h +4 -4
- data/third_party/upb/third_party/utf8_range/naive.c +92 -0
- data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
- data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
- data/third_party/upb/upb/arena.c +277 -0
- data/third_party/upb/upb/arena.h +225 -0
- data/third_party/upb/upb/array.c +114 -0
- data/third_party/upb/upb/array.h +83 -0
- data/third_party/upb/upb/collections.h +36 -0
- data/third_party/upb/upb/decode.c +832 -382
- data/third_party/upb/upb/decode.h +44 -17
- data/third_party/upb/upb/decode_fast.c +304 -302
- data/third_party/upb/upb/decode_fast.h +18 -18
- data/third_party/upb/upb/def.c +2083 -982
- data/third_party/upb/upb/def.h +339 -260
- data/third_party/upb/upb/def.hpp +144 -171
- data/third_party/upb/upb/encode.c +287 -185
- data/third_party/upb/upb/encode.h +24 -16
- data/third_party/upb/upb/extension_registry.c +93 -0
- data/third_party/upb/upb/extension_registry.h +84 -0
- data/third_party/upb/upb/internal/decode.h +211 -0
- data/third_party/upb/upb/internal/table.h +385 -0
- data/third_party/upb/upb/internal/upb.h +68 -0
- data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
- data/third_party/upb/upb/json_decode.c +1512 -0
- data/third_party/upb/upb/json_decode.h +47 -0
- data/third_party/upb/upb/json_encode.c +780 -0
- data/third_party/upb/upb/json_encode.h +65 -0
- data/third_party/upb/upb/map.c +108 -0
- data/third_party/upb/upb/map.h +117 -0
- data/third_party/upb/upb/message_value.h +66 -0
- data/third_party/upb/upb/mini_table.c +1147 -0
- data/third_party/upb/upb/mini_table.h +189 -0
- data/third_party/upb/upb/mini_table.hpp +112 -0
- data/third_party/upb/upb/msg.c +132 -161
- data/third_party/upb/upb/msg.h +18 -55
- data/third_party/upb/upb/msg_internal.h +404 -254
- data/third_party/upb/upb/port_def.inc +10 -1
- data/third_party/upb/upb/port_undef.inc +2 -0
- data/third_party/upb/upb/reflection.c +203 -280
- data/third_party/upb/upb/reflection.h +40 -126
- data/third_party/upb/upb/reflection.hpp +6 -6
- data/third_party/upb/upb/status.c +86 -0
- data/third_party/upb/upb/status.h +66 -0
- data/third_party/upb/upb/table.c +233 -149
- data/third_party/upb/upb/table_internal.h +9 -324
- data/third_party/upb/upb/text_encode.c +116 -92
- data/third_party/upb/upb/text_encode.h +10 -10
- data/third_party/upb/upb/upb.c +34 -273
- data/third_party/upb/upb/upb.h +79 -262
- data/third_party/upb/upb/upb.hpp +31 -28
- data/third_party/xxhash/xxhash.h +607 -352
- data/third_party/zlib/compress.c +3 -3
- data/third_party/zlib/crc32.c +975 -292
- data/third_party/zlib/crc32.h +9441 -436
- data/third_party/zlib/deflate.c +183 -129
- data/third_party/zlib/deflate.h +12 -15
- data/third_party/zlib/gzguts.h +3 -2
- data/third_party/zlib/gzlib.c +6 -4
- data/third_party/zlib/gzread.c +8 -12
- data/third_party/zlib/gzwrite.c +26 -14
- data/third_party/zlib/infback.c +12 -8
- data/third_party/zlib/inffast.c +14 -14
- data/third_party/zlib/inflate.c +44 -10
- data/third_party/zlib/inflate.h +3 -2
- data/third_party/zlib/inftrees.c +3 -3
- data/third_party/zlib/inftrees.h +1 -1
- data/third_party/zlib/trees.c +85 -107
- data/third_party/zlib/uncompr.c +2 -2
- data/third_party/zlib/zconf.h +16 -3
- data/third_party/zlib/zlib.h +129 -106
- data/third_party/zlib/zutil.c +11 -9
- data/third_party/zlib/zutil.h +13 -9
- metadata +786 -299
- data/include/grpc/impl/codegen/gpr_slice.h +0 -71
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +0 -392
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -42
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -44
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -83
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +0 -60
- data/src/core/ext/filters/client_channel/lb_policy.cc +0 -131
- data/src/core/ext/filters/client_channel/lb_policy.h +0 -425
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -48
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +0 -185
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +0 -65
- data/src/core/ext/filters/client_channel/proxy_mapper.h +0 -54
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -89
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +0 -50
- 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_channel/resolver.cc +0 -87
- data/src/core/ext/filters/client_channel/resolver.h +0 -136
- data/src/core/ext/filters/client_channel/resolver_factory.h +0 -75
- data/src/core/ext/filters/client_channel/resolver_registry.cc +0 -195
- data/src/core/ext/filters/client_channel/resolver_registry.h +0 -89
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -189
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +0 -99
- data/src/core/ext/filters/client_channel/server_address.cc +0 -170
- data/src/core/ext/filters/client_channel/server_address.h +0 -144
- data/src/core/ext/filters/client_channel/subchannel_interface.h +0 -130
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +0 -264
- data/src/core/ext/filters/client_idle/idle_filter_state.cc +0 -96
- data/src/core/ext/filters/client_idle/idle_filter_state.h +0 -66
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -181
- data/src/core/ext/filters/fault_injection/service_config_parser.h +0 -85
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -553
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -53
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -398
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +0 -31
- data/src/core/ext/filters/max_age/max_age_filter.cc +0 -560
- data/src/core/ext/filters/max_age/max_age_filter.h +0 -26
- data/src/core/ext/service_config/service_config.cc +0 -227
- data/src/core/ext/service_config/service_config.h +0 -127
- data/src/core/ext/service_config/service_config_call_data.h +0 -72
- data/src/core/ext/service_config/service_config_parser.cc +0 -89
- data/src/core/ext/service_config/service_config_parser.h +0 -97
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -119
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -95
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -189
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -53
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -83
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -125
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -37
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +0 -107
- data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +0 -46
- data/src/core/ext/transport/chttp2/transport/hpack_utils.h +0 -30
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +0 -60
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -62
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -62
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -62
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -62
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -62
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -72
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -73
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -72
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -80
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -74
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
- data/src/core/ext/xds/certificate_provider_factory.h +0 -61
- data/src/core/ext/xds/certificate_provider_registry.cc +0 -103
- data/src/core/ext/xds/certificate_provider_registry.h +0 -57
- data/src/core/lib/avl/avl.cc +0 -306
- data/src/core/lib/channel/handshaker.cc +0 -222
- data/src/core/lib/channel/handshaker.h +0 -161
- data/src/core/lib/channel/handshaker_factory.h +0 -50
- data/src/core/lib/channel/handshaker_registry.cc +0 -50
- data/src/core/lib/channel/handshaker_registry.h +0 -71
- data/src/core/lib/compression/algorithm_metadata.h +0 -62
- data/src/core/lib/compression/compression_args.cc +0 -138
- data/src/core/lib/compression/compression_args.h +0 -56
- data/src/core/lib/compression/stream_compression.cc +0 -81
- data/src/core/lib/compression/stream_compression.h +0 -117
- data/src/core/lib/compression/stream_compression_gzip.cc +0 -231
- data/src/core/lib/compression/stream_compression_gzip.h +0 -28
- data/src/core/lib/compression/stream_compression_identity.cc +0 -91
- data/src/core/lib/compression/stream_compression_identity.h +0 -29
- data/src/core/lib/event_engine/endpoint_config.cc +0 -45
- data/src/core/lib/event_engine/endpoint_config_internal.h +0 -42
- data/src/core/lib/event_engine/event_engine.cc +0 -50
- data/src/core/lib/event_engine/sockaddr.cc +0 -40
- data/src/core/lib/event_engine/sockaddr.h +0 -44
- data/src/core/lib/gpr/env.h +0 -40
- data/src/core/lib/gpr/env_linux.cc +0 -75
- data/src/core/lib/gpr/env_posix.cc +0 -46
- data/src/core/lib/gpr/env_windows.cc +0 -74
- data/src/core/lib/gpr/murmur_hash.cc +0 -82
- data/src/core/lib/gpr/murmur_hash.h +0 -29
- data/src/core/lib/gpr/string_windows.h +0 -32
- data/src/core/lib/gpr/tls.h +0 -151
- data/src/core/lib/gprpp/arena.cc +0 -104
- data/src/core/lib/gprpp/arena.h +0 -131
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +0 -32
- data/src/core/lib/iomgr/error_internal.h +0 -66
- data/src/core/lib/iomgr/ev_epollex_linux.cc +0 -1654
- 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 -173
- data/src/core/lib/iomgr/event_engine/endpoint.h +0 -52
- data/src/core/lib/iomgr/event_engine/iomgr.cc +0 -104
- data/src/core/lib/iomgr/event_engine/iomgr.h +0 -42
- data/src/core/lib/iomgr/event_engine/pollset.cc +0 -88
- data/src/core/lib/iomgr/event_engine/pollset.h +0 -25
- data/src/core/lib/iomgr/event_engine/promise.h +0 -51
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +0 -41
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +0 -35
- data/src/core/lib/iomgr/event_engine/resolver.cc +0 -114
- data/src/core/lib/iomgr/event_engine/tcp.cc +0 -293
- data/src/core/lib/iomgr/event_engine/timer.cc +0 -62
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -182
- data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -171
- data/src/core/lib/iomgr/executor/threadpool.cc +0 -136
- data/src/core/lib/iomgr/executor/threadpool.h +0 -150
- data/src/core/lib/iomgr/iomgr_custom.cc +0 -79
- data/src/core/lib/iomgr/iomgr_custom.h +0 -49
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +0 -119
- data/src/core/lib/iomgr/is_epollexclusive_available.h +0 -36
- data/src/core/lib/iomgr/pollset_custom.cc +0 -105
- data/src/core/lib/iomgr/pollset_custom.h +0 -37
- data/src/core/lib/iomgr/pollset_set_custom.cc +0 -47
- data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
- data/src/core/lib/iomgr/resolve_address_custom.cc +0 -169
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -44
- data/src/core/lib/iomgr/resource_quota.cc +0 -1106
- data/src/core/lib/iomgr/resource_quota.h +0 -226
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +0 -30
- data/src/core/lib/iomgr/tcp_client_custom.cc +0 -152
- data/src/core/lib/iomgr/tcp_custom.cc +0 -377
- data/src/core/lib/iomgr/tcp_custom.h +0 -86
- data/src/core/lib/iomgr/tcp_server_custom.cc +0 -467
- data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
- data/src/core/lib/iomgr/timer_custom.cc +0 -96
- data/src/core/lib/iomgr/timer_custom.h +0 -43
- data/src/core/lib/iomgr/work_serializer.cc +0 -155
- data/src/core/lib/iomgr/work_serializer.h +0 -81
- data/src/core/lib/profiling/basic_timers.cc +0 -295
- data/src/core/lib/profiling/stap_timers.cc +0 -50
- data/src/core/lib/profiling/timers.h +0 -94
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +0 -171
- data/src/core/lib/security/authorization/sdk_server_authz_filter.h +0 -67
- data/src/core/lib/security/credentials/credentials_metadata.cc +0 -61
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +0 -171
- data/src/core/lib/security/security_connector/load_system_roots_linux.h +0 -46
- data/src/core/lib/slice/slice_api.cc +0 -39
- data/src/core/lib/slice/slice_intern.cc +0 -367
- data/src/core/lib/slice/slice_refcount.cc +0 -17
- data/src/core/lib/slice/slice_refcount_base.h +0 -173
- data/src/core/lib/slice/slice_split.cc +0 -100
- data/src/core/lib/slice/slice_split.h +0 -40
- data/src/core/lib/slice/slice_utils.h +0 -200
- data/src/core/lib/slice/static_slice.cc +0 -529
- data/src/core/lib/slice/static_slice.h +0 -331
- data/src/core/lib/surface/init_secure.cc +0 -103
- data/src/core/lib/transport/byte_stream.cc +0 -158
- data/src/core/lib/transport/byte_stream.h +0 -166
- data/src/core/lib/transport/metadata.cc +0 -714
- data/src/core/lib/transport/metadata.h +0 -449
- data/src/core/lib/transport/static_metadata.cc +0 -1117
- data/src/core/lib/transport/static_metadata.h +0 -340
- data/src/core/lib/transport/status_metadata.cc +0 -63
- data/src/core/lib/transport/status_metadata.h +0 -48
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +0 -93
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +0 -130
- data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -50
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +0 -111
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +0 -48
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
- data/third_party/cares/cares/ares.h +0 -670
- data/third_party/cares/cares/ares__close_sockets.c +0 -61
- data/third_party/cares/cares/ares__get_hostent.c +0 -261
- data/third_party/cares/cares/ares_create_query.c +0 -206
- data/third_party/cares/cares/ares_data.c +0 -222
- data/third_party/cares/cares/ares_data.h +0 -72
- data/third_party/cares/cares/ares_dns.h +0 -103
- data/third_party/cares/cares/ares_expand_name.c +0 -209
- data/third_party/cares/cares/ares_expand_string.c +0 -70
- data/third_party/cares/cares/ares_free_hostent.c +0 -41
- data/third_party/cares/cares/ares_getenv.c +0 -30
- data/third_party/cares/cares/ares_gethostbyaddr.c +0 -294
- data/third_party/cares/cares/ares_gethostbyname.c +0 -529
- data/third_party/cares/cares/ares_getnameinfo.c +0 -453
- data/third_party/cares/cares/ares_getopt.c +0 -122
- data/third_party/cares/cares/ares_getopt.h +0 -53
- data/third_party/cares/cares/ares_init.c +0 -2615
- data/third_party/cares/cares/ares_ipv6.h +0 -78
- data/third_party/cares/cares/ares_library_init.c +0 -195
- data/third_party/cares/cares/ares_library_init.h +0 -43
- data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_mx_reply.c +0 -170
- data/third_party/cares/cares/ares_parse_naptr_reply.c +0 -194
- data/third_party/cares/cares/ares_parse_ns_reply.c +0 -183
- data/third_party/cares/cares/ares_parse_ptr_reply.c +0 -221
- data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
- data/third_party/cares/cares/ares_parse_srv_reply.c +0 -179
- data/third_party/cares/cares/ares_parse_txt_reply.c +0 -220
- data/third_party/cares/cares/ares_private.h +0 -382
- data/third_party/cares/cares/ares_process.c +0 -1473
- data/third_party/cares/cares/ares_query.c +0 -186
- data/third_party/cares/cares/ares_search.c +0 -323
- data/third_party/cares/cares/ares_send.c +0 -137
- data/third_party/cares/cares/ares_setup.h +0 -217
- data/third_party/cares/cares/ares_strsplit.c +0 -174
- data/third_party/cares/cares/ares_version.h +0 -24
- data/third_party/cares/cares/inet_net_pton.c +0 -450
- data/third_party/cares/cares/inet_ntop.c +0 -207
- data/third_party/upb/upb/decode_internal.h +0 -193
- data/third_party/upb/upb/upb_internal.h +0 -58
@@ -1,112 +1,75 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
1
|
+
//
|
2
|
+
//
|
3
|
+
// Copyright 2015 gRPC authors.
|
4
|
+
//
|
5
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
// you may not use this file except in compliance with the License.
|
7
|
+
// You may obtain a copy of the License at
|
8
|
+
//
|
9
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
//
|
11
|
+
// Unless required by applicable law or agreed to in writing, software
|
12
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
// See the License for the specific language governing permissions and
|
15
|
+
// limitations under the License.
|
16
|
+
//
|
17
|
+
//
|
18
18
|
|
19
19
|
#ifndef GRPC_CORE_LIB_TRANSPORT_METADATA_BATCH_H
|
20
20
|
#define GRPC_CORE_LIB_TRANSPORT_METADATA_BATCH_H
|
21
21
|
|
22
22
|
#include <grpc/support/port_platform.h>
|
23
23
|
|
24
|
-
#include <
|
24
|
+
#include <stdlib.h>
|
25
25
|
|
26
|
-
#include
|
27
|
-
#include
|
26
|
+
#include <cstdint>
|
27
|
+
#include <string>
|
28
|
+
#include <type_traits>
|
29
|
+
#include <utility>
|
30
|
+
|
31
|
+
#include "absl/container/inlined_vector.h"
|
32
|
+
#include "absl/functional/function_ref.h"
|
33
|
+
#include "absl/meta/type_traits.h"
|
34
|
+
#include "absl/strings/numbers.h"
|
35
|
+
#include "absl/strings/string_view.h"
|
28
36
|
#include "absl/types/optional.h"
|
29
37
|
|
30
|
-
#include <grpc/
|
31
|
-
#include <grpc/
|
32
|
-
#include <grpc/support/
|
38
|
+
#include <grpc/impl/compression_types.h>
|
39
|
+
#include <grpc/status.h>
|
40
|
+
#include <grpc/support/log.h>
|
33
41
|
|
42
|
+
#include "src/core/lib/compression/compression_internal.h"
|
34
43
|
#include "src/core/lib/gprpp/chunked_vector.h"
|
35
|
-
#include "src/core/lib/gprpp/
|
36
|
-
#include "src/core/lib/
|
37
|
-
#include "src/core/lib/
|
38
|
-
#include "src/core/lib/
|
44
|
+
#include "src/core/lib/gprpp/packed_table.h"
|
45
|
+
#include "src/core/lib/gprpp/time.h"
|
46
|
+
#include "src/core/lib/resource_quota/arena.h"
|
47
|
+
#include "src/core/lib/slice/slice.h"
|
39
48
|
#include "src/core/lib/transport/parsed_metadata.h"
|
40
|
-
#include "src/core/lib/transport/static_metadata.h"
|
41
|
-
#include "src/core/lib/transport/timeout_encoding.h"
|
42
|
-
|
43
|
-
typedef struct grpc_linked_mdelem {
|
44
|
-
grpc_linked_mdelem() {}
|
45
|
-
|
46
|
-
grpc_mdelem md;
|
47
|
-
struct grpc_linked_mdelem* next = nullptr;
|
48
|
-
struct grpc_linked_mdelem* prev = nullptr;
|
49
|
-
void* reserved;
|
50
|
-
} grpc_linked_mdelem;
|
51
|
-
|
52
|
-
typedef struct grpc_mdelem_list {
|
53
|
-
size_t count;
|
54
|
-
size_t default_count; // Number of default keys.
|
55
|
-
grpc_linked_mdelem* head;
|
56
|
-
grpc_linked_mdelem* tail;
|
57
|
-
} grpc_mdelem_list;
|
58
|
-
|
59
|
-
struct grpc_filtered_mdelem {
|
60
|
-
grpc_error_handle error;
|
61
|
-
grpc_mdelem md;
|
62
|
-
};
|
63
|
-
#define GRPC_FILTERED_ERROR(error) \
|
64
|
-
{ (error), GRPC_MDNULL }
|
65
|
-
#define GRPC_FILTERED_MDELEM(md) \
|
66
|
-
{ GRPC_ERROR_NONE, (md) }
|
67
|
-
#define GRPC_FILTERED_REMOVE() \
|
68
|
-
{ GRPC_ERROR_NONE, GRPC_MDNULL }
|
69
|
-
|
70
|
-
grpc_error_handle grpc_attach_md_to_error(grpc_error_handle src,
|
71
|
-
grpc_mdelem md);
|
72
49
|
|
73
50
|
namespace grpc_core {
|
74
51
|
|
75
52
|
// grpc-timeout metadata trait.
|
76
|
-
// ValueType is defined as
|
53
|
+
// ValueType is defined as Timestamp - an absolute timestamp (i.e. a
|
77
54
|
// deadline!), that is converted to a duration by transports before being
|
78
55
|
// sent.
|
79
56
|
// TODO(ctiller): Move this elsewhere. During the transition we need to be able
|
80
57
|
// to name this in MetadataMap, but ultimately once the transition is done we
|
81
58
|
// should not need to.
|
82
59
|
struct GrpcTimeoutMetadata {
|
83
|
-
|
84
|
-
using
|
85
|
-
|
86
|
-
static
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
grpc_slice_unref_internal(value);
|
92
|
-
return timeout;
|
93
|
-
}
|
94
|
-
static ValueType MementoToValue(MementoType timeout) {
|
95
|
-
if (timeout == GRPC_MILLIS_INF_FUTURE) {
|
96
|
-
return GRPC_MILLIS_INF_FUTURE;
|
97
|
-
}
|
98
|
-
return grpc_core::ExecCtx::Get()->Now() + timeout;
|
99
|
-
}
|
100
|
-
static grpc_slice Encode(ValueType x) {
|
101
|
-
char timeout[GRPC_HTTP2_TIMEOUT_ENCODE_MIN_BUFSIZE];
|
102
|
-
grpc_http2_encode_timeout(x, timeout);
|
103
|
-
return grpc_slice_from_copied_string(timeout);
|
104
|
-
}
|
105
|
-
static MementoType DisplayValue(MementoType x) { return x; }
|
60
|
+
static constexpr bool kRepeatable = false;
|
61
|
+
using ValueType = Timestamp;
|
62
|
+
using MementoType = Duration;
|
63
|
+
static absl::string_view key() { return "grpc-timeout"; }
|
64
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
65
|
+
static ValueType MementoToValue(MementoType timeout);
|
66
|
+
static Slice Encode(ValueType x);
|
67
|
+
static std::string DisplayValue(MementoType x) { return x.ToString(); }
|
106
68
|
};
|
107
69
|
|
108
70
|
// TE metadata trait.
|
109
71
|
struct TeMetadata {
|
72
|
+
static constexpr bool kRepeatable = false;
|
110
73
|
// HTTP2 says that TE can either be empty or "trailers".
|
111
74
|
// Empty means this trait is not included, "trailers" means kTrailers, and
|
112
75
|
// kInvalid is used to remember an invalid value.
|
@@ -115,133 +78,953 @@ struct TeMetadata {
|
|
115
78
|
kInvalid,
|
116
79
|
};
|
117
80
|
using MementoType = ValueType;
|
118
|
-
static
|
119
|
-
static MementoType ParseMemento(
|
120
|
-
auto out = kInvalid;
|
121
|
-
if (grpc_slice_eq(value, GRPC_MDSTR_TRAILERS)) {
|
122
|
-
out = kTrailers;
|
123
|
-
}
|
124
|
-
grpc_slice_unref_internal(value);
|
125
|
-
return out;
|
126
|
-
}
|
81
|
+
static absl::string_view key() { return "te"; }
|
82
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
127
83
|
static ValueType MementoToValue(MementoType te) { return te; }
|
128
|
-
static
|
84
|
+
static StaticSlice Encode(ValueType x) {
|
129
85
|
GPR_ASSERT(x == kTrailers);
|
130
|
-
return
|
131
|
-
}
|
132
|
-
static const char* DisplayValue(MementoType te)
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
86
|
+
return StaticSlice::FromStaticString("trailers");
|
87
|
+
}
|
88
|
+
static const char* DisplayValue(MementoType te);
|
89
|
+
};
|
90
|
+
|
91
|
+
// content-type metadata trait.
|
92
|
+
struct ContentTypeMetadata {
|
93
|
+
static constexpr bool kRepeatable = false;
|
94
|
+
// gRPC says that content-type can be application/grpc[;something]
|
95
|
+
// Core has only ever verified the prefix.
|
96
|
+
// IF we want to start verifying more, we can expand this type.
|
97
|
+
enum ValueType : uint8_t {
|
98
|
+
kApplicationGrpc,
|
99
|
+
kEmpty,
|
100
|
+
kInvalid,
|
101
|
+
};
|
102
|
+
using MementoType = ValueType;
|
103
|
+
static absl::string_view key() { return "content-type"; }
|
104
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
105
|
+
static ValueType MementoToValue(MementoType content_type) {
|
106
|
+
return content_type;
|
107
|
+
}
|
108
|
+
|
109
|
+
static StaticSlice Encode(ValueType x);
|
110
|
+
static const char* DisplayValue(MementoType content_type);
|
111
|
+
};
|
112
|
+
|
113
|
+
// scheme metadata trait.
|
114
|
+
struct HttpSchemeMetadata {
|
115
|
+
static constexpr bool kRepeatable = false;
|
116
|
+
enum ValueType : uint8_t {
|
117
|
+
kHttp,
|
118
|
+
kHttps,
|
119
|
+
kInvalid,
|
120
|
+
};
|
121
|
+
using MementoType = ValueType;
|
122
|
+
static absl::string_view key() { return ":scheme"; }
|
123
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error) {
|
124
|
+
return Parse(value.as_string_view(), on_error);
|
125
|
+
}
|
126
|
+
static ValueType Parse(absl::string_view value,
|
127
|
+
MetadataParseErrorFn on_error);
|
128
|
+
static ValueType MementoToValue(MementoType content_type) {
|
129
|
+
return content_type;
|
130
|
+
}
|
131
|
+
static StaticSlice Encode(ValueType x);
|
132
|
+
static const char* DisplayValue(MementoType content_type);
|
133
|
+
};
|
134
|
+
|
135
|
+
// method metadata trait.
|
136
|
+
struct HttpMethodMetadata {
|
137
|
+
static constexpr bool kRepeatable = false;
|
138
|
+
enum ValueType : uint8_t {
|
139
|
+
kPost,
|
140
|
+
kGet,
|
141
|
+
kPut,
|
142
|
+
kInvalid,
|
143
|
+
};
|
144
|
+
using MementoType = ValueType;
|
145
|
+
static absl::string_view key() { return ":method"; }
|
146
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
147
|
+
static ValueType MementoToValue(MementoType content_type) {
|
148
|
+
return content_type;
|
149
|
+
}
|
150
|
+
static StaticSlice Encode(ValueType x);
|
151
|
+
static const char* DisplayValue(MementoType content_type);
|
152
|
+
};
|
153
|
+
|
154
|
+
// Base type for metadata pertaining to a single compression algorithm
|
155
|
+
// (e.g., "grpc-encoding").
|
156
|
+
struct CompressionAlgorithmBasedMetadata {
|
157
|
+
using ValueType = grpc_compression_algorithm;
|
158
|
+
using MementoType = ValueType;
|
159
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
160
|
+
static ValueType MementoToValue(MementoType x) { return x; }
|
161
|
+
static Slice Encode(ValueType x) {
|
162
|
+
GPR_ASSERT(x != GRPC_COMPRESS_ALGORITHMS_COUNT);
|
163
|
+
return Slice::FromStaticString(CompressionAlgorithmAsString(x));
|
164
|
+
}
|
165
|
+
static const char* DisplayValue(MementoType x) {
|
166
|
+
if (const char* p = CompressionAlgorithmAsString(x)) {
|
167
|
+
return p;
|
168
|
+
} else {
|
169
|
+
return "<discarded-invalid-value>";
|
170
|
+
}
|
171
|
+
}
|
172
|
+
};
|
173
|
+
|
174
|
+
// grpc-encoding metadata trait.
|
175
|
+
struct GrpcEncodingMetadata : public CompressionAlgorithmBasedMetadata {
|
176
|
+
static constexpr bool kRepeatable = false;
|
177
|
+
static absl::string_view key() { return "grpc-encoding"; }
|
178
|
+
};
|
179
|
+
|
180
|
+
// grpc-internal-encoding-request metadata trait.
|
181
|
+
struct GrpcInternalEncodingRequest : public CompressionAlgorithmBasedMetadata {
|
182
|
+
static constexpr bool kRepeatable = false;
|
183
|
+
static absl::string_view key() { return "grpc-internal-encoding-request"; }
|
184
|
+
};
|
185
|
+
|
186
|
+
// grpc-accept-encoding metadata trait.
|
187
|
+
struct GrpcAcceptEncodingMetadata {
|
188
|
+
static constexpr bool kRepeatable = false;
|
189
|
+
static absl::string_view key() { return "grpc-accept-encoding"; }
|
190
|
+
using ValueType = CompressionAlgorithmSet;
|
191
|
+
using MementoType = ValueType;
|
192
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn) {
|
193
|
+
return CompressionAlgorithmSet::FromString(value.as_string_view());
|
194
|
+
}
|
195
|
+
static ValueType MementoToValue(MementoType x) { return x; }
|
196
|
+
static Slice Encode(ValueType x) { return x.ToSlice(); }
|
197
|
+
static absl::string_view DisplayValue(MementoType x) { return x.ToString(); }
|
198
|
+
};
|
199
|
+
|
200
|
+
struct SimpleSliceBasedMetadata {
|
201
|
+
using ValueType = Slice;
|
202
|
+
using MementoType = Slice;
|
203
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn) {
|
204
|
+
return value.TakeOwned();
|
205
|
+
}
|
206
|
+
static ValueType MementoToValue(MementoType value) { return value; }
|
207
|
+
static Slice Encode(const ValueType& x) { return x.Ref(); }
|
208
|
+
static absl::string_view DisplayValue(const MementoType& value) {
|
209
|
+
return value.as_string_view();
|
210
|
+
}
|
211
|
+
};
|
212
|
+
|
213
|
+
// user-agent metadata trait.
|
214
|
+
struct UserAgentMetadata : public SimpleSliceBasedMetadata {
|
215
|
+
static constexpr bool kRepeatable = false;
|
216
|
+
static absl::string_view key() { return "user-agent"; }
|
217
|
+
};
|
218
|
+
|
219
|
+
// grpc-message metadata trait.
|
220
|
+
struct GrpcMessageMetadata : public SimpleSliceBasedMetadata {
|
221
|
+
static constexpr bool kRepeatable = false;
|
222
|
+
static absl::string_view key() { return "grpc-message"; }
|
223
|
+
};
|
224
|
+
|
225
|
+
// host metadata trait.
|
226
|
+
struct HostMetadata : public SimpleSliceBasedMetadata {
|
227
|
+
static constexpr bool kRepeatable = false;
|
228
|
+
static absl::string_view key() { return "host"; }
|
229
|
+
};
|
230
|
+
|
231
|
+
// endpoint-load-metrics-bin metadata trait.
|
232
|
+
struct EndpointLoadMetricsBinMetadata : public SimpleSliceBasedMetadata {
|
233
|
+
static constexpr bool kRepeatable = false;
|
234
|
+
static absl::string_view key() { return "endpoint-load-metrics-bin"; }
|
235
|
+
};
|
236
|
+
|
237
|
+
// grpc-server-stats-bin metadata trait.
|
238
|
+
struct GrpcServerStatsBinMetadata : public SimpleSliceBasedMetadata {
|
239
|
+
static constexpr bool kRepeatable = false;
|
240
|
+
static absl::string_view key() { return "grpc-server-stats-bin"; }
|
241
|
+
};
|
242
|
+
|
243
|
+
// grpc-trace-bin metadata trait.
|
244
|
+
struct GrpcTraceBinMetadata : public SimpleSliceBasedMetadata {
|
245
|
+
static constexpr bool kRepeatable = false;
|
246
|
+
static absl::string_view key() { return "grpc-trace-bin"; }
|
247
|
+
};
|
248
|
+
|
249
|
+
// grpc-tags-bin metadata trait.
|
250
|
+
struct GrpcTagsBinMetadata : public SimpleSliceBasedMetadata {
|
251
|
+
static constexpr bool kRepeatable = false;
|
252
|
+
static absl::string_view key() { return "grpc-tags-bin"; }
|
253
|
+
};
|
254
|
+
|
255
|
+
// :authority metadata trait.
|
256
|
+
struct HttpAuthorityMetadata : public SimpleSliceBasedMetadata {
|
257
|
+
static constexpr bool kRepeatable = false;
|
258
|
+
static absl::string_view key() { return ":authority"; }
|
259
|
+
};
|
260
|
+
|
261
|
+
// :path metadata trait.
|
262
|
+
struct HttpPathMetadata : public SimpleSliceBasedMetadata {
|
263
|
+
static constexpr bool kRepeatable = false;
|
264
|
+
static absl::string_view key() { return ":path"; }
|
265
|
+
};
|
266
|
+
|
267
|
+
// We separate SimpleIntBasedMetadata into two pieces: one that does not
|
268
|
+
// depend on the invalid value, and one that does. This allows the compiler to
|
269
|
+
// easily see the functions that are shared, and helps reduce code bloat here.
|
270
|
+
template <typename Int>
|
271
|
+
struct SimpleIntBasedMetadataBase {
|
272
|
+
using ValueType = Int;
|
273
|
+
using MementoType = Int;
|
274
|
+
static ValueType MementoToValue(MementoType value) { return value; }
|
275
|
+
static Slice Encode(ValueType x) { return Slice::FromInt64(x); }
|
276
|
+
static Int DisplayValue(MementoType x) { return x; }
|
277
|
+
};
|
278
|
+
|
279
|
+
template <typename Int, Int kInvalidValue>
|
280
|
+
struct SimpleIntBasedMetadata : public SimpleIntBasedMetadataBase<Int> {
|
281
|
+
static constexpr Int invalid_value() { return kInvalidValue; }
|
282
|
+
static Int ParseMemento(Slice value, MetadataParseErrorFn on_error) {
|
283
|
+
Int out;
|
284
|
+
if (!absl::SimpleAtoi(value.as_string_view(), &out)) {
|
285
|
+
on_error("not an integer", value);
|
286
|
+
out = kInvalidValue;
|
138
287
|
}
|
288
|
+
return out;
|
139
289
|
}
|
140
290
|
};
|
141
291
|
|
292
|
+
// grpc-status metadata trait.
|
293
|
+
struct GrpcStatusMetadata
|
294
|
+
: public SimpleIntBasedMetadata<grpc_status_code, GRPC_STATUS_UNKNOWN> {
|
295
|
+
static constexpr bool kRepeatable = false;
|
296
|
+
static absl::string_view key() { return "grpc-status"; }
|
297
|
+
};
|
298
|
+
|
299
|
+
// grpc-previous-rpc-attempts metadata trait.
|
300
|
+
struct GrpcPreviousRpcAttemptsMetadata
|
301
|
+
: public SimpleIntBasedMetadata<uint32_t, 0> {
|
302
|
+
static constexpr bool kRepeatable = false;
|
303
|
+
static absl::string_view key() { return "grpc-previous-rpc-attempts"; }
|
304
|
+
};
|
305
|
+
|
306
|
+
// grpc-retry-pushback-ms metadata trait.
|
307
|
+
struct GrpcRetryPushbackMsMetadata {
|
308
|
+
static constexpr bool kRepeatable = false;
|
309
|
+
static absl::string_view key() { return "grpc-retry-pushback-ms"; }
|
310
|
+
using ValueType = Duration;
|
311
|
+
using MementoType = Duration;
|
312
|
+
static ValueType MementoToValue(MementoType x) { return x; }
|
313
|
+
static Slice Encode(Duration x) { return Slice::FromInt64(x.millis()); }
|
314
|
+
static int64_t DisplayValue(Duration x) { return x.millis(); }
|
315
|
+
static Duration ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
316
|
+
};
|
317
|
+
|
318
|
+
// :status metadata trait.
|
319
|
+
// TODO(ctiller): consider moving to uint16_t
|
320
|
+
struct HttpStatusMetadata : public SimpleIntBasedMetadata<uint32_t, 0> {
|
321
|
+
static constexpr bool kRepeatable = false;
|
322
|
+
static absl::string_view key() { return ":status"; }
|
323
|
+
};
|
324
|
+
|
325
|
+
// "secret" metadata trait used to pass load balancing token between filters.
|
326
|
+
// This should not be exposed outside of gRPC core.
|
327
|
+
class GrpcLbClientStats;
|
328
|
+
|
329
|
+
struct GrpcLbClientStatsMetadata {
|
330
|
+
static constexpr bool kRepeatable = false;
|
331
|
+
static absl::string_view key() { return "grpclb_client_stats"; }
|
332
|
+
using ValueType = GrpcLbClientStats*;
|
333
|
+
using MementoType = ValueType;
|
334
|
+
static ValueType MementoToValue(MementoType value) { return value; }
|
335
|
+
static Slice Encode(ValueType) { abort(); }
|
336
|
+
static const char* DisplayValue(MementoType) { return "<internal-lb-stats>"; }
|
337
|
+
static MementoType ParseMemento(Slice, MetadataParseErrorFn) {
|
338
|
+
return nullptr;
|
339
|
+
}
|
340
|
+
};
|
341
|
+
|
342
|
+
// lb-token metadata
|
343
|
+
struct LbTokenMetadata : public SimpleSliceBasedMetadata {
|
344
|
+
static constexpr bool kRepeatable = false;
|
345
|
+
static absl::string_view key() { return "lb-token"; }
|
346
|
+
};
|
347
|
+
|
348
|
+
// lb-cost-bin metadata
|
349
|
+
struct LbCostBinMetadata {
|
350
|
+
static constexpr bool kRepeatable = true;
|
351
|
+
static absl::string_view key() { return "lb-cost-bin"; }
|
352
|
+
struct ValueType {
|
353
|
+
double cost;
|
354
|
+
std::string name;
|
355
|
+
};
|
356
|
+
using MementoType = ValueType;
|
357
|
+
static ValueType MementoToValue(MementoType value) { return value; }
|
358
|
+
static Slice Encode(const ValueType& x);
|
359
|
+
static std::string DisplayValue(MementoType x);
|
360
|
+
static MementoType ParseMemento(Slice value, MetadataParseErrorFn on_error);
|
361
|
+
};
|
362
|
+
|
363
|
+
// Annotation added by a transport to note whether a failed request was never
|
364
|
+
// placed on the wire, or never seen by a server.
|
365
|
+
struct GrpcStreamNetworkState {
|
366
|
+
static absl::string_view DebugKey() { return "GrpcStreamNetworkState"; }
|
367
|
+
static constexpr bool kRepeatable = false;
|
368
|
+
enum ValueType : uint8_t {
|
369
|
+
kNotSentOnWire,
|
370
|
+
kNotSeenByServer,
|
371
|
+
};
|
372
|
+
static std::string DisplayValue(ValueType x);
|
373
|
+
};
|
374
|
+
|
375
|
+
// Annotation added by a server transport to note the peer making a request.
|
376
|
+
struct PeerString {
|
377
|
+
static absl::string_view DebugKey() { return "PeerString"; }
|
378
|
+
static constexpr bool kRepeatable = false;
|
379
|
+
using ValueType = absl::string_view;
|
380
|
+
static std::string DisplayValue(ValueType x);
|
381
|
+
};
|
382
|
+
|
383
|
+
// Annotation added by various systems to describe the reason for a failure.
|
384
|
+
struct GrpcStatusContext {
|
385
|
+
static absl::string_view DebugKey() { return "GrpcStatusContext"; }
|
386
|
+
static constexpr bool kRepeatable = true;
|
387
|
+
using ValueType = std::string;
|
388
|
+
static const std::string& DisplayValue(const std::string& x);
|
389
|
+
};
|
390
|
+
|
391
|
+
// Annotation added by a transport to note that the status came from the wire.
|
392
|
+
struct GrpcStatusFromWire {
|
393
|
+
static absl::string_view DebugKey() { return "GrpcStatusFromWire"; }
|
394
|
+
static constexpr bool kRepeatable = false;
|
395
|
+
using ValueType = bool;
|
396
|
+
static absl::string_view DisplayValue(bool x) { return x ? "true" : "false"; }
|
397
|
+
};
|
398
|
+
|
399
|
+
// Annotation added by client surface code to denote wait-for-ready state
|
400
|
+
struct WaitForReady {
|
401
|
+
struct ValueType {
|
402
|
+
bool value = false;
|
403
|
+
bool explicitly_set = false;
|
404
|
+
};
|
405
|
+
static absl::string_view DebugKey() { return "WaitForReady"; }
|
406
|
+
static constexpr bool kRepeatable = false;
|
407
|
+
static std::string DisplayValue(ValueType x);
|
408
|
+
};
|
409
|
+
|
410
|
+
// Annotation added by a transport to note that server trailing metadata
|
411
|
+
// is a Trailers-Only response.
|
412
|
+
struct GrpcTrailersOnly {
|
413
|
+
static absl::string_view DebugKey() { return "GrpcTrailersOnly"; }
|
414
|
+
static constexpr bool kRepeatable = false;
|
415
|
+
using ValueType = bool;
|
416
|
+
static absl::string_view DisplayValue(bool x) { return x ? "true" : "false"; }
|
417
|
+
};
|
418
|
+
|
142
419
|
namespace metadata_detail {
|
143
420
|
|
144
|
-
//
|
145
|
-
//
|
146
|
-
//
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
421
|
+
// Build a key/value formatted debug string.
|
422
|
+
// Output looks like 'key1: value1, key2: value2'
|
423
|
+
// The string is expected to be readable, but not necessarily parsable.
|
424
|
+
class DebugStringBuilder {
|
425
|
+
public:
|
426
|
+
// Add one key/value pair to the output.
|
427
|
+
void Add(absl::string_view key, absl::string_view value);
|
428
|
+
|
429
|
+
// Finalize the output and return the string.
|
430
|
+
// Subsequent Add calls are UB.
|
431
|
+
std::string TakeOutput() { return std::move(out_); }
|
432
|
+
|
433
|
+
private:
|
434
|
+
std::string out_;
|
435
|
+
};
|
436
|
+
|
437
|
+
// IsEncodable: Given a trait, determine if that trait is encodable, or is
|
438
|
+
// just a value attached to a MetadataMap. We use the presence of the key()
|
439
|
+
// static method to determine if a trait is encodable or not - encodable
|
440
|
+
// traits have string names, and non-encodable traits do not.
|
441
|
+
template <typename Trait, typename Ignored = void>
|
442
|
+
struct IsEncodableTrait {
|
443
|
+
static const bool value = false;
|
444
|
+
};
|
445
|
+
|
446
|
+
template <typename Trait>
|
447
|
+
struct IsEncodableTrait<Trait, absl::void_t<decltype(Trait::key())>> {
|
448
|
+
static const bool value = true;
|
449
|
+
};
|
450
|
+
|
451
|
+
// Helper type - maps a string name to a trait.
|
452
|
+
template <typename MustBeVoid, typename... Traits>
|
453
|
+
struct NameLookup;
|
454
|
+
|
455
|
+
template <typename Trait, typename... Traits>
|
456
|
+
struct NameLookup<absl::enable_if_t<IsEncodableTrait<Trait>::value, void>,
|
457
|
+
Trait, Traits...> {
|
458
|
+
// Call op->Found(Trait()) if op->name == Trait::key() for some Trait in
|
459
|
+
// Traits. If not found, call op->NotFound().
|
460
|
+
template <typename Op>
|
461
|
+
static auto Lookup(absl::string_view key, Op* op)
|
462
|
+
-> decltype(op->Found(Trait())) {
|
157
463
|
if (key == Trait::key()) {
|
158
|
-
return
|
159
|
-
Trait(), Trait::ParseMemento(value),
|
160
|
-
ParsedMetadata<Container>::TransportSize(key.size(),
|
161
|
-
GRPC_SLICE_LENGTH(value)));
|
464
|
+
return op->Found(Trait());
|
162
465
|
}
|
163
|
-
return
|
466
|
+
return NameLookup<void, Traits...>::Lookup(key, op);
|
467
|
+
}
|
468
|
+
};
|
469
|
+
|
470
|
+
template <typename Trait, typename... Traits>
|
471
|
+
struct NameLookup<absl::enable_if_t<!IsEncodableTrait<Trait>::value, void>,
|
472
|
+
Trait, Traits...> {
|
473
|
+
template <typename Op>
|
474
|
+
static auto Lookup(absl::string_view key, Op* op)
|
475
|
+
-> decltype(NameLookup<void, Traits...>::Lookup(key, op)) {
|
476
|
+
return NameLookup<void, Traits...>::Lookup(key, op);
|
477
|
+
}
|
478
|
+
};
|
479
|
+
|
480
|
+
template <>
|
481
|
+
struct NameLookup<void> {
|
482
|
+
template <typename Op>
|
483
|
+
static auto Lookup(absl::string_view key, Op* op)
|
484
|
+
-> decltype(op->NotFound(key)) {
|
485
|
+
return op->NotFound(key);
|
486
|
+
}
|
487
|
+
};
|
488
|
+
|
489
|
+
// Helper to take a slice to a memento to a value.
|
490
|
+
// By splitting this part out we can scale code size as the number of
|
491
|
+
// (memento, value) types, rather than as the number of traits.
|
492
|
+
template <typename ParseMementoFn, typename MementoToValueFn>
|
493
|
+
struct ParseValue {
|
494
|
+
template <ParseMementoFn parse_memento, MementoToValueFn memento_to_value>
|
495
|
+
static GPR_ATTRIBUTE_NOINLINE auto Parse(Slice* value,
|
496
|
+
MetadataParseErrorFn on_error)
|
497
|
+
-> decltype(memento_to_value(parse_memento(std::move(*value),
|
498
|
+
on_error))) {
|
499
|
+
return memento_to_value(parse_memento(std::move(*value), on_error));
|
164
500
|
}
|
165
501
|
};
|
166
502
|
|
503
|
+
// This is an "Op" type for NameLookup.
|
504
|
+
// Used for MetadataMap::Parse, its Found/NotFound methods turn a slice into a
|
505
|
+
// ParsedMetadata object.
|
167
506
|
template <typename Container>
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
507
|
+
class ParseHelper {
|
508
|
+
public:
|
509
|
+
ParseHelper(Slice value, MetadataParseErrorFn on_error, size_t transport_size)
|
510
|
+
: value_(std::move(value)),
|
511
|
+
on_error_(on_error),
|
512
|
+
transport_size_(transport_size) {}
|
513
|
+
|
514
|
+
template <typename Trait>
|
515
|
+
GPR_ATTRIBUTE_NOINLINE ParsedMetadata<Container> Found(Trait trait) {
|
516
|
+
return ParsedMetadata<Container>(
|
517
|
+
trait,
|
518
|
+
ParseValueToMemento<typename Trait::MementoType, Trait::ParseMemento>(),
|
519
|
+
static_cast<uint32_t>(transport_size_));
|
520
|
+
}
|
521
|
+
|
522
|
+
GPR_ATTRIBUTE_NOINLINE ParsedMetadata<Container> NotFound(
|
523
|
+
absl::string_view key) {
|
524
|
+
return ParsedMetadata<Container>(Slice::FromCopiedString(key),
|
525
|
+
std::move(value_));
|
173
526
|
}
|
527
|
+
|
528
|
+
private:
|
529
|
+
template <typename T, T (*parse_memento)(Slice, MetadataParseErrorFn)>
|
530
|
+
GPR_ATTRIBUTE_NOINLINE T ParseValueToMemento() {
|
531
|
+
return parse_memento(std::move(value_), on_error_);
|
532
|
+
}
|
533
|
+
|
534
|
+
Slice value_;
|
535
|
+
MetadataParseErrorFn on_error_;
|
536
|
+
const size_t transport_size_;
|
174
537
|
};
|
175
538
|
|
176
|
-
//
|
177
|
-
//
|
178
|
-
// a
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
template <typename
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
}
|
193
|
-
AppendHelper<Container, Traits...>::Append(container, key, value,
|
194
|
-
not_found);
|
539
|
+
// This is an "Op" type for NameLookup.
|
540
|
+
// Used for MetadataMap::Append, its Found/NotFound methods turn a slice into
|
541
|
+
// a value and add it to a container.
|
542
|
+
template <typename Container>
|
543
|
+
class AppendHelper {
|
544
|
+
public:
|
545
|
+
AppendHelper(Container* container, Slice value, MetadataParseErrorFn on_error)
|
546
|
+
: container_(container), value_(std::move(value)), on_error_(on_error) {}
|
547
|
+
|
548
|
+
template <typename Trait>
|
549
|
+
GPR_ATTRIBUTE_NOINLINE void Found(Trait trait) {
|
550
|
+
container_->Set(
|
551
|
+
trait, ParseValue<decltype(Trait::ParseMemento),
|
552
|
+
decltype(Trait::MementoToValue)>::
|
553
|
+
template Parse<Trait::ParseMemento, Trait::MementoToValue>(
|
554
|
+
&value_, on_error_));
|
195
555
|
}
|
556
|
+
|
557
|
+
GPR_ATTRIBUTE_NOINLINE void NotFound(absl::string_view key) {
|
558
|
+
container_->unknown_.Append(key, std::move(value_));
|
559
|
+
}
|
560
|
+
|
561
|
+
private:
|
562
|
+
Container* const container_;
|
563
|
+
Slice value_;
|
564
|
+
MetadataParseErrorFn on_error_;
|
196
565
|
};
|
197
566
|
|
567
|
+
// This is an "Op" type for NameLookup.
|
568
|
+
// Used for MetadataMap::Remove, its Found/NotFound methods remove a key from
|
569
|
+
// the container.
|
198
570
|
template <typename Container>
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
571
|
+
class RemoveHelper {
|
572
|
+
public:
|
573
|
+
explicit RemoveHelper(Container* container) : container_(container) {}
|
574
|
+
|
575
|
+
template <typename Trait>
|
576
|
+
GPR_ATTRIBUTE_NOINLINE void Found(Trait trait) {
|
577
|
+
container_->Remove(trait);
|
204
578
|
}
|
579
|
+
|
580
|
+
GPR_ATTRIBUTE_NOINLINE void NotFound(absl::string_view key) {
|
581
|
+
container_->unknown_.Remove(key);
|
582
|
+
}
|
583
|
+
|
584
|
+
private:
|
585
|
+
Container* const container_;
|
586
|
+
};
|
587
|
+
|
588
|
+
// This is an "Op" type for NameLookup.
|
589
|
+
// Used for MetadataMap::GetStringValue, its Found/NotFound methods generated
|
590
|
+
// a string value from the container.
|
591
|
+
template <typename Container>
|
592
|
+
class GetStringValueHelper {
|
593
|
+
public:
|
594
|
+
explicit GetStringValueHelper(const Container* container,
|
595
|
+
std::string* backing)
|
596
|
+
: container_(container), backing_(backing) {}
|
597
|
+
|
598
|
+
template <typename Trait>
|
599
|
+
GPR_ATTRIBUTE_NOINLINE absl::enable_if_t<
|
600
|
+
Trait::kRepeatable == false &&
|
601
|
+
std::is_same<Slice, typename Trait::ValueType>::value,
|
602
|
+
absl::optional<absl::string_view>>
|
603
|
+
Found(Trait) {
|
604
|
+
const auto* value = container_->get_pointer(Trait());
|
605
|
+
if (value == nullptr) return absl::nullopt;
|
606
|
+
return value->as_string_view();
|
607
|
+
}
|
608
|
+
|
609
|
+
template <typename Trait>
|
610
|
+
GPR_ATTRIBUTE_NOINLINE absl::enable_if_t<
|
611
|
+
Trait::kRepeatable == true &&
|
612
|
+
!std::is_same<Slice, typename Trait::ValueType>::value,
|
613
|
+
absl::optional<absl::string_view>>
|
614
|
+
Found(Trait) {
|
615
|
+
const auto* value = container_->get_pointer(Trait());
|
616
|
+
if (value == nullptr) return absl::nullopt;
|
617
|
+
backing_->clear();
|
618
|
+
for (const auto& v : *value) {
|
619
|
+
if (!backing_->empty()) backing_->push_back(',');
|
620
|
+
auto new_segment = Trait::Encode(v);
|
621
|
+
backing_->append(new_segment.begin(), new_segment.end());
|
622
|
+
}
|
623
|
+
return *backing_;
|
624
|
+
}
|
625
|
+
|
626
|
+
template <typename Trait>
|
627
|
+
GPR_ATTRIBUTE_NOINLINE absl::enable_if_t<
|
628
|
+
Trait::kRepeatable == false &&
|
629
|
+
!std::is_same<Slice, typename Trait::ValueType>::value,
|
630
|
+
absl::optional<absl::string_view>>
|
631
|
+
Found(Trait) {
|
632
|
+
const auto* value = container_->get_pointer(Trait());
|
633
|
+
if (value == nullptr) return absl::nullopt;
|
634
|
+
*backing_ = std::string(Trait::Encode(*value).as_string_view());
|
635
|
+
return *backing_;
|
636
|
+
}
|
637
|
+
|
638
|
+
GPR_ATTRIBUTE_NOINLINE absl::optional<absl::string_view> NotFound(
|
639
|
+
absl::string_view key) {
|
640
|
+
return container_->unknown_.GetStringValue(key, backing_);
|
641
|
+
}
|
642
|
+
|
643
|
+
private:
|
644
|
+
const Container* const container_;
|
645
|
+
std::string* backing_;
|
646
|
+
};
|
647
|
+
|
648
|
+
// Sink for key value logs
|
649
|
+
using LogFn = absl::FunctionRef<void(absl::string_view, absl::string_view)>;
|
650
|
+
|
651
|
+
template <typename T>
|
652
|
+
struct AdaptDisplayValueToLog {
|
653
|
+
static std::string ToString(const T& value) { return std::to_string(value); }
|
654
|
+
};
|
655
|
+
|
656
|
+
template <>
|
657
|
+
struct AdaptDisplayValueToLog<std::string> {
|
658
|
+
static std::string ToString(const std::string& value) { return value; }
|
659
|
+
};
|
660
|
+
|
661
|
+
template <>
|
662
|
+
struct AdaptDisplayValueToLog<const std::string&> {
|
663
|
+
static std::string ToString(const std::string& value) { return value; }
|
664
|
+
};
|
665
|
+
|
666
|
+
template <>
|
667
|
+
struct AdaptDisplayValueToLog<absl::string_view> {
|
668
|
+
static std::string ToString(absl::string_view value) {
|
669
|
+
return std::string(value);
|
670
|
+
}
|
671
|
+
};
|
672
|
+
|
673
|
+
template <>
|
674
|
+
struct AdaptDisplayValueToLog<Slice> {
|
675
|
+
static std::string ToString(Slice value) {
|
676
|
+
return std::string(value.as_string_view());
|
677
|
+
}
|
678
|
+
};
|
679
|
+
|
680
|
+
template <>
|
681
|
+
struct AdaptDisplayValueToLog<StaticSlice> {
|
682
|
+
static absl::string_view ToString(StaticSlice value) {
|
683
|
+
return value.as_string_view();
|
684
|
+
}
|
685
|
+
};
|
686
|
+
|
687
|
+
template <typename T, typename U, typename V>
|
688
|
+
GPR_ATTRIBUTE_NOINLINE void LogKeyValueTo(absl::string_view key, const T& value,
|
689
|
+
V (*display_value)(U), LogFn log_fn) {
|
690
|
+
log_fn(key, AdaptDisplayValueToLog<V>::ToString(display_value(value)));
|
691
|
+
}
|
692
|
+
|
693
|
+
// Generate a strong type for metadata values per trait.
|
694
|
+
template <typename Which, typename Ignored = void>
|
695
|
+
struct Value;
|
696
|
+
|
697
|
+
template <typename Which>
|
698
|
+
struct Value<Which, absl::enable_if_t<Which::kRepeatable == false &&
|
699
|
+
IsEncodableTrait<Which>::value,
|
700
|
+
void>> {
|
701
|
+
Value() = default;
|
702
|
+
explicit Value(const typename Which::ValueType& value) : value(value) {}
|
703
|
+
explicit Value(typename Which::ValueType&& value)
|
704
|
+
: value(std::forward<typename Which::ValueType>(value)) {}
|
705
|
+
Value(const Value&) = delete;
|
706
|
+
Value& operator=(const Value&) = delete;
|
707
|
+
Value(Value&&) noexcept = default;
|
708
|
+
Value& operator=(Value&& other) noexcept {
|
709
|
+
value = std::move(other.value);
|
710
|
+
return *this;
|
711
|
+
}
|
712
|
+
template <typename Encoder>
|
713
|
+
void EncodeTo(Encoder* encoder) const {
|
714
|
+
encoder->Encode(Which(), value);
|
715
|
+
}
|
716
|
+
template <typename Encoder>
|
717
|
+
void VisitWith(Encoder* encoder) const {
|
718
|
+
return EncodeTo(encoder);
|
719
|
+
}
|
720
|
+
void LogTo(LogFn log_fn) const {
|
721
|
+
LogKeyValueTo(Which::key(), value, Which::Encode, log_fn);
|
722
|
+
}
|
723
|
+
using StorageType = typename Which::ValueType;
|
724
|
+
GPR_NO_UNIQUE_ADDRESS StorageType value;
|
725
|
+
};
|
726
|
+
|
727
|
+
template <typename Which>
|
728
|
+
struct Value<Which, absl::enable_if_t<Which::kRepeatable == false &&
|
729
|
+
!IsEncodableTrait<Which>::value,
|
730
|
+
void>> {
|
731
|
+
Value() = default;
|
732
|
+
explicit Value(const typename Which::ValueType& value) : value(value) {}
|
733
|
+
explicit Value(typename Which::ValueType&& value)
|
734
|
+
: value(std::forward<typename Which::ValueType>(value)) {}
|
735
|
+
Value(const Value&) = delete;
|
736
|
+
Value& operator=(const Value&) = delete;
|
737
|
+
Value(Value&&) noexcept = default;
|
738
|
+
Value& operator=(Value&& other) noexcept {
|
739
|
+
value = std::move(other.value);
|
740
|
+
return *this;
|
741
|
+
}
|
742
|
+
template <typename Encoder>
|
743
|
+
void EncodeTo(Encoder*) const {}
|
744
|
+
template <typename Encoder>
|
745
|
+
void VisitWith(Encoder* encoder) const {
|
746
|
+
encoder->Encode(Which(), value);
|
747
|
+
}
|
748
|
+
void LogTo(LogFn log_fn) const {
|
749
|
+
LogKeyValueTo(Which::DebugKey(), value, Which::DisplayValue, log_fn);
|
750
|
+
}
|
751
|
+
using StorageType = typename Which::ValueType;
|
752
|
+
GPR_NO_UNIQUE_ADDRESS StorageType value;
|
753
|
+
};
|
754
|
+
|
755
|
+
template <typename Which>
|
756
|
+
struct Value<Which, absl::enable_if_t<Which::kRepeatable == true &&
|
757
|
+
IsEncodableTrait<Which>::value,
|
758
|
+
void>> {
|
759
|
+
Value() = default;
|
760
|
+
explicit Value(const typename Which::ValueType& value) {
|
761
|
+
this->value.push_back(value);
|
762
|
+
}
|
763
|
+
explicit Value(typename Which::ValueType&& value) {
|
764
|
+
this->value.emplace_back(std::forward<typename Which::ValueType>(value));
|
765
|
+
}
|
766
|
+
Value(const Value&) = delete;
|
767
|
+
Value& operator=(const Value&) = delete;
|
768
|
+
Value(Value&& other) noexcept : value(std::move(other.value)) {}
|
769
|
+
Value& operator=(Value&& other) noexcept {
|
770
|
+
value = std::move(other.value);
|
771
|
+
return *this;
|
772
|
+
}
|
773
|
+
template <typename Encoder>
|
774
|
+
void EncodeTo(Encoder* encoder) const {
|
775
|
+
for (const auto& v : value) {
|
776
|
+
encoder->Encode(Which(), v);
|
777
|
+
}
|
778
|
+
}
|
779
|
+
template <typename Encoder>
|
780
|
+
void VisitWith(Encoder* encoder) const {
|
781
|
+
return EncodeTo(encoder);
|
782
|
+
}
|
783
|
+
void LogTo(LogFn log_fn) const {
|
784
|
+
for (const auto& v : value) {
|
785
|
+
LogKeyValueTo(Which::key(), v, Which::Encode, log_fn);
|
786
|
+
}
|
787
|
+
}
|
788
|
+
using StorageType = absl::InlinedVector<typename Which::ValueType, 1>;
|
789
|
+
StorageType value;
|
790
|
+
};
|
791
|
+
|
792
|
+
template <typename Which>
|
793
|
+
struct Value<Which, absl::enable_if_t<Which::kRepeatable == true &&
|
794
|
+
!IsEncodableTrait<Which>::value,
|
795
|
+
void>> {
|
796
|
+
Value() = default;
|
797
|
+
explicit Value(const typename Which::ValueType& value) {
|
798
|
+
this->value.push_back(value);
|
799
|
+
}
|
800
|
+
explicit Value(typename Which::ValueType&& value) {
|
801
|
+
this->value.emplace_back(std::forward<typename Which::ValueType>(value));
|
802
|
+
}
|
803
|
+
Value(const Value&) = delete;
|
804
|
+
Value& operator=(const Value&) = delete;
|
805
|
+
Value(Value&& other) noexcept : value(std::move(other.value)) {}
|
806
|
+
Value& operator=(Value&& other) noexcept {
|
807
|
+
value = std::move(other.value);
|
808
|
+
return *this;
|
809
|
+
}
|
810
|
+
template <typename Encoder>
|
811
|
+
void EncodeTo(Encoder*) const {}
|
812
|
+
template <typename Encoder>
|
813
|
+
void VisitWith(Encoder* encoder) const {
|
814
|
+
for (const auto& v : value) {
|
815
|
+
encoder->Encode(Which(), v);
|
816
|
+
}
|
817
|
+
}
|
818
|
+
void LogTo(LogFn log_fn) const {
|
819
|
+
for (const auto& v : value) {
|
820
|
+
LogKeyValueTo(Which::DebugKey(), v, Which::DisplayValue, log_fn);
|
821
|
+
}
|
822
|
+
}
|
823
|
+
using StorageType = absl::InlinedVector<typename Which::ValueType, 1>;
|
824
|
+
StorageType value;
|
825
|
+
};
|
826
|
+
|
827
|
+
// Encoder to copy some metadata
|
828
|
+
template <typename Output>
|
829
|
+
class CopySink {
|
830
|
+
public:
|
831
|
+
explicit CopySink(Output* dst) : dst_(dst) {}
|
832
|
+
|
833
|
+
template <class T, class V>
|
834
|
+
void Encode(T trait, V value) {
|
835
|
+
dst_->Set(trait, value);
|
836
|
+
}
|
837
|
+
|
838
|
+
template <class T>
|
839
|
+
void Encode(T trait, const Slice& value) {
|
840
|
+
dst_->Set(trait, std::move(value.AsOwned()));
|
841
|
+
}
|
842
|
+
|
843
|
+
void Encode(const Slice& key, const Slice& value) {
|
844
|
+
dst_->unknown_.Append(key.as_string_view(), value.Ref());
|
845
|
+
}
|
846
|
+
|
847
|
+
private:
|
848
|
+
Output* dst_;
|
849
|
+
};
|
850
|
+
|
851
|
+
// Callable for the ForEach in Encode() -- for each value, call the
|
852
|
+
// appropriate encoder method.
|
853
|
+
template <typename Encoder>
|
854
|
+
struct EncodeWrapper {
|
855
|
+
Encoder* encoder;
|
856
|
+
template <typename Which>
|
857
|
+
void operator()(const Value<Which>& which) {
|
858
|
+
which.EncodeTo(encoder);
|
859
|
+
}
|
860
|
+
};
|
861
|
+
|
862
|
+
// Callable for the table ForEach in ForEach() -- for each value, call the
|
863
|
+
// appropriate visitor method.
|
864
|
+
template <typename Encoder>
|
865
|
+
struct ForEachWrapper {
|
866
|
+
Encoder* encoder;
|
867
|
+
template <typename Which>
|
868
|
+
void operator()(const Value<Which>& which) {
|
869
|
+
which.VisitWith(encoder);
|
870
|
+
}
|
871
|
+
};
|
872
|
+
|
873
|
+
// Callable for the ForEach in Log()
|
874
|
+
struct LogWrapper {
|
875
|
+
LogFn log_fn;
|
876
|
+
template <typename Which>
|
877
|
+
void operator()(const Value<Which>& which) {
|
878
|
+
which.LogTo(log_fn);
|
879
|
+
}
|
880
|
+
};
|
881
|
+
|
882
|
+
// Encoder to compute TransportSize
|
883
|
+
class TransportSizeEncoder {
|
884
|
+
public:
|
885
|
+
void Encode(const Slice& key, const Slice& value) {
|
886
|
+
size_ += key.length() + value.length() + 32;
|
887
|
+
}
|
888
|
+
|
889
|
+
template <typename Which>
|
890
|
+
void Encode(Which, const typename Which::ValueType& value) {
|
891
|
+
Add(Which(), value);
|
892
|
+
}
|
893
|
+
|
894
|
+
void Encode(ContentTypeMetadata,
|
895
|
+
const typename ContentTypeMetadata::ValueType& value) {
|
896
|
+
if (value == ContentTypeMetadata::kInvalid) return;
|
897
|
+
Add(ContentTypeMetadata(), value);
|
898
|
+
}
|
899
|
+
|
900
|
+
size_t size() const { return size_; }
|
901
|
+
|
902
|
+
private:
|
903
|
+
template <typename Which>
|
904
|
+
void Add(Which, const typename Which::ValueType& value) {
|
905
|
+
size_ += Which::key().length() + Which::Encode(value).length() + 32;
|
906
|
+
}
|
907
|
+
|
908
|
+
uint32_t size_ = 0;
|
909
|
+
};
|
910
|
+
|
911
|
+
// Handle unknown (non-trait-based) fields in the metadata map.
|
912
|
+
class UnknownMap {
|
913
|
+
public:
|
914
|
+
explicit UnknownMap(Arena* arena) : unknown_(arena) {}
|
915
|
+
|
916
|
+
using BackingType = ChunkedVector<std::pair<Slice, Slice>, 10>;
|
917
|
+
|
918
|
+
void Append(absl::string_view key, Slice value);
|
919
|
+
void Remove(absl::string_view key);
|
920
|
+
absl::optional<absl::string_view> GetStringValue(absl::string_view key,
|
921
|
+
std::string* backing) const;
|
922
|
+
|
923
|
+
BackingType::ConstForwardIterator begin() const { return unknown_.cbegin(); }
|
924
|
+
BackingType::ConstForwardIterator end() const { return unknown_.cend(); }
|
925
|
+
|
926
|
+
bool empty() const { return unknown_.empty(); }
|
927
|
+
size_t size() const { return unknown_.size(); }
|
928
|
+
void Clear() { unknown_.Clear(); }
|
929
|
+
Arena* arena() const { return unknown_.arena(); }
|
930
|
+
|
931
|
+
private:
|
932
|
+
// Backing store for added metadata.
|
933
|
+
ChunkedVector<std::pair<Slice, Slice>, 10> unknown_;
|
205
934
|
};
|
206
935
|
|
207
936
|
} // namespace metadata_detail
|
208
937
|
|
938
|
+
// Helper function for encoders
|
939
|
+
// Given a metadata trait, convert the value to a slice.
|
940
|
+
template <typename Which>
|
941
|
+
absl::enable_if_t<std::is_same<typename Which::ValueType, Slice>::value,
|
942
|
+
const Slice&>
|
943
|
+
MetadataValueAsSlice(const Slice& slice) {
|
944
|
+
return slice;
|
945
|
+
}
|
946
|
+
|
947
|
+
template <typename Which>
|
948
|
+
absl::enable_if_t<!std::is_same<typename Which::ValueType, Slice>::value, Slice>
|
949
|
+
MetadataValueAsSlice(typename Which::ValueType value) {
|
950
|
+
return Slice(Which::Encode(value));
|
951
|
+
}
|
952
|
+
|
209
953
|
// MetadataMap encodes the mapping of metadata keys to metadata values.
|
210
|
-
// Right now the API presented is the minimal one that will allow us to
|
211
|
-
// substitute this type for grpc_metadata_batch in a relatively easy fashion. At
|
212
|
-
// that point we'll start iterating this API into something that's ergonomic
|
213
|
-
// again, whilst minimally holding the performance bar already set (and
|
214
|
-
// hopefully improving some things).
|
215
|
-
// In the meantime, we're not going to invest much time in ephemeral API
|
216
|
-
// documentation, so if you must use one of these APIs and it's not obvious
|
217
|
-
// how, reach out to ctiller.
|
218
954
|
//
|
219
|
-
// MetadataMap takes a list of traits. Each of these trait
|
220
|
-
// one metadata field that is used by core, and so should have
|
221
|
-
// handling than just using the generic APIs.
|
955
|
+
// MetadataMap takes a derived class and list of traits. Each of these trait
|
956
|
+
// objects defines one metadata field that is used by core, and so should have
|
957
|
+
// more specialized handling than just using the generic APIs.
|
222
958
|
//
|
223
|
-
//
|
224
|
-
//
|
959
|
+
// MetadataMap is the backing type for some derived type via the curiously
|
960
|
+
// recursive template pattern. This is because many types consumed by
|
961
|
+
// MetadataMap require the container type to operate on, and many of those
|
962
|
+
// types are instantiated one per trait. A naive implementation without the
|
963
|
+
// Derived type would, for traits A,B,C, then instantiate for some
|
964
|
+
// T<Container, Trait>:
|
965
|
+
// - T<MetadataMap<A,B,C>, A>,
|
966
|
+
// - T<MetadataMap<A,B,C>, B>,
|
967
|
+
// - T<MetadataMap<A,B,C>, C>.
|
968
|
+
// Since these types ultimately need to be recorded in the .dynstr segment
|
969
|
+
// for dynamic linkers (if gRPC is linked as a static library) this would
|
970
|
+
// create O(N^2) bytes of symbols even in stripped libraries. To avoid this
|
971
|
+
// we use the derived type (e.g. grpc_metadata_batch right now) to capture
|
972
|
+
// the container type, and we would write T<grpc_metadata_batch, A>, etc...
|
973
|
+
// Note that now the container type uses a number of bytes that is independent
|
974
|
+
// of the number of traits, and so we return to a linear symbol table growth
|
975
|
+
// function.
|
976
|
+
//
|
977
|
+
// Each trait object has one of two possible signatures, depending on whether
|
978
|
+
// that traits field is encodable or not.
|
979
|
+
// Non-encodable traits are carried in a MetadataMap, but are never passed to
|
980
|
+
// the application nor serialized to wire.
|
981
|
+
//
|
982
|
+
// Encodable traits have the following signature:
|
983
|
+
// // Traits for the "grpc-xyz" metadata field:
|
225
984
|
// struct GrpcXyzMetadata {
|
985
|
+
// // Can this metadata field be repeated?
|
986
|
+
// static constexpr bool kRepeatable = ...;
|
226
987
|
// // The type that's stored on MetadataBatch
|
227
988
|
// using ValueType = ...;
|
228
989
|
// // The type that's stored in compression/decompression tables
|
229
990
|
// using MementoType = ...;
|
230
991
|
// // The string key for this metadata type (for transports that require it)
|
231
|
-
// static
|
992
|
+
// static absl::string_view key() { return "grpc-xyz"; }
|
232
993
|
// // Parse a memento from a slice
|
233
994
|
// // Takes ownership of value
|
234
|
-
//
|
995
|
+
// // Calls fn in the case of an error that should be reported to the user
|
996
|
+
// static MementoType ParseMemento(Slice value, MementoParseErrorFn fn) {
|
997
|
+
// ...
|
998
|
+
// }
|
235
999
|
// // Convert a memento to a value
|
236
1000
|
// static ValueType MementoToValue(MementoType memento) { ... }
|
237
1001
|
// // Convert a value to its canonical text wire format (the format that
|
238
1002
|
// // ParseMemento will accept!)
|
239
|
-
// static
|
240
|
-
// // Convert a value to something that can be passed to StrCat and
|
1003
|
+
// static Slice Encode(const ValueType& value);
|
1004
|
+
// // Convert a value to something that can be passed to StrCat and
|
1005
|
+
// displayed
|
241
1006
|
// // for debugging
|
242
1007
|
// static SomeStrCatableType DisplayValue(MementoType value) { ... }
|
243
1008
|
// };
|
244
1009
|
//
|
1010
|
+
// Non-encodable traits are determined by missing the key() method, and have
|
1011
|
+
// the following signature (and by convention omit the Metadata part of the
|
1012
|
+
// type name):
|
1013
|
+
// // Traits for the GrpcXyz field:
|
1014
|
+
// struct GrpcXyz {
|
1015
|
+
// // The string key that should be used for debug dumps - should not be a
|
1016
|
+
// // valid http2 key (ie all lower case)
|
1017
|
+
// static absl::string_view DebugKey() { return "GRPC_XYZ"; }
|
1018
|
+
// // Can this metadata field be repeated?
|
1019
|
+
// static constexpr bool kRepeatable = ...;
|
1020
|
+
// // The type that's stored on MetadataBatch
|
1021
|
+
// using ValueType = ...;
|
1022
|
+
// // Convert a value to something that can be passed to StrCat and
|
1023
|
+
// displayed
|
1024
|
+
// // for debugging
|
1025
|
+
// static SomeStrCatableType DisplayValue(ValueType value) { ... }
|
1026
|
+
// };
|
1027
|
+
//
|
245
1028
|
// About parsing and mementos:
|
246
1029
|
//
|
247
1030
|
// Many gRPC transports exchange metadata as key/value strings, but also allow
|
@@ -250,10 +1033,10 @@ struct AppendHelper<Container> {
|
|
250
1033
|
// in the compression table. This is what mementos are used for.
|
251
1034
|
//
|
252
1035
|
// A trait offers the capability to turn a slice into a memento via
|
253
|
-
// ParseMemento. This is exposed to users of MetadataMap via the Parse()
|
254
|
-
// that returns a ParsedMetadata object. That ParsedMetadata object
|
255
|
-
// be used to set the same value on many different MetadataMaps
|
256
|
-
// to reparse.
|
1036
|
+
// ParseMemento. This is exposed to users of MetadataMap via the Parse()
|
1037
|
+
// method, that returns a ParsedMetadata object. That ParsedMetadata object
|
1038
|
+
// can in turn be used to set the same value on many different MetadataMaps
|
1039
|
+
// without having to reparse.
|
257
1040
|
//
|
258
1041
|
// Implementation wise, ParsedMetadata is a type erased wrapper around
|
259
1042
|
// MementoType. When we set a value on MetadataMap, we first turn that memento
|
@@ -261,7 +1044,7 @@ struct AppendHelper<Container> {
|
|
261
1044
|
// for grpc-timeout we make the memento the timeout expressed on the wire, but
|
262
1045
|
// we make the value the timestamp of when the timeout will expire (i.e. the
|
263
1046
|
// deadline).
|
264
|
-
template <typename... Traits>
|
1047
|
+
template <class Derived, typename... Traits>
|
265
1048
|
class MetadataMap {
|
266
1049
|
public:
|
267
1050
|
explicit MetadataMap(Arena* arena);
|
@@ -270,7 +1053,10 @@ class MetadataMap {
|
|
270
1053
|
MetadataMap(const MetadataMap&) = delete;
|
271
1054
|
MetadataMap& operator=(const MetadataMap&) = delete;
|
272
1055
|
MetadataMap(MetadataMap&&) noexcept;
|
273
|
-
|
1056
|
+
// We never create MetadataMap directly, instead we create Derived, but we
|
1057
|
+
// want to be able to move it without redeclaring this.
|
1058
|
+
// NOLINTNEXTLINE(misc-unconventional-assign-operator)
|
1059
|
+
Derived& operator=(MetadataMap&&) noexcept;
|
274
1060
|
|
275
1061
|
// Encode this metadata map into some encoder.
|
276
1062
|
// For each field that is set in the MetadataMap, call
|
@@ -281,23 +1067,49 @@ class MetadataMap {
|
|
281
1067
|
// void Encode(TraitsType, typename TraitsType::ValueType value);
|
282
1068
|
// For fields for which we do not have traits, this will be a method
|
283
1069
|
// with the signature:
|
284
|
-
// void Encode(
|
285
|
-
// TODO(ctiller): It's expected that the latter Encode method will
|
286
|
-
// become Encode(Slice, Slice) by the end of the current metadata API
|
287
|
-
// transitions.
|
1070
|
+
// void Encode(string_view key, Slice value);
|
288
1071
|
template <typename Encoder>
|
289
1072
|
void Encode(Encoder* encoder) const {
|
290
|
-
|
291
|
-
|
1073
|
+
table_.template ForEachIn<metadata_detail::EncodeWrapper<Encoder>,
|
1074
|
+
Value<Traits>...>(
|
1075
|
+
metadata_detail::EncodeWrapper<Encoder>{encoder});
|
1076
|
+
for (const auto& unk : unknown_) {
|
1077
|
+
encoder->Encode(unk.first, unk.second);
|
292
1078
|
}
|
293
|
-
|
1079
|
+
}
|
1080
|
+
|
1081
|
+
// Like Encode, but also visit the non-encodable fields.
|
1082
|
+
template <typename Encoder>
|
1083
|
+
void ForEach(Encoder* encoder) const {
|
1084
|
+
table_.ForEach(metadata_detail::ForEachWrapper<Encoder>{encoder});
|
1085
|
+
for (const auto& unk : unknown_) {
|
1086
|
+
encoder->Encode(unk.first, unk.second);
|
1087
|
+
}
|
1088
|
+
}
|
1089
|
+
|
1090
|
+
// Similar to Encode, but targeted at logging: for each metadatum,
|
1091
|
+
// call f(key, value) as absl::string_views.
|
1092
|
+
void Log(metadata_detail::LogFn log_fn) const {
|
1093
|
+
table_.ForEach(metadata_detail::LogWrapper{log_fn});
|
1094
|
+
for (const auto& unk : unknown_) {
|
1095
|
+
log_fn(unk.first.as_string_view(), unk.second.as_string_view());
|
1096
|
+
}
|
1097
|
+
}
|
1098
|
+
|
1099
|
+
std::string DebugString() const {
|
1100
|
+
metadata_detail::DebugStringBuilder builder;
|
1101
|
+
Log([&builder](absl::string_view key, absl::string_view value) {
|
1102
|
+
builder.Add(key, value);
|
1103
|
+
});
|
1104
|
+
return builder.TakeOutput();
|
294
1105
|
}
|
295
1106
|
|
296
1107
|
// Get the pointer to the value of some known metadata.
|
297
1108
|
// Returns nullptr if the metadata is not present.
|
298
1109
|
// Causes a compilation error if Which is not an element of Traits.
|
299
1110
|
template <typename Which>
|
300
|
-
const typename Which
|
1111
|
+
const typename metadata_detail::Value<Which>::StorageType* get_pointer(
|
1112
|
+
Which) const {
|
301
1113
|
if (auto* p = table_.template get<Value<Which>>()) return &p->value;
|
302
1114
|
return nullptr;
|
303
1115
|
}
|
@@ -306,11 +1118,20 @@ class MetadataMap {
|
|
306
1118
|
// Returns nullptr if the metadata is not present.
|
307
1119
|
// Causes a compilation error if Which is not an element of Traits.
|
308
1120
|
template <typename Which>
|
309
|
-
typename Which
|
1121
|
+
typename metadata_detail::Value<Which>::StorageType* get_pointer(Which) {
|
310
1122
|
if (auto* p = table_.template get<Value<Which>>()) return &p->value;
|
311
1123
|
return nullptr;
|
312
1124
|
}
|
313
1125
|
|
1126
|
+
// Get the pointer to the value of some known metadata.
|
1127
|
+
// Adds the default value for the metadata is not present.
|
1128
|
+
// Causes a compilation error if Which is not an element of Traits.
|
1129
|
+
template <typename Which>
|
1130
|
+
typename metadata_detail::Value<Which>::StorageType* GetOrCreatePointer(
|
1131
|
+
Which) {
|
1132
|
+
return &table_.template get_or_create<Value<Which>>()->value;
|
1133
|
+
}
|
1134
|
+
|
314
1135
|
// Get the value of some known metadata.
|
315
1136
|
// Returns nullopt if the metadata is not present.
|
316
1137
|
// Causes a compilation error if Which is not an element of Traits.
|
@@ -323,9 +1144,14 @@ class MetadataMap {
|
|
323
1144
|
// Set the value of some known metadata.
|
324
1145
|
// Returns a pointer to the new value.
|
325
1146
|
template <typename Which, typename... Args>
|
326
|
-
|
327
|
-
|
328
|
-
|
1147
|
+
absl::enable_if_t<Which::kRepeatable == false, void> Set(Which,
|
1148
|
+
Args&&... args) {
|
1149
|
+
table_.template set<Value<Which>>(std::forward<Args>(args)...);
|
1150
|
+
}
|
1151
|
+
template <typename Which, typename... Args>
|
1152
|
+
absl::enable_if_t<Which::kRepeatable == true, void> Set(Which,
|
1153
|
+
Args&&... args) {
|
1154
|
+
GetOrCreatePointer(Which())->emplace_back(std::forward<Args>(args)...);
|
329
1155
|
}
|
330
1156
|
|
331
1157
|
// Remove a specific piece of known metadata.
|
@@ -334,722 +1160,177 @@ class MetadataMap {
|
|
334
1160
|
table_.template clear<Value<Which>>();
|
335
1161
|
}
|
336
1162
|
|
1163
|
+
// Remove some metadata by name
|
1164
|
+
void Remove(absl::string_view key) {
|
1165
|
+
metadata_detail::RemoveHelper<Derived> helper(static_cast<Derived*>(this));
|
1166
|
+
metadata_detail::NameLookup<void, Traits...>::Lookup(key, &helper);
|
1167
|
+
}
|
1168
|
+
|
1169
|
+
void Remove(const char* key) { Remove(absl::string_view(key)); }
|
1170
|
+
|
1171
|
+
// Retrieve some metadata by name
|
1172
|
+
absl::optional<absl::string_view> GetStringValue(absl::string_view name,
|
1173
|
+
std::string* buffer) const {
|
1174
|
+
metadata_detail::GetStringValueHelper<Derived> helper(
|
1175
|
+
static_cast<const Derived*>(this), buffer);
|
1176
|
+
return metadata_detail::NameLookup<void, Traits...>::Lookup(name, &helper);
|
1177
|
+
}
|
1178
|
+
|
337
1179
|
// Extract a piece of known metadata.
|
338
1180
|
// Returns nullopt if the metadata was not present, or the value if it was.
|
339
1181
|
// The same as:
|
340
1182
|
// auto value = m.get(T());
|
341
1183
|
// m.Remove(T());
|
342
1184
|
template <typename Which>
|
343
|
-
absl::
|
344
|
-
|
345
|
-
|
346
|
-
|
1185
|
+
absl::enable_if_t<Which::kRepeatable == false,
|
1186
|
+
absl::optional<typename Which::ValueType>>
|
1187
|
+
Take(Which which) {
|
1188
|
+
if (auto* p = get_pointer(which)) {
|
1189
|
+
absl::optional<typename Which::ValueType> value(std::move(*p));
|
1190
|
+
Remove(which);
|
1191
|
+
return value;
|
1192
|
+
}
|
1193
|
+
return {};
|
1194
|
+
}
|
1195
|
+
|
1196
|
+
// Extract repeated known metadata.
|
1197
|
+
// Returns an empty vector if the metadata was not present.
|
1198
|
+
template <typename Which>
|
1199
|
+
absl::enable_if_t<Which::kRepeatable == true,
|
1200
|
+
typename metadata_detail::Value<Which>::StorageType>
|
1201
|
+
Take(Which which) {
|
1202
|
+
if (auto* p = get_pointer(which)) {
|
1203
|
+
typename Value<Which>::StorageType value = std::move(*p);
|
1204
|
+
Remove(which);
|
1205
|
+
return value;
|
1206
|
+
}
|
1207
|
+
return {};
|
347
1208
|
}
|
348
1209
|
|
349
1210
|
// Parse metadata from a key/value pair, and return an object representing
|
350
1211
|
// that result.
|
351
1212
|
// TODO(ctiller): key should probably be an absl::string_view.
|
352
1213
|
// Once we don't care about interning anymore, make that change!
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
parsed = false;
|
360
|
-
return ParsedMetadata<MetadataMap>(
|
361
|
-
grpc_mdelem_from_slices(key, value));
|
362
|
-
});
|
363
|
-
if (parsed) {
|
364
|
-
grpc_slice_unref_internal(key);
|
365
|
-
}
|
366
|
-
return out;
|
1214
|
+
static ParsedMetadata<Derived> Parse(absl::string_view key, Slice value,
|
1215
|
+
uint32_t transport_size,
|
1216
|
+
MetadataParseErrorFn on_error) {
|
1217
|
+
metadata_detail::ParseHelper<Derived> helper(value.TakeOwned(), on_error,
|
1218
|
+
transport_size);
|
1219
|
+
return metadata_detail::NameLookup<void, Traits...>::Lookup(key, &helper);
|
367
1220
|
}
|
368
1221
|
|
369
1222
|
// Set a value from a parsed metadata object.
|
370
|
-
|
371
|
-
|
372
|
-
return m.SetOnContainer(this);
|
1223
|
+
void Set(const ParsedMetadata<Derived>& m) {
|
1224
|
+
m.SetOnContainer(static_cast<Derived*>(this));
|
373
1225
|
}
|
374
1226
|
|
375
1227
|
// Append a key/value pair - takes ownership of value
|
376
|
-
void Append(absl::string_view key,
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
grpc_slice_intern(grpc_slice_from_static_buffer(
|
382
|
-
key.data(), key.length())),
|
383
|
-
value)));
|
384
|
-
});
|
385
|
-
}
|
386
|
-
|
387
|
-
//
|
388
|
-
// All APIs below this point are subject to change.
|
389
|
-
//
|
390
|
-
|
391
|
-
template <typename F>
|
392
|
-
void ForEach(F f) const {
|
393
|
-
for (auto* l = list_.head; l; l = l->next) {
|
394
|
-
f(l->md);
|
395
|
-
}
|
396
|
-
}
|
397
|
-
|
398
|
-
template <typename F>
|
399
|
-
grpc_error_handle Filter(F f, const char* composite_error_string) {
|
400
|
-
grpc_linked_mdelem* l = list_.head;
|
401
|
-
grpc_error_handle error = GRPC_ERROR_NONE;
|
402
|
-
auto add_error = [&](grpc_error_handle new_error) {
|
403
|
-
if (new_error == GRPC_ERROR_NONE) return;
|
404
|
-
if (error == GRPC_ERROR_NONE) {
|
405
|
-
error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(composite_error_string);
|
406
|
-
}
|
407
|
-
error = grpc_error_add_child(error, new_error);
|
408
|
-
};
|
409
|
-
while (l) {
|
410
|
-
grpc_linked_mdelem* next = l->next;
|
411
|
-
grpc_filtered_mdelem new_mdelem = f(l->md);
|
412
|
-
add_error(new_mdelem.error);
|
413
|
-
if (GRPC_MDISNULL(new_mdelem.md)) {
|
414
|
-
Remove(l);
|
415
|
-
} else if (new_mdelem.md.payload != l->md.payload) {
|
416
|
-
add_error(Substitute(l, new_mdelem.md));
|
417
|
-
}
|
418
|
-
l = next;
|
419
|
-
}
|
420
|
-
return error;
|
421
|
-
}
|
422
|
-
|
423
|
-
GRPC_MUST_USE_RESULT grpc_error_handle Append(grpc_mdelem md) {
|
424
|
-
return AddTail(elem_storage_.EmplaceBack(), md);
|
425
|
-
}
|
426
|
-
|
427
|
-
GRPC_MUST_USE_RESULT grpc_error_handle ReplaceOrAppend(grpc_slice key,
|
428
|
-
grpc_slice value) {
|
429
|
-
if (ReplaceIfExists(key, value)) return GRPC_ERROR_NONE;
|
430
|
-
return Append(grpc_mdelem_from_slices(key, value));
|
1228
|
+
void Append(absl::string_view key, Slice value,
|
1229
|
+
MetadataParseErrorFn on_error) {
|
1230
|
+
metadata_detail::AppendHelper<Derived> helper(static_cast<Derived*>(this),
|
1231
|
+
value.TakeOwned(), on_error);
|
1232
|
+
metadata_detail::NameLookup<void, Traits...>::Lookup(key, &helper);
|
431
1233
|
}
|
432
1234
|
|
433
|
-
// Set key to value if it exists and return true, otherwise return false.
|
434
|
-
// If this function returns true, it takes ownership of key and value.
|
435
|
-
// If this function returns false, it does not take ownership of key nor
|
436
|
-
// value.
|
437
|
-
bool ReplaceIfExists(grpc_slice key, grpc_slice value);
|
438
|
-
|
439
1235
|
void Clear();
|
440
|
-
bool empty() const { return count() == 0; }
|
441
|
-
|
442
|
-
size_t count() const { return list_.count + table_.count(); }
|
443
|
-
size_t non_deadline_count() const { return list_.count; }
|
444
|
-
size_t default_count() const { return list_.default_count; }
|
445
|
-
|
446
1236
|
size_t TransportSize() const;
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
absl::optional<grpc_slice> Remove(grpc_slice key);
|
452
|
-
|
453
|
-
grpc_error_handle Substitute(grpc_linked_mdelem* storage,
|
454
|
-
grpc_mdelem new_mdelem);
|
455
|
-
|
456
|
-
absl::optional<absl::string_view> GetValue(
|
457
|
-
absl::string_view target_key, std::string* concatenated_value) const;
|
458
|
-
|
459
|
-
grpc_error_handle LinkHead(grpc_linked_mdelem* storage) GRPC_MUST_USE_RESULT;
|
460
|
-
grpc_error_handle LinkHead(grpc_linked_mdelem* storage,
|
461
|
-
grpc_metadata_batch_callouts_index idx)
|
462
|
-
GRPC_MUST_USE_RESULT;
|
463
|
-
grpc_error_handle LinkTail(grpc_linked_mdelem* storage) GRPC_MUST_USE_RESULT;
|
464
|
-
grpc_error_handle LinkTail(grpc_linked_mdelem* storage,
|
465
|
-
grpc_metadata_batch_callouts_index idx)
|
466
|
-
GRPC_MUST_USE_RESULT;
|
467
|
-
|
468
|
-
grpc_error_handle AddHead(grpc_linked_mdelem* storage) GRPC_MUST_USE_RESULT;
|
469
|
-
grpc_error_handle AddHead(grpc_linked_mdelem* storage,
|
470
|
-
grpc_mdelem elem_to_add) GRPC_MUST_USE_RESULT;
|
471
|
-
grpc_error_handle AddTail(grpc_linked_mdelem* storage) GRPC_MUST_USE_RESULT;
|
472
|
-
grpc_error_handle AddTail(grpc_linked_mdelem* storage,
|
473
|
-
grpc_mdelem elem_to_add) GRPC_MUST_USE_RESULT;
|
474
|
-
|
475
|
-
void CopyFrom(MetadataMap* src, grpc_linked_mdelem* storage);
|
476
|
-
|
477
|
-
#ifndef NDEBUG
|
478
|
-
void AssertOk();
|
479
|
-
#else
|
480
|
-
void AssertOk() {}
|
481
|
-
#endif
|
482
|
-
|
483
|
-
// TODO(ctiller): the following explicit deadline handling methods are
|
484
|
-
// deprecated in terms of the traits based APIs.
|
485
|
-
grpc_millis deadline() const {
|
486
|
-
return get(GrpcTimeoutMetadata()).value_or(GRPC_MILLIS_INF_FUTURE);
|
487
|
-
};
|
488
|
-
|
489
|
-
const grpc_metadata_batch_callouts* legacy_index() const { return &idx_; }
|
1237
|
+
Derived Copy() const;
|
1238
|
+
bool empty() const { return table_.empty() && unknown_.empty(); }
|
1239
|
+
size_t count() const { return table_.count() + unknown_.size(); }
|
490
1240
|
|
491
1241
|
private:
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
Value(const Value&) = default;
|
498
|
-
Value& operator=(const Value&) = default;
|
499
|
-
Value(Value&&) noexcept = default;
|
500
|
-
Value& operator=(Value&&) noexcept = default;
|
501
|
-
GPR_NO_UNIQUE_ADDRESS typename Which::ValueType value;
|
502
|
-
};
|
503
|
-
// Callable for the ForEach in Encode() -- for each value, call the
|
504
|
-
// appropriate encoder method.
|
505
|
-
template <typename Encoder>
|
506
|
-
struct EncodeWrapper {
|
507
|
-
Encoder* encoder;
|
508
|
-
template <typename Which>
|
509
|
-
void operator()(const Value<Which>& which) {
|
510
|
-
encoder->Encode(Which(), which.value);
|
511
|
-
}
|
512
|
-
};
|
513
|
-
|
514
|
-
void AssertValidCallouts();
|
515
|
-
grpc_error_handle LinkCallout(grpc_linked_mdelem* storage,
|
516
|
-
grpc_metadata_batch_callouts_index idx)
|
517
|
-
GRPC_MUST_USE_RESULT;
|
518
|
-
grpc_error_handle MaybeLinkCallout(grpc_linked_mdelem* storage)
|
519
|
-
GRPC_MUST_USE_RESULT;
|
520
|
-
void MaybeUnlinkCallout(grpc_linked_mdelem* storage);
|
521
|
-
|
522
|
-
static void assert_valid_list(grpc_mdelem_list* list) {
|
523
|
-
#ifndef NDEBUG
|
524
|
-
grpc_linked_mdelem* l;
|
525
|
-
|
526
|
-
GPR_ASSERT((list->head == nullptr) == (list->tail == nullptr));
|
527
|
-
if (!list->head) return;
|
528
|
-
GPR_ASSERT(list->head->prev == nullptr);
|
529
|
-
GPR_ASSERT(list->tail->next == nullptr);
|
530
|
-
GPR_ASSERT((list->head == list->tail) == (list->head->next == nullptr));
|
531
|
-
|
532
|
-
size_t verified_count = 0;
|
533
|
-
for (l = list->head; l; l = l->next) {
|
534
|
-
GPR_ASSERT(!GRPC_MDISNULL(l->md));
|
535
|
-
GPR_ASSERT((l->prev == nullptr) == (l == list->head));
|
536
|
-
GPR_ASSERT((l->next == nullptr) == (l == list->tail));
|
537
|
-
if (l->next) GPR_ASSERT(l->next->prev == l);
|
538
|
-
if (l->prev) GPR_ASSERT(l->prev->next == l);
|
539
|
-
verified_count++;
|
540
|
-
}
|
541
|
-
GPR_ASSERT(list->count == verified_count);
|
542
|
-
#else
|
543
|
-
// Avoid unused-parameter warning for debug-only parameter
|
544
|
-
(void)list;
|
545
|
-
#endif /* NDEBUG */
|
546
|
-
}
|
547
|
-
|
548
|
-
static grpc_error_handle GPR_ATTRIBUTE_NOINLINE
|
549
|
-
error_with_md(grpc_mdelem md) {
|
550
|
-
return grpc_attach_md_to_error(
|
551
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Unallowed duplicate metadata"),
|
552
|
-
md);
|
553
|
-
}
|
554
|
-
|
555
|
-
static void link_head(grpc_mdelem_list* list, grpc_linked_mdelem* storage) {
|
556
|
-
assert_valid_list(list);
|
557
|
-
GPR_DEBUG_ASSERT(!GRPC_MDISNULL(storage->md));
|
558
|
-
storage->prev = nullptr;
|
559
|
-
storage->next = list->head;
|
560
|
-
storage->reserved = nullptr;
|
561
|
-
if (list->head != nullptr) {
|
562
|
-
list->head->prev = storage;
|
563
|
-
} else {
|
564
|
-
list->tail = storage;
|
565
|
-
}
|
566
|
-
list->head = storage;
|
567
|
-
list->count++;
|
568
|
-
assert_valid_list(list);
|
569
|
-
}
|
570
|
-
|
571
|
-
static void link_tail(grpc_mdelem_list* list, grpc_linked_mdelem* storage) {
|
572
|
-
assert_valid_list(list);
|
573
|
-
GPR_DEBUG_ASSERT(!GRPC_MDISNULL(storage->md));
|
574
|
-
storage->prev = list->tail;
|
575
|
-
storage->next = nullptr;
|
576
|
-
storage->reserved = nullptr;
|
577
|
-
if (list->tail != nullptr) {
|
578
|
-
list->tail->next = storage;
|
579
|
-
} else {
|
580
|
-
list->head = storage;
|
581
|
-
}
|
582
|
-
list->tail = storage;
|
583
|
-
list->count++;
|
584
|
-
assert_valid_list(list);
|
585
|
-
}
|
1242
|
+
friend class metadata_detail::AppendHelper<Derived>;
|
1243
|
+
friend class metadata_detail::GetStringValueHelper<Derived>;
|
1244
|
+
friend class metadata_detail::RemoveHelper<Derived>;
|
1245
|
+
friend class metadata_detail::CopySink<Derived>;
|
1246
|
+
friend class ParsedMetadata<Derived>;
|
586
1247
|
|
587
|
-
|
588
|
-
|
589
|
-
assert_valid_list(list);
|
590
|
-
if (storage->prev != nullptr) {
|
591
|
-
storage->prev->next = storage->next;
|
592
|
-
} else {
|
593
|
-
list->head = storage->next;
|
594
|
-
}
|
595
|
-
if (storage->next != nullptr) {
|
596
|
-
storage->next->prev = storage->prev;
|
597
|
-
} else {
|
598
|
-
list->tail = storage->prev;
|
599
|
-
}
|
600
|
-
list->count--;
|
601
|
-
assert_valid_list(list);
|
602
|
-
}
|
1248
|
+
template <typename Which>
|
1249
|
+
using Value = metadata_detail::Value<Which>;
|
603
1250
|
|
604
1251
|
// Table of known metadata types.
|
605
|
-
|
606
|
-
|
607
|
-
grpc_mdelem_list list_;
|
608
|
-
grpc_metadata_batch_callouts idx_;
|
609
|
-
// Backing store for added metadata.
|
610
|
-
ChunkedVector<grpc_linked_mdelem, 10> elem_storage_;
|
1252
|
+
PackedTable<Value<Traits>...> table_;
|
1253
|
+
metadata_detail::UnknownMap unknown_;
|
611
1254
|
};
|
612
1255
|
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
GRPC_BATCH_INDEX_OF(key_interned);
|
620
|
-
if (callout_idx != GRPC_BATCH_CALLOUTS_COUNT) {
|
621
|
-
GPR_ASSERT(idx_.array[callout_idx] == l);
|
622
|
-
}
|
623
|
-
grpc_slice_unref_internal(key_interned);
|
624
|
-
}
|
625
|
-
#endif
|
1256
|
+
// Ok/not-ok check for metadata maps that contain GrpcStatusMetadata, so that
|
1257
|
+
// they can be used as result types for TrySeq.
|
1258
|
+
template <typename Derived, typename... Args>
|
1259
|
+
inline bool IsStatusOk(const MetadataMap<Derived, Args...>& m) {
|
1260
|
+
return m.get(GrpcStatusMetadata()).value_or(GRPC_STATUS_UNKNOWN) ==
|
1261
|
+
GRPC_STATUS_OK;
|
626
1262
|
}
|
627
1263
|
|
628
|
-
|
629
|
-
|
630
|
-
void MetadataMap<Traits...>::AssertOk() {
|
631
|
-
assert_valid_list(&list_);
|
632
|
-
}
|
633
|
-
#endif /* NDEBUG */
|
634
|
-
|
635
|
-
template <typename... Traits>
|
636
|
-
MetadataMap<Traits...>::MetadataMap(Arena* arena) : elem_storage_(arena) {
|
637
|
-
memset(&list_, 0, sizeof(list_));
|
638
|
-
memset(&idx_, 0, sizeof(idx_));
|
639
|
-
}
|
1264
|
+
template <typename Derived, typename... Traits>
|
1265
|
+
MetadataMap<Derived, Traits...>::MetadataMap(Arena* arena) : unknown_(arena) {}
|
640
1266
|
|
641
|
-
template <typename... Traits>
|
642
|
-
MetadataMap<Traits...>::MetadataMap(MetadataMap&& other) noexcept
|
643
|
-
: table_(std::move(other.table_)) {
|
644
|
-
list_ = other.list_;
|
645
|
-
idx_ = other.idx_;
|
646
|
-
memset(&other.list_, 0, sizeof(list_));
|
647
|
-
memset(&other.idx_, 0, sizeof(idx_));
|
648
|
-
}
|
1267
|
+
template <typename Derived, typename... Traits>
|
1268
|
+
MetadataMap<Derived, Traits...>::MetadataMap(MetadataMap&& other) noexcept
|
1269
|
+
: table_(std::move(other.table_)), unknown_(std::move(other.unknown_)) {}
|
649
1270
|
|
650
|
-
|
651
|
-
|
1271
|
+
// We never create MetadataMap directly, instead we create Derived, but we
|
1272
|
+
// want to be able to move it without redeclaring this.
|
1273
|
+
// NOLINTNEXTLINE(misc-unconventional-assign-operator)
|
1274
|
+
template <typename Derived, typename... Traits>
|
1275
|
+
Derived& MetadataMap<Derived, Traits...>::operator=(
|
652
1276
|
MetadataMap&& other) noexcept {
|
653
|
-
Clear();
|
654
1277
|
table_ = std::move(other.table_);
|
655
|
-
|
656
|
-
|
657
|
-
memset(&other.list_, 0, sizeof(list_));
|
658
|
-
memset(&other.idx_, 0, sizeof(idx_));
|
659
|
-
return *this;
|
660
|
-
}
|
661
|
-
|
662
|
-
template <typename... Traits>
|
663
|
-
MetadataMap<Traits...>::~MetadataMap() {
|
664
|
-
AssertValidCallouts();
|
665
|
-
for (auto* l = list_.head; l; l = l->next) {
|
666
|
-
GRPC_MDELEM_UNREF(l->md);
|
667
|
-
}
|
1278
|
+
unknown_ = std::move(other.unknown_);
|
1279
|
+
return static_cast<Derived&>(*this);
|
668
1280
|
}
|
669
1281
|
|
670
|
-
template <typename... Traits>
|
671
|
-
|
672
|
-
for (auto* l = list_.head; l; l = l->next) {
|
673
|
-
if (grpc_slice_eq(GRPC_MDKEY(l->md), key)) {
|
674
|
-
auto out = grpc_slice_ref_internal(GRPC_MDVALUE(l->md));
|
675
|
-
Remove(l);
|
676
|
-
return out;
|
677
|
-
}
|
678
|
-
}
|
679
|
-
return {};
|
680
|
-
}
|
1282
|
+
template <typename Derived, typename... Traits>
|
1283
|
+
MetadataMap<Derived, Traits...>::~MetadataMap() = default;
|
681
1284
|
|
682
|
-
template <typename... Traits>
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
GPR_DEBUG_ASSERT(idx >= 0 && idx < GRPC_BATCH_CALLOUTS_COUNT);
|
687
|
-
if (GPR_LIKELY(idx_.array[idx] == nullptr)) {
|
688
|
-
++list_.default_count;
|
689
|
-
idx_.array[idx] = storage;
|
690
|
-
AssertValidCallouts();
|
691
|
-
return GRPC_ERROR_NONE;
|
692
|
-
}
|
693
|
-
AssertValidCallouts();
|
694
|
-
return error_with_md(storage->md);
|
1285
|
+
template <typename Derived, typename... Traits>
|
1286
|
+
void MetadataMap<Derived, Traits...>::Clear() {
|
1287
|
+
table_.ClearAll();
|
1288
|
+
unknown_.Clear();
|
695
1289
|
}
|
696
1290
|
|
697
|
-
template <typename... Traits>
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
if (idx == GRPC_BATCH_CALLOUTS_COUNT) {
|
703
|
-
return GRPC_ERROR_NONE;
|
704
|
-
}
|
705
|
-
return LinkCallout(storage, idx);
|
706
|
-
}
|
707
|
-
|
708
|
-
template <typename... Traits>
|
709
|
-
void MetadataMap<Traits...>::MaybeUnlinkCallout(grpc_linked_mdelem* storage) {
|
710
|
-
grpc_metadata_batch_callouts_index idx =
|
711
|
-
GRPC_BATCH_INDEX_OF(GRPC_MDKEY(storage->md));
|
712
|
-
if (idx == GRPC_BATCH_CALLOUTS_COUNT) {
|
713
|
-
return;
|
714
|
-
}
|
715
|
-
--list_.default_count;
|
716
|
-
GPR_DEBUG_ASSERT(idx_.array[idx] != nullptr);
|
717
|
-
idx_.array[idx] = nullptr;
|
1291
|
+
template <typename Derived, typename... Traits>
|
1292
|
+
size_t MetadataMap<Derived, Traits...>::TransportSize() const {
|
1293
|
+
metadata_detail::TransportSizeEncoder enc;
|
1294
|
+
Encode(&enc);
|
1295
|
+
return enc.size();
|
718
1296
|
}
|
719
1297
|
|
720
|
-
template <typename... Traits>
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
return
|
726
|
-
}
|
727
|
-
|
728
|
-
template <typename... Traits>
|
729
|
-
grpc_error_handle MetadataMap<Traits...>::LinkHead(
|
730
|
-
grpc_linked_mdelem* storage) {
|
731
|
-
AssertValidCallouts();
|
732
|
-
grpc_error_handle err = MaybeLinkCallout(storage);
|
733
|
-
if (err != GRPC_ERROR_NONE) {
|
734
|
-
AssertValidCallouts();
|
735
|
-
return err;
|
736
|
-
}
|
737
|
-
link_head(&list_, storage);
|
738
|
-
AssertValidCallouts();
|
739
|
-
return GRPC_ERROR_NONE;
|
740
|
-
}
|
741
|
-
|
742
|
-
// TODO(arjunroy): Need to revisit this and see what guarantees exist between
|
743
|
-
// C-core and the internal-metadata subsystem. E.g. can we ensure a particular
|
744
|
-
// metadata is never added twice, even in the presence of user supplied data?
|
745
|
-
template <typename... Traits>
|
746
|
-
grpc_error_handle MetadataMap<Traits...>::LinkHead(
|
747
|
-
grpc_linked_mdelem* storage, grpc_metadata_batch_callouts_index idx) {
|
748
|
-
GPR_DEBUG_ASSERT(GRPC_BATCH_INDEX_OF(GRPC_MDKEY(storage->md)) == idx);
|
749
|
-
AssertValidCallouts();
|
750
|
-
grpc_error_handle err = LinkCallout(storage, idx);
|
751
|
-
if (GPR_UNLIKELY(err != GRPC_ERROR_NONE)) {
|
752
|
-
AssertValidCallouts();
|
753
|
-
return err;
|
754
|
-
}
|
755
|
-
link_head(&list_, storage);
|
756
|
-
AssertValidCallouts();
|
757
|
-
return GRPC_ERROR_NONE;
|
758
|
-
}
|
759
|
-
|
760
|
-
template <typename... Traits>
|
761
|
-
grpc_error_handle MetadataMap<Traits...>::AddTail(grpc_linked_mdelem* storage,
|
762
|
-
grpc_mdelem elem_to_add) {
|
763
|
-
GPR_DEBUG_ASSERT(!GRPC_MDISNULL(elem_to_add));
|
764
|
-
storage->md = elem_to_add;
|
765
|
-
return LinkTail(storage);
|
766
|
-
}
|
767
|
-
|
768
|
-
template <typename... Traits>
|
769
|
-
grpc_error_handle MetadataMap<Traits...>::LinkTail(
|
770
|
-
grpc_linked_mdelem* storage) {
|
771
|
-
AssertValidCallouts();
|
772
|
-
grpc_error_handle err = MaybeLinkCallout(storage);
|
773
|
-
if (err != GRPC_ERROR_NONE) {
|
774
|
-
AssertValidCallouts();
|
775
|
-
return err;
|
776
|
-
}
|
777
|
-
link_tail(&list_, storage);
|
778
|
-
AssertValidCallouts();
|
779
|
-
return GRPC_ERROR_NONE;
|
780
|
-
}
|
781
|
-
|
782
|
-
template <typename... Traits>
|
783
|
-
grpc_error_handle MetadataMap<Traits...>::LinkTail(
|
784
|
-
grpc_linked_mdelem* storage, grpc_metadata_batch_callouts_index idx) {
|
785
|
-
GPR_DEBUG_ASSERT(GRPC_BATCH_INDEX_OF(GRPC_MDKEY(storage->md)) == idx);
|
786
|
-
AssertValidCallouts();
|
787
|
-
grpc_error_handle err = LinkCallout(storage, idx);
|
788
|
-
if (GPR_UNLIKELY(err != GRPC_ERROR_NONE)) {
|
789
|
-
AssertValidCallouts();
|
790
|
-
return err;
|
791
|
-
}
|
792
|
-
link_tail(&list_, storage);
|
793
|
-
AssertValidCallouts();
|
794
|
-
return GRPC_ERROR_NONE;
|
795
|
-
}
|
796
|
-
|
797
|
-
template <typename... Traits>
|
798
|
-
void MetadataMap<Traits...>::Remove(grpc_linked_mdelem* storage) {
|
799
|
-
AssertValidCallouts();
|
800
|
-
MaybeUnlinkCallout(storage);
|
801
|
-
unlink_storage(&list_, storage);
|
802
|
-
GRPC_MDELEM_UNREF(storage->md);
|
803
|
-
AssertValidCallouts();
|
804
|
-
}
|
805
|
-
|
806
|
-
template <typename... Traits>
|
807
|
-
void MetadataMap<Traits...>::Remove(grpc_metadata_batch_callouts_index idx) {
|
808
|
-
AssertValidCallouts();
|
809
|
-
if (idx_.array[idx] == nullptr) return;
|
810
|
-
--list_.default_count;
|
811
|
-
unlink_storage(&list_, idx_.array[idx]);
|
812
|
-
GRPC_MDELEM_UNREF(idx_.array[idx]->md);
|
813
|
-
idx_.array[idx] = nullptr;
|
814
|
-
AssertValidCallouts();
|
815
|
-
}
|
816
|
-
|
817
|
-
template <typename... Traits>
|
818
|
-
absl::optional<absl::string_view> MetadataMap<Traits...>::GetValue(
|
819
|
-
absl::string_view target_key, std::string* concatenated_value) const {
|
820
|
-
// Find all values for the specified key.
|
821
|
-
absl::InlinedVector<absl::string_view, 1> values;
|
822
|
-
for (grpc_linked_mdelem* md = list_.head; md != nullptr; md = md->next) {
|
823
|
-
absl::string_view key = grpc_core::StringViewFromSlice(GRPC_MDKEY(md->md));
|
824
|
-
absl::string_view value =
|
825
|
-
grpc_core::StringViewFromSlice(GRPC_MDVALUE(md->md));
|
826
|
-
if (target_key == key) values.push_back(value);
|
827
|
-
}
|
828
|
-
// If none found, no match.
|
829
|
-
if (values.empty()) return absl::nullopt;
|
830
|
-
// If exactly one found, return it as-is.
|
831
|
-
if (values.size() == 1) return values.front();
|
832
|
-
// If more than one found, concatenate the values, using
|
833
|
-
// *concatenated_values as a temporary holding place for the
|
834
|
-
// concatenated string.
|
835
|
-
*concatenated_value = absl::StrJoin(values, ",");
|
836
|
-
return *concatenated_value;
|
837
|
-
}
|
838
|
-
|
839
|
-
template <typename... Traits>
|
840
|
-
grpc_error_handle MetadataMap<Traits...>::Substitute(
|
841
|
-
grpc_linked_mdelem* storage, grpc_mdelem new_mdelem) {
|
842
|
-
AssertValidCallouts();
|
843
|
-
grpc_error_handle error = GRPC_ERROR_NONE;
|
844
|
-
grpc_mdelem old_mdelem = storage->md;
|
845
|
-
if (!grpc_slice_eq(GRPC_MDKEY(new_mdelem), GRPC_MDKEY(old_mdelem))) {
|
846
|
-
MaybeUnlinkCallout(storage);
|
847
|
-
storage->md = new_mdelem;
|
848
|
-
error = MaybeLinkCallout(storage);
|
849
|
-
if (error != GRPC_ERROR_NONE) {
|
850
|
-
unlink_storage(&list_, storage);
|
851
|
-
GRPC_MDELEM_UNREF(storage->md);
|
852
|
-
}
|
853
|
-
} else {
|
854
|
-
storage->md = new_mdelem;
|
855
|
-
}
|
856
|
-
GRPC_MDELEM_UNREF(old_mdelem);
|
857
|
-
AssertValidCallouts();
|
858
|
-
return error;
|
859
|
-
}
|
860
|
-
|
861
|
-
template <typename... Traits>
|
862
|
-
void MetadataMap<Traits...>::Clear() {
|
863
|
-
// TODO(ctiller): implement this without deconstructing/reconstructing once
|
864
|
-
// linked_mdelem is no longer a thing.
|
865
|
-
auto* arena = elem_storage_.arena();
|
866
|
-
this->~MetadataMap();
|
867
|
-
new (this) MetadataMap(arena);
|
868
|
-
}
|
869
|
-
|
870
|
-
template <typename... Traits>
|
871
|
-
size_t MetadataMap<Traits...>::TransportSize() const {
|
872
|
-
size_t size = 0;
|
873
|
-
for (grpc_linked_mdelem* elem = list_.head; elem != nullptr;
|
874
|
-
elem = elem->next) {
|
875
|
-
size += GRPC_MDELEM_LENGTH(elem->md);
|
876
|
-
}
|
877
|
-
return size;
|
878
|
-
}
|
879
|
-
|
880
|
-
template <typename... Traits>
|
881
|
-
bool MetadataMap<Traits...>::ReplaceIfExists(grpc_slice key, grpc_slice value) {
|
882
|
-
AssertValidCallouts();
|
883
|
-
for (grpc_linked_mdelem* l = list_.head; l != nullptr; l = l->next) {
|
884
|
-
if (grpc_slice_eq(GRPC_MDKEY(l->md), key)) {
|
885
|
-
auto new_mdelem = grpc_mdelem_from_slices(key, value);
|
886
|
-
GRPC_MDELEM_UNREF(l->md);
|
887
|
-
l->md = new_mdelem;
|
888
|
-
AssertValidCallouts();
|
889
|
-
return true;
|
890
|
-
}
|
891
|
-
}
|
892
|
-
AssertValidCallouts();
|
893
|
-
return false;
|
1298
|
+
template <typename Derived, typename... Traits>
|
1299
|
+
Derived MetadataMap<Derived, Traits...>::Copy() const {
|
1300
|
+
Derived out(unknown_.arena());
|
1301
|
+
metadata_detail::CopySink<Derived> sink(&out);
|
1302
|
+
ForEach(&sink);
|
1303
|
+
return out;
|
894
1304
|
}
|
895
1305
|
|
896
1306
|
} // namespace grpc_core
|
897
1307
|
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
inline grpc_error_handle grpc_metadata_batch_substitute(
|
926
|
-
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
927
|
-
grpc_mdelem new_mdelem) {
|
928
|
-
return batch->Substitute(storage, new_mdelem);
|
929
|
-
}
|
930
|
-
|
931
|
-
void grpc_metadata_batch_set_value(grpc_linked_mdelem* storage,
|
932
|
-
const grpc_slice& value);
|
933
|
-
|
934
|
-
/** Returns metadata value(s) for the specified key.
|
935
|
-
If the key is not present in the batch, returns absl::nullopt.
|
936
|
-
If the key is present exactly once in the batch, returns a string_view of
|
937
|
-
that value.
|
938
|
-
If the key is present more than once in the batch, constructs a
|
939
|
-
comma-concatenated string of all values in concatenated_value and returns a
|
940
|
-
string_view of that string. */
|
941
|
-
inline absl::optional<absl::string_view> grpc_metadata_batch_get_value(
|
942
|
-
grpc_metadata_batch* batch, absl::string_view target_key,
|
943
|
-
std::string* concatenated_value) {
|
944
|
-
return batch->GetValue(target_key, concatenated_value);
|
945
|
-
}
|
946
|
-
|
947
|
-
/** Add \a storage to the beginning of \a batch. storage->md is
|
948
|
-
assumed to be valid.
|
949
|
-
\a storage is owned by the caller and must survive for the
|
950
|
-
lifetime of batch. This usually means it should be around
|
951
|
-
for the lifetime of the call. */
|
952
|
-
inline GRPC_MUST_USE_RESULT grpc_error_handle grpc_metadata_batch_link_head(
|
953
|
-
grpc_metadata_batch* batch, grpc_linked_mdelem* storage) {
|
954
|
-
return batch->LinkHead(storage);
|
955
|
-
}
|
956
|
-
|
957
|
-
inline GRPC_MUST_USE_RESULT grpc_error_handle grpc_metadata_batch_link_head(
|
958
|
-
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
959
|
-
grpc_metadata_batch_callouts_index idx) {
|
960
|
-
return batch->LinkHead(storage, idx);
|
961
|
-
}
|
962
|
-
|
963
|
-
/** Add \a storage to the end of \a batch. storage->md is
|
964
|
-
assumed to be valid.
|
965
|
-
\a storage is owned by the caller and must survive for the
|
966
|
-
lifetime of batch. This usually means it should be around
|
967
|
-
for the lifetime of the call. */
|
968
|
-
inline GRPC_MUST_USE_RESULT grpc_error_handle grpc_metadata_batch_link_tail(
|
969
|
-
grpc_metadata_batch* batch, grpc_linked_mdelem* storage) {
|
970
|
-
return batch->LinkTail(storage);
|
971
|
-
}
|
972
|
-
|
973
|
-
inline GRPC_MUST_USE_RESULT grpc_error_handle grpc_metadata_batch_link_tail(
|
974
|
-
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
975
|
-
grpc_metadata_batch_callouts_index idx) {
|
976
|
-
return batch->LinkTail(storage, idx);
|
977
|
-
}
|
978
|
-
|
979
|
-
/** Add \a elem_to_add as the first element in \a batch, using
|
980
|
-
\a storage as backing storage for the linked list element.
|
981
|
-
\a storage is owned by the caller and must survive for the
|
982
|
-
lifetime of batch. This usually means it should be around
|
983
|
-
for the lifetime of the call.
|
984
|
-
Takes ownership of \a elem_to_add */
|
985
|
-
inline grpc_error_handle grpc_metadata_batch_add_head(
|
986
|
-
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
987
|
-
grpc_mdelem elem_to_add) {
|
988
|
-
return batch->AddHead(storage, elem_to_add);
|
989
|
-
}
|
990
|
-
|
991
|
-
// TODO(arjunroy, roth): Remove redundant methods.
|
992
|
-
// add/link_head/tail are almost identical.
|
993
|
-
inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_head(
|
994
|
-
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
995
|
-
grpc_metadata_batch_callouts_index idx) {
|
996
|
-
return grpc_metadata_batch_link_head(batch, storage, idx);
|
997
|
-
}
|
998
|
-
|
999
|
-
inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_head(
|
1000
|
-
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
1001
|
-
grpc_mdelem elem_to_add, grpc_metadata_batch_callouts_index idx) {
|
1002
|
-
GPR_DEBUG_ASSERT(!GRPC_MDISNULL(elem_to_add));
|
1003
|
-
storage->md = elem_to_add;
|
1004
|
-
return grpc_metadata_batch_add_head(batch, storage, idx);
|
1005
|
-
}
|
1006
|
-
|
1007
|
-
/** Add \a elem_to_add as the last element in \a batch, using
|
1008
|
-
\a storage as backing storage for the linked list element.
|
1009
|
-
\a storage is owned by the caller and must survive for the
|
1010
|
-
lifetime of batch. This usually means it should be around
|
1011
|
-
for the lifetime of the call.
|
1012
|
-
Takes ownership of \a elem_to_add */
|
1013
|
-
inline GRPC_MUST_USE_RESULT grpc_error_handle grpc_metadata_batch_add_tail(
|
1014
|
-
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
1015
|
-
grpc_mdelem elem_to_add) {
|
1016
|
-
return batch->AddTail(storage, elem_to_add);
|
1017
|
-
}
|
1018
|
-
|
1019
|
-
inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_tail(
|
1020
|
-
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
1021
|
-
grpc_metadata_batch_callouts_index idx) {
|
1022
|
-
return grpc_metadata_batch_link_tail(batch, storage, idx);
|
1023
|
-
}
|
1024
|
-
|
1025
|
-
inline grpc_error_handle GRPC_MUST_USE_RESULT grpc_metadata_batch_add_tail(
|
1026
|
-
grpc_metadata_batch* batch, grpc_linked_mdelem* storage,
|
1027
|
-
grpc_mdelem elem_to_add, grpc_metadata_batch_callouts_index idx) {
|
1028
|
-
GPR_DEBUG_ASSERT(!GRPC_MDISNULL(elem_to_add));
|
1029
|
-
storage->md = elem_to_add;
|
1030
|
-
return grpc_metadata_batch_add_tail(batch, storage, idx);
|
1031
|
-
}
|
1032
|
-
|
1033
|
-
typedef grpc_filtered_mdelem (*grpc_metadata_batch_filter_func)(
|
1034
|
-
void* user_data, grpc_mdelem elem);
|
1035
|
-
inline GRPC_MUST_USE_RESULT grpc_error_handle grpc_metadata_batch_filter(
|
1036
|
-
grpc_metadata_batch* batch, grpc_metadata_batch_filter_func func,
|
1037
|
-
void* user_data, const char* composite_error_string) {
|
1038
|
-
return batch->Filter([=](grpc_mdelem elem) { return func(user_data, elem); },
|
1039
|
-
composite_error_string);
|
1040
|
-
}
|
1041
|
-
|
1042
|
-
inline void grpc_metadata_batch_assert_ok(grpc_metadata_batch* batch) {
|
1043
|
-
batch->AssertOk();
|
1044
|
-
}
|
1045
|
-
|
1046
|
-
/// Copies \a src to \a dst.
|
1047
|
-
///
|
1048
|
-
/// For each mdelem in \a src, if the mdelem is of storage types
|
1049
|
-
/// GRPC_MDELEM_STORAGE_INTERNED or GRPC_MDELEM_STORAGE_ALLOCATED,
|
1050
|
-
/// refs the original mdelem for the copy. Otherwise, makes a new
|
1051
|
-
/// mdelem that will hold its own refs to the key and value slices.
|
1052
|
-
void grpc_metadata_batch_copy(const grpc_metadata_batch* src,
|
1053
|
-
grpc_metadata_batch* dst);
|
1308
|
+
struct grpc_metadata_batch;
|
1309
|
+
|
1310
|
+
using grpc_metadata_batch_base = grpc_core::MetadataMap<
|
1311
|
+
grpc_metadata_batch,
|
1312
|
+
// Colon prefixed headers first
|
1313
|
+
grpc_core::HttpPathMetadata, grpc_core::HttpAuthorityMetadata,
|
1314
|
+
grpc_core::HttpMethodMetadata, grpc_core::HttpStatusMetadata,
|
1315
|
+
grpc_core::HttpSchemeMetadata,
|
1316
|
+
// Non-colon prefixed headers begin here
|
1317
|
+
grpc_core::ContentTypeMetadata, grpc_core::TeMetadata,
|
1318
|
+
grpc_core::GrpcEncodingMetadata, grpc_core::GrpcInternalEncodingRequest,
|
1319
|
+
grpc_core::GrpcAcceptEncodingMetadata, grpc_core::GrpcStatusMetadata,
|
1320
|
+
grpc_core::GrpcTimeoutMetadata, grpc_core::GrpcPreviousRpcAttemptsMetadata,
|
1321
|
+
grpc_core::GrpcRetryPushbackMsMetadata, grpc_core::UserAgentMetadata,
|
1322
|
+
grpc_core::GrpcMessageMetadata, grpc_core::HostMetadata,
|
1323
|
+
grpc_core::EndpointLoadMetricsBinMetadata,
|
1324
|
+
grpc_core::GrpcServerStatsBinMetadata, grpc_core::GrpcTraceBinMetadata,
|
1325
|
+
grpc_core::GrpcTagsBinMetadata, grpc_core::GrpcLbClientStatsMetadata,
|
1326
|
+
grpc_core::LbCostBinMetadata, grpc_core::LbTokenMetadata,
|
1327
|
+
// Non-encodable things
|
1328
|
+
grpc_core::GrpcStreamNetworkState, grpc_core::PeerString,
|
1329
|
+
grpc_core::GrpcStatusContext, grpc_core::GrpcStatusFromWire,
|
1330
|
+
grpc_core::WaitForReady, grpc_core::GrpcTrailersOnly>;
|
1331
|
+
|
1332
|
+
struct grpc_metadata_batch : public grpc_metadata_batch_base {
|
1333
|
+
using grpc_metadata_batch_base::grpc_metadata_batch_base;
|
1334
|
+
};
|
1054
1335
|
|
1055
|
-
#endif
|
1336
|
+
#endif // GRPC_CORE_LIB_TRANSPORT_METADATA_BATCH_H
|