grpc 1.43.1 → 1.53.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 +765 -449
- 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 +131 -41
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +1 -1
- data/include/grpc/event_engine/internal/slice_cast.h +67 -0
- data/include/grpc/event_engine/memory_allocator.h +1 -16
- 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 +159 -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 +47 -50
- 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 -699
- 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 +827 -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 +31 -6
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +148 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_filter.h +52 -0
- data/src/core/ext/filters/backend_metrics/backend_metric_provider.h +29 -0
- 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 -15
- data/src/core/ext/filters/client_channel/backend_metric.h +21 -11
- data/src/core/ext/filters/client_channel/backup_poller.cc +44 -40
- data/src/core/ext/filters/client_channel/backup_poller.h +26 -28
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +94 -49
- data/src/core/ext/filters/client_channel/client_channel.cc +681 -648
- data/src/core/ext/filters/client_channel/client_channel.h +106 -61
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +19 -23
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +33 -23
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +19 -43
- data/src/core/ext/filters/client_channel/client_channel_factory.h +11 -11
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +26 -57
- 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 +33 -27
- data/src/core/ext/filters/client_channel/connector.h +20 -11
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +40 -55
- data/src/core/ext/filters/client_channel/dynamic_filters.h +22 -13
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +4 -22
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +27 -36
- 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 +29 -163
- data/src/core/ext/filters/client_channel/http_proxy.cc +130 -164
- data/src/core/ext/filters/client_channel/http_proxy.h +46 -22
- 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 +9 -7
- 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 +18 -13
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +71 -134
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +41 -24
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +468 -413
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +27 -35
- 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 +10 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +18 -20
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +27 -22
- 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 +30 -29
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +338 -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/oob_backend_metric_internal.h +117 -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 -391
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +19 -9
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +726 -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 +177 -150
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +128 -0
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.h +71 -0
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +972 -0
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +289 -251
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +274 -201
- 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_channel_args.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +215 -264
- 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 +578 -667
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +819 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +67 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +369 -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 +22 -21
- 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 +67 -51
- 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 +109 -119
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +421 -420
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +95 -81
- 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 +22 -22
- 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 +21 -6
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +190 -96
- 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 +537 -338
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +6 -4
- data/src/core/ext/filters/client_channel/retry_filter.cc +392 -307
- data/src/core/ext/filters/client_channel/retry_filter.h +4 -3
- data/src/core/ext/filters/client_channel/retry_service_config.cc +198 -232
- data/src/core/ext/filters/client_channel/retry_service_config.h +44 -35
- data/src/core/ext/filters/client_channel/retry_throttle.cc +37 -60
- data/src/core/ext/filters/client_channel/retry_throttle.h +47 -34
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +40 -22
- data/src/core/ext/filters/client_channel/subchannel.cc +343 -402
- data/src/core/ext/filters/client_channel/subchannel.h +116 -86
- 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 +41 -47
- 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 +102 -83
- data/src/core/ext/filters/deadline/deadline_filter.h +17 -14
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +180 -403
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +41 -9
- 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 +123 -548
- data/src/core/ext/filters/http/client/http_client_filter.h +55 -25
- data/src/core/ext/filters/http/client_authority_filter.cc +60 -129
- data/src/core/ext/filters/http/client_authority_filter.h +49 -27
- data/src/core/ext/filters/http/http_filters_plugin.cc +53 -60
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +307 -0
- data/src/core/ext/filters/http/message_compress/compression_filter.h +139 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +116 -474
- data/src/core/ext/filters/http/server/http_server_filter.h +58 -24
- data/src/core/ext/filters/message_size/message_size_filter.cc +137 -165
- data/src/core/ext/filters/message_size/message_size_filter.h +44 -20
- data/src/core/ext/filters/rbac/rbac_filter.cc +175 -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 +23 -10
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +93 -199
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +4 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +219 -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 +24 -24
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +316 -137
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +38 -30
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +378 -182
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +26 -26
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +24 -24
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +35 -34
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +31 -30
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +29 -29
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +972 -1236
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +36 -25
- data/src/core/ext/transport/chttp2/transport/context_list.cc +23 -19
- data/src/core/ext/transport/chttp2/transport/context_list.h +32 -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 +351 -301
- data/src/core/ext/transport/chttp2/transport/flow_control.h +249 -326
- data/src/core/ext/transport/chttp2/transport/frame.h +22 -26
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +85 -235
- data/src/core/ext/transport/chttp2/transport/frame_data.h +38 -61
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +41 -36
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +24 -22
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +34 -28
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +25 -22
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +40 -26
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +24 -21
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +46 -77
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +27 -23
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +34 -33
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +24 -21
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +10 -4
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +432 -422
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +127 -219
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +5 -2
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +15 -4
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +143 -620
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +31 -25
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +162 -61
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +71 -71
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +39 -38
- 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 +21 -21
- data/src/core/ext/transport/chttp2/transport/internal.h +257 -338
- data/src/core/ext/transport/chttp2/transport/parsing.cc +367 -140
- 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 +34 -33
- data/src/core/ext/transport/chttp2/transport/varint.cc +19 -20
- data/src/core/ext/transport/chttp2/transport/varint.h +39 -34
- data/src/core/ext/transport/chttp2/transport/writing.cc +199 -227
- data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -22
- data/src/core/ext/transport/inproc/inproc_transport.cc +252 -347
- data/src/core/ext/transport/inproc/inproc_transport.h +23 -24
- 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 +122 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +578 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +46 -359
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +280 -1357
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +388 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1953 -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 +14 -12
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +49 -16
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +13 -11
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +53 -23
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +98 -96
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +729 -386
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +191 -173
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1403 -664
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +34 -26
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +212 -91
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +256 -250
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1774 -852
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +46 -24
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +49 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +276 -99
- 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 +78 -51
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +519 -190
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +11 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +49 -25
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +159 -154
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1178 -584
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +87 -42
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +553 -167
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +42 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +11 -29
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +45 -101
- 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 +108 -104
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +820 -410
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +118 -84
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +813 -358
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +11 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +61 -31
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +164 -108
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1082 -399
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +32 -17
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +91 -49
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +29 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +140 -34
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +15 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +97 -49
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +11 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +50 -26
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +34 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +206 -109
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +58 -49
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +405 -191
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +49 -47
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +377 -188
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +38 -21
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +101 -64
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +684 -261
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +77 -69
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +588 -301
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +21 -15
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +130 -49
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +15 -10
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +98 -41
- 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 +58 -55
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +445 -235
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +62 -60
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +442 -237
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +98 -77
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +672 -294
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +46 -36
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +301 -163
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +589 -475
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +4357 -1895
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +25 -19
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +160 -72
- 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 +45 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +101 -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 +15 -13
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +85 -46
- 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 +47 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +107 -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 +55 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +159 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +38 -24
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +29 -27
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +208 -113
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +36 -34
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +272 -132
- 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 +19 -14
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -43
- 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 +239 -197
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1708 -734
- 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/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +188 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +111 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +444 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +192 -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 +3 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +89 -58
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +606 -235
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +26 -24
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +168 -87
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +100 -71
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +672 -263
- 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 +6 -4
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +26 -16
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +185 -66
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1118 -256
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +18 -16
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +115 -62
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +52 -50
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +367 -186
- 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 +20 -18
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +140 -82
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +113 -0
- 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 +16 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +107 -57
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +54 -31
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +52 -27
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +9 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +42 -24
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +21 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +129 -69
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +114 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +19 -17
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +131 -65
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +14 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +93 -53
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +23 -21
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +162 -83
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +32 -30
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +258 -146
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +36 -34
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +255 -131
- 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 +3 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -1
- 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 +13 -11
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +70 -36
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +19 -17
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +110 -52
- 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 +43 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +10 -8
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +44 -19
- 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 +8 -6
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +22 -6
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +109 -103
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +764 -382
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +120 -112
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +843 -402
- data/src/core/ext/upb-generated/google/api/http.upb.c +29 -27
- data/src/core/ext/upb-generated/google/api/http.upb.h +228 -115
- 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 +9 -7
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +42 -22
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +292 -237
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2198 -1030
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +9 -7
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +40 -20
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +6 -4
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +26 -16
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +31 -29
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +189 -93
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +9 -7
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +40 -20
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +40 -38
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +276 -149
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +11 -9
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +56 -30
- 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 +21 -19
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +107 -48
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +102 -96
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +725 -359
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +16 -13
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +84 -41
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +12 -10
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +64 -35
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +57 -55
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +419 -219
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +22 -20
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +123 -63
- 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 +36 -34
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +201 -78
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +14 -12
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +57 -22
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +7 -5
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +15 -6
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +14 -12
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +59 -24
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +13 -11
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +53 -23
- data/src/core/ext/upb-generated/validate/validate.upb.c +339 -312
- data/src/core/ext/upb-generated/validate/validate.upb.h +2818 -1180
- 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 +34 -32
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +187 -80
- 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 +8 -6
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +34 -19
- 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 +18 -16
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +106 -55
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +14 -12
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +57 -30
- 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 +12 -10
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +59 -30
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +20 -18
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +138 -70
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +12 -10
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +62 -30
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +24 -21
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +114 -46
- 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 +10 -9
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +46 -24
- 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 +128 -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 +73 -278
- 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 +277 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +125 -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 +8 -6
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +8 -6
- 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 +118 -115
- 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 +257 -237
- 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 +58 -51
- 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 +394 -370
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +73 -78
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +14 -11
- 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 +23 -16
- 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 +101 -79
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +27 -22
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +15 -12
- 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 -194
- 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 +138 -101
- 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 +14 -12
- 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 +22 -34
- 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 +21 -18
- 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 +182 -165
- 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 +14 -12
- 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 +252 -219
- 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 +12 -9
- 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 +14 -11
- 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 +18 -11
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +9 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +24 -21
- 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 +13 -11
- 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 +18 -15
- 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 +81 -73
- 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 +18 -15
- 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 +14 -11
- 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 -146
- 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 +153 -147
- 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 +26 -19
- 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 +44 -33
- 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 +17 -14
- 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 +17 -14
- 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 +201 -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 +91 -74
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +902 -806
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +180 -160
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +52 -37
- 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 +56 -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 +15 -12
- 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 +48 -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 +79 -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 +15 -11
- 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 +17 -14
- 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 +18 -15
- 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 +59 -44
- 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 +506 -463
- 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 +15 -11
- 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 +172 -140
- 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 +19 -16
- 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 +220 -198
- 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 +14 -11
- 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 +163 -88
- 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 +16 -13
- 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 +123 -120
- 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 +13 -10
- 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/filter_state.upbdefs.c +48 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +35 -0
- 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 +15 -12
- 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 +15 -12
- 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 +15 -12
- 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 +15 -12
- 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 +36 -32
- 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/status_code_input.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +15 -12
- 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 +14 -12
- 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 +16 -13
- 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 +13 -10
- 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 +14 -11
- 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 +10 -8
- 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 +12 -10
- 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 +11 -8
- 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 +39 -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 +11 -9
- 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 +5 -5
- 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 +3 -3
- 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 +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +94 -92
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +3 -3
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- 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 +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +5 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +6 -6
- 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 +4 -4
- 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 +5 -5
- 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 +7 -7
- 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 +4 -4
- 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 +6 -6
- 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 +6 -6
- 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 +6 -6
- 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 +6 -9
- 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 +30 -4
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +21 -14
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +14 -6
- data/src/core/ext/xds/upb_utils.h +45 -0
- data/src/core/ext/xds/xds_api.cc +294 -3740
- data/src/core/ext/xds/xds_api.h +82 -635
- data/src/core/ext/xds/xds_bootstrap.cc +10 -446
- data/src/core/ext/xds/xds_bootstrap.h +46 -83
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +362 -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 +37 -4
- data/src/core/ext/xds/xds_channel_args.h +3 -3
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +27 -20
- data/src/core/ext/xds/xds_channel_stack_modifier.h +20 -7
- data/src/core/ext/xds/xds_client.cc +1247 -2097
- data/src/core/ext/xds/xds_client.h +159 -204
- data/src/core/ext/xds/xds_client_grpc.cc +235 -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 +31 -28
- data/src/core/ext/xds/xds_cluster.cc +711 -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 +503 -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 +109 -0
- data/src/core/ext/xds/xds_http_fault_filter.cc +68 -59
- data/src/core/ext/xds/xds_http_fault_filter.h +20 -26
- data/src/core/ext/xds/xds_http_filters.cc +71 -66
- data/src/core/ext/xds/xds_http_filters.h +74 -26
- 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 +334 -0
- data/src/core/ext/xds/xds_lb_policy_registry.h +71 -0
- data/src/core/ext/xds/xds_listener.cc +1131 -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 +1144 -0
- data/src/core/ext/xds/xds_route_config.h +252 -0
- data/src/core/ext/xds/xds_routing.cc +33 -16
- data/src/core/ext/xds/xds_routing.h +25 -17
- data/src/core/ext/xds/xds_server_config_fetcher.cc +386 -281
- 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 +46 -37
- data/src/core/lib/address_utils/sockaddr_utils.cc +112 -79
- data/src/core/lib/address_utils/sockaddr_utils.h +45 -55
- data/src/core/lib/avl/avl.h +100 -13
- data/src/core/lib/backoff/backoff.cc +26 -57
- data/src/core/lib/backoff/backoff.h +32 -32
- data/src/core/lib/channel/call_finalization.h +88 -0
- data/src/core/lib/channel/call_tracer.h +27 -9
- data/src/core/lib/channel/channel_args.cc +291 -65
- data/src/core/lib/channel/channel_args.h +461 -54
- data/src/core/lib/channel/channel_args_preconditioning.cc +6 -10
- data/src/core/lib/channel/channel_args_preconditioning.h +7 -7
- data/src/core/lib/channel/channel_fwd.h +26 -0
- data/src/core/lib/channel/channel_stack.cc +100 -53
- data/src/core/lib/channel/channel_stack.h +212 -130
- data/src/core/lib/channel/channel_stack_builder.cc +35 -295
- data/src/core/lib/channel/channel_stack_builder.h +115 -153
- data/src/core/lib/channel/channel_stack_builder_impl.cc +126 -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 +27 -24
- data/src/core/lib/channel/channelz.cc +51 -65
- data/src/core/lib/channel/channelz.h +50 -33
- data/src/core/lib/channel/channelz_registry.cc +28 -36
- data/src/core/lib/channel/channelz_registry.h +31 -30
- data/src/core/lib/channel/connected_channel.cc +1269 -75
- data/src/core/lib/channel/connected_channel.h +23 -24
- data/src/core/lib/channel/context.h +36 -21
- data/src/core/lib/channel/promise_based_filter.cc +2521 -0
- data/src/core/lib/channel/promise_based_filter.h +937 -0
- data/src/core/lib/channel/status_util.cc +64 -17
- data/src/core/lib/channel/status_util.h +38 -24
- 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 +90 -94
- data/src/core/lib/compression/message_compress.cc +39 -37
- data/src/core/lib/compression/message_compress.h +30 -31
- data/src/core/lib/config/core_configuration.cc +15 -2
- data/src/core/lib/config/core_configuration.h +125 -39
- 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 +50 -57
- data/src/core/lib/debug/stats_data.cc +302 -649
- data/src/core/lib/debug/stats_data.h +293 -548
- data/src/core/lib/debug/trace.cc +18 -20
- data/src/core/lib/debug/trace.h +27 -48
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +16 -17
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +16 -9
- data/src/core/lib/event_engine/common_closures.h +71 -0
- data/src/core/lib/event_engine/default_event_engine.cc +99 -0
- data/src/core/lib/event_engine/default_event_engine.h +73 -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/event_engine.cc +3 -15
- data/src/core/lib/event_engine/executor/executor.h +38 -0
- data/src/core/lib/event_engine/forkable.cc +106 -0
- data/src/core/lib/event_engine/forkable.h +61 -0
- data/src/core/lib/event_engine/handle_containers.h +74 -0
- data/src/core/lib/event_engine/memory_allocator.cc +19 -15
- data/src/core/lib/event_engine/poller.h +62 -0
- data/src/core/lib/event_engine/posix.h +158 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +642 -0
- data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +139 -0
- data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +899 -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 +1305 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +717 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +640 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +259 -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 +289 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +279 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +379 -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 +60 -0
- data/src/core/lib/event_engine/resolved_address_internal.h +34 -0
- data/src/core/lib/event_engine/shim.cc +56 -0
- data/src/core/lib/event_engine/shim.h +33 -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/tcp_socket_utils.cc +389 -0
- data/src/core/lib/event_engine/tcp_socket_utils.h +90 -0
- data/src/core/lib/event_engine/thread_local.cc +29 -0
- data/src/core/lib/event_engine/thread_local.h +32 -0
- data/src/core/lib/event_engine/thread_pool.cc +253 -0
- data/src/core/lib/event_engine/thread_pool.h +141 -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 +24 -0
- data/src/core/lib/event_engine/trace.h +43 -0
- data/src/core/lib/event_engine/utils.cc +44 -0
- data/src/core/lib/event_engine/utils.h +44 -0
- data/src/core/lib/event_engine/windows/iocp.cc +140 -0
- data/src/core/lib/event_engine/windows/iocp.h +69 -0
- data/src/core/lib/event_engine/windows/win_socket.cc +219 -0
- data/src/core/lib/event_engine/windows/win_socket.h +129 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +331 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +103 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +388 -0
- data/src/core/lib/event_engine/windows/windows_engine.h +163 -0
- data/src/core/lib/experiments/config.cc +161 -0
- data/src/core/lib/experiments/config.h +53 -0
- data/src/core/lib/experiments/experiments.cc +81 -0
- data/src/core/lib/experiments/experiments.h +117 -0
- data/src/core/lib/gpr/alloc.cc +19 -25
- data/src/core/lib/gpr/alloc.h +20 -20
- 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 +20 -20
- data/src/core/lib/gpr/string.cc +25 -24
- data/src/core/lib/gpr/string.h +61 -61
- 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 +36 -40
- 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 +21 -22
- data/src/core/lib/gpr/time_windows.cc +35 -29
- data/src/core/lib/gpr/tmpfile.h +24 -24
- 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 +101 -30
- data/src/core/lib/gpr/wrap_memcpy.cc +23 -23
- data/src/core/lib/gprpp/atomic_utils.h +20 -20
- data/src/core/lib/gprpp/bitset.h +54 -17
- data/src/core/lib/gprpp/chunked_vector.h +52 -6
- data/src/core/lib/gprpp/construct_destruct.h +4 -3
- data/src/core/lib/gprpp/cpp_impl_of.h +7 -3
- 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 +62 -31
- data/src/core/lib/gprpp/dual_ref_counted.h +4 -7
- 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 +21 -22
- data/src/core/lib/gprpp/fork.cc +58 -53
- data/src/core/lib/gprpp/fork.h +29 -35
- data/src/core/lib/gprpp/global_config.h +22 -24
- data/src/core/lib/gprpp/global_config_custom.h +20 -20
- data/src/core/lib/gprpp/global_config_env.cc +28 -25
- data/src/core/lib/gprpp/global_config_env.h +29 -27
- data/src/core/lib/gprpp/global_config_generic.h +21 -25
- data/src/core/lib/gprpp/host_port.cc +30 -26
- data/src/core/lib/gprpp/host_port.h +32 -31
- 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 +21 -89
- data/src/core/lib/gprpp/match.h +75 -0
- data/src/core/lib/gprpp/memory.h +22 -26
- data/src/core/lib/gprpp/mpscq.cc +17 -17
- data/src/core/lib/gprpp/mpscq.h +21 -21
- 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 +22 -25
- data/src/core/lib/gprpp/overload.h +59 -0
- 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 +24 -24
- data/src/core/lib/gprpp/ref_counted_ptr.h +42 -55
- 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 +3 -5
- 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 +19 -24
- data/src/core/lib/gprpp/strerror.cc +43 -0
- data/src/core/lib/gprpp/strerror.h +29 -0
- data/src/core/lib/gprpp/sync.h +26 -24
- data/src/core/lib/gprpp/table.h +33 -4
- 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 +25 -28
- 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 +241 -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/time_util.h +3 -3
- 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 +81 -47
- data/src/core/lib/http/format_request.h +30 -27
- data/src/core/lib/http/httpcli.cc +328 -262
- data/src/core/lib/http/httpcli.h +256 -115
- 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 +51 -35
- data/src/core/lib/iomgr/block_annotate.h +23 -23
- data/src/core/lib/iomgr/buffer_list.cc +156 -136
- data/src/core/lib/iomgr/buffer_list.h +128 -106
- data/src/core/lib/iomgr/call_combiner.cc +37 -58
- data/src/core/lib/iomgr/call_combiner.h +24 -25
- data/src/core/lib/iomgr/cfstream_handle.cc +33 -36
- data/src/core/lib/iomgr/cfstream_handle.h +25 -25
- data/src/core/lib/iomgr/closure.cc +27 -0
- data/src/core/lib/iomgr/closure.h +111 -54
- data/src/core/lib/iomgr/combiner.cc +29 -26
- data/src/core/lib/iomgr/combiner.h +20 -20
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +21 -21
- data/src/core/lib/iomgr/dynamic_annotations.h +22 -22
- data/src/core/lib/iomgr/endpoint.cc +21 -21
- data/src/core/lib/iomgr/endpoint.h +53 -51
- data/src/core/lib/iomgr/endpoint_cfstream.cc +51 -47
- data/src/core/lib/iomgr/endpoint_cfstream.h +32 -32
- data/src/core/lib/iomgr/endpoint_pair.h +20 -20
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +34 -27
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +30 -21
- data/src/core/lib/iomgr/error.cc +52 -832
- data/src/core/lib/iomgr/error.h +45 -319
- data/src/core/lib/iomgr/error_cfstream.cc +18 -23
- data/src/core/lib/iomgr/error_cfstream.h +21 -21
- data/src/core/lib/iomgr/ev_apple.cc +27 -26
- data/src/core/lib/iomgr/ev_apple.h +21 -21
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +270 -254
- data/src/core/lib/iomgr/ev_epoll1_linux.h +21 -21
- data/src/core/lib/iomgr/ev_poll_posix.cc +302 -277
- data/src/core/lib/iomgr/ev_poll_posix.h +22 -22
- data/src/core/lib/iomgr/ev_posix.cc +91 -125
- data/src/core/lib/iomgr/ev_posix.h +94 -88
- data/src/core/lib/iomgr/ev_windows.cc +18 -18
- data/src/core/lib/iomgr/event_engine_shims/closure.cc +62 -0
- data/src/core/lib/iomgr/event_engine_shims/closure.h +39 -0
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +430 -0
- data/src/core/lib/iomgr/event_engine_shims/endpoint.h +43 -0
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.cc +91 -0
- data/src/core/lib/iomgr/event_engine_shims/tcp_client.h +44 -0
- data/src/core/lib/iomgr/exec_ctx.cc +45 -139
- data/src/core/lib/iomgr/exec_ctx.h +154 -195
- data/src/core/lib/iomgr/executor.cc +25 -26
- data/src/core/lib/iomgr/executor.h +27 -30
- data/src/core/lib/iomgr/fork_posix.cc +30 -26
- data/src/core/lib/iomgr/fork_windows.cc +21 -21
- data/src/core/lib/iomgr/gethostname.h +20 -20
- 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 +22 -22
- 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 +84 -89
- data/src/core/lib/iomgr/iocp_windows.cc +31 -31
- data/src/core/lib/iomgr/iocp_windows.h +22 -22
- data/src/core/lib/iomgr/iomgr.cc +25 -20
- data/src/core/lib/iomgr/iomgr.h +35 -35
- 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 +28 -28
- 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 +22 -22
- data/src/core/lib/iomgr/lockfree_event.cc +114 -131
- data/src/core/lib/iomgr/lockfree_event.h +23 -23
- data/src/core/lib/iomgr/nameser.h +86 -86
- data/src/core/lib/iomgr/polling_entity.cc +25 -21
- data/src/core/lib/iomgr/polling_entity.h +35 -29
- data/src/core/lib/iomgr/pollset.cc +18 -18
- data/src/core/lib/iomgr/pollset.h +60 -60
- data/src/core/lib/iomgr/pollset_set.cc +17 -17
- data/src/core/lib/iomgr/pollset_set.h +26 -28
- data/src/core/lib/iomgr/pollset_set_windows.cc +18 -18
- data/src/core/lib/iomgr/pollset_set_windows.h +20 -20
- data/src/core/lib/iomgr/pollset_windows.cc +34 -33
- data/src/core/lib/iomgr/pollset_windows.h +24 -24
- data/src/core/lib/iomgr/port.h +59 -42
- data/src/core/lib/iomgr/python_util.h +24 -24
- data/src/core/lib/iomgr/resolve_address.cc +34 -39
- data/src/core/lib/iomgr/resolve_address.h +100 -67
- 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 +25 -26
- data/src/core/lib/iomgr/sockaddr_posix.h +23 -21
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +64 -0
- data/src/core/lib/iomgr/sockaddr_windows.h +23 -21
- data/src/core/lib/iomgr/socket_factory_posix.cc +18 -18
- data/src/core/lib/iomgr/socket_factory_posix.h +32 -32
- data/src/core/lib/iomgr/socket_mutator.cc +19 -18
- data/src/core/lib/iomgr/socket_mutator.h +39 -39
- data/src/core/lib/iomgr/socket_utils.h +27 -27
- 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 +176 -84
- 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 +59 -61
- 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 -24
- data/src/core/lib/iomgr/tcp_client.h +49 -37
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +46 -35
- data/src/core/lib/iomgr/tcp_client_posix.cc +244 -106
- data/src/core/lib/iomgr/tcp_client_posix.h +55 -52
- data/src/core/lib/iomgr/tcp_client_windows.cc +73 -53
- data/src/core/lib/iomgr/tcp_posix.cc +563 -361
- data/src/core/lib/iomgr/tcp_posix.h +32 -30
- data/src/core/lib/iomgr/tcp_server.cc +33 -24
- data/src/core/lib/iomgr/tcp_server.h +78 -69
- data/src/core/lib/iomgr/tcp_server_posix.cc +402 -145
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +68 -55
- 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 -118
- data/src/core/lib/iomgr/tcp_windows.cc +123 -98
- data/src/core/lib/iomgr/tcp_windows.h +34 -35
- data/src/core/lib/iomgr/timer.cc +19 -19
- data/src/core/lib/iomgr/timer.h +78 -73
- data/src/core/lib/iomgr/timer_generic.cc +214 -204
- data/src/core/lib/iomgr/timer_generic.h +21 -21
- data/src/core/lib/iomgr/timer_heap.cc +25 -25
- data/src/core/lib/iomgr/timer_heap.h +22 -22
- data/src/core/lib/iomgr/timer_manager.cc +44 -43
- data/src/core/lib/iomgr/timer_manager.h +27 -27
- data/src/core/lib/iomgr/unix_sockets_posix.cc +38 -51
- data/src/core/lib/iomgr/unix_sockets_posix.h +25 -28
- 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 +20 -20
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +33 -30
- data/src/core/lib/iomgr/wakeup_fd_posix.h +52 -54
- data/src/core/lib/json/json.h +23 -27
- 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 +123 -90
- data/src/core/lib/json/json_util.cc +17 -37
- data/src/core/lib/json/json_util.h +21 -12
- data/src/core/lib/json/json_writer.cc +62 -57
- data/src/core/lib/load_balancing/lb_policy.cc +102 -0
- data/src/core/lib/load_balancing/lb_policy.h +442 -0
- data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
- data/src/core/lib/load_balancing/lb_policy_registry.cc +142 -0
- data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
- data/src/core/lib/load_balancing/subchannel_interface.h +135 -0
- data/src/core/lib/matchers/matchers.cc +13 -8
- data/src/core/lib/matchers/matchers.h +5 -3
- data/src/core/lib/promise/activity.cc +36 -15
- data/src/core/lib/promise/activity.h +287 -188
- data/src/core/lib/promise/arena_promise.h +231 -0
- data/src/core/lib/promise/context.h +18 -11
- data/src/core/lib/promise/detail/basic_join.h +197 -0
- data/src/core/lib/promise/detail/basic_seq.h +104 -20
- data/src/core/lib/promise/detail/promise_factory.h +62 -15
- data/src/core/lib/promise/detail/promise_like.h +3 -3
- data/src/core/lib/promise/detail/status.h +37 -3
- data/src/core/lib/promise/detail/switch.h +21 -21
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +23 -15
- data/src/core/lib/promise/if.h +195 -0
- data/src/core/lib/promise/interceptor_list.h +308 -0
- data/src/core/lib/promise/intra_activity_waiter.h +55 -0
- data/src/core/lib/promise/latch.h +191 -0
- data/src/core/lib/promise/loop.h +44 -14
- data/src/core/lib/promise/map.h +4 -6
- data/src/core/lib/promise/pipe.h +608 -0
- data/src/core/lib/promise/poll.h +132 -8
- data/src/core/lib/promise/promise.h +95 -0
- data/src/core/lib/promise/race.h +6 -10
- data/src/core/lib/promise/seq.h +45 -9
- data/src/core/lib/promise/sleep.cc +90 -0
- data/src/core/lib/promise/sleep.h +84 -0
- data/src/core/lib/promise/trace.cc +20 -0
- data/src/core/lib/promise/trace.h +24 -0
- data/src/core/lib/promise/try_join.h +82 -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 +164 -0
- data/src/core/lib/resolver/resolver_registry.h +123 -0
- data/src/core/lib/resolver/server_address.cc +182 -0
- data/src/core/lib/resolver/server_address.h +145 -0
- data/src/core/lib/resource_quota/api.cc +25 -29
- data/src/core/lib/resource_quota/api.h +14 -6
- data/src/core/lib/resource_quota/arena.cc +165 -0
- data/src/core/lib/resource_quota/arena.h +314 -0
- data/src/core/lib/resource_quota/memory_quota.cc +418 -173
- data/src/core/lib/resource_quota/memory_quota.h +287 -116
- 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.h +20 -4
- data/src/core/lib/resource_quota/thread_quota.cc +2 -0
- data/src/core/lib/resource_quota/thread_quota.h +7 -3
- data/src/core/lib/resource_quota/trace.h +3 -3
- data/src/core/lib/security/authorization/authorization_engine.h +3 -3
- data/src/core/lib/security/authorization/authorization_policy_provider.h +17 -3
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +3 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +42 -28
- data/src/core/lib/security/authorization/evaluate_args.h +10 -7
- 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 +446 -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 +65 -36
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +35 -27
- data/src/core/lib/security/credentials/alts/alts_credentials.h +71 -57
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +19 -19
- data/src/core/lib/security/credentials/alts/check_gcp_environment.h +43 -43
- 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 +38 -39
- 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 +65 -40
- data/src/core/lib/security/credentials/credentials.cc +25 -29
- data/src/core/lib/security/credentials/credentials.h +141 -133
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +248 -104
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +22 -3
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +14 -3
- data/src/core/lib/security/credentials/external/aws_request_signer.h +3 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +137 -101
- data/src/core/lib/security/credentials/external/external_account_credentials.h +19 -12
- 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 +9 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +77 -44
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +14 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +62 -62
- data/src/core/lib/security/credentials/fake/fake_credentials.h +71 -63
- 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 +163 -124
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +41 -29
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +50 -47
- data/src/core/lib/security/credentials/iam/iam_credentials.h +46 -30
- 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 +36 -36
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +62 -71
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +51 -33
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +166 -129
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +51 -49
- data/src/core/lib/security/credentials/local/local_credentials.cc +36 -30
- data/src/core/lib/security/credentials/local/local_credentials.h +42 -26
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +229 -234
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +103 -55
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +122 -174
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +101 -48
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +49 -54
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +49 -26
- 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 +16 -17
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +65 -48
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +69 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +44 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +75 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +47 -23
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +70 -83
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +55 -50
- data/src/core/lib/security/credentials/tls/tls_credentials.h +34 -25
- data/src/core/lib/security/credentials/tls/tls_utils.cc +5 -1
- data/src/core/lib/security/credentials/tls/tls_utils.h +4 -4
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +77 -81
- data/src/core/lib/security/credentials/xds/xds_credentials.h +56 -11
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +68 -68
- 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 +79 -91
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +26 -29
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +21 -22
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +30 -24
- data/src/core/lib/security/security_connector/load_system_roots.h +20 -20
- 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 +74 -65
- data/src/core/lib/security/security_connector/local/local_security_connector.h +49 -46
- data/src/core/lib/security/security_connector/security_connector.cc +39 -49
- data/src/core/lib/security/security_connector/security_connector.h +82 -65
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +65 -59
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +44 -43
- data/src/core/lib/security/security_connector/ssl_utils.cc +76 -70
- data/src/core/lib/security/security_connector/ssl_utils.h +57 -58
- data/src/core/lib/security/security_connector/ssl_utils_config.cc +22 -22
- data/src/core/lib/security/security_connector/ssl_utils_config.h +21 -22
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +83 -71
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +54 -34
- data/src/core/lib/security/transport/auth_filters.h +89 -27
- 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 +29 -28
- data/src/core/lib/security/transport/security_handshaker.cc +147 -107
- data/src/core/lib/security/transport/security_handshaker.h +28 -23
- data/src/core/lib/security/transport/server_auth_filter.cc +179 -282
- data/src/core/lib/security/transport/tsi_error.cc +23 -20
- data/src/core/lib/security/transport/tsi_error.h +20 -20
- data/src/core/lib/security/util/json_util.cc +24 -24
- data/src/core/lib/security/util/json_util.h +21 -23
- 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 +34 -32
- data/src/core/lib/slice/percent_encoding.cc +24 -30
- data/src/core/lib/slice/percent_encoding.h +28 -34
- data/src/core/lib/slice/slice.cc +128 -218
- data/src/core/lib/slice/slice.h +126 -39
- data/src/core/lib/slice/slice_buffer.cc +136 -76
- data/src/core/lib/slice/slice_buffer.h +168 -0
- data/src/core/lib/slice/slice_internal.h +43 -69
- data/src/core/lib/slice/slice_refcount.cc +4 -1
- data/src/core/lib/slice/slice_refcount.h +51 -96
- data/src/core/lib/slice/slice_string_helpers.cc +17 -33
- data/src/core/lib/slice/slice_string_helpers.h +23 -30
- data/src/core/lib/surface/api_trace.cc +17 -17
- data/src/core/lib/surface/api_trace.h +25 -25
- data/src/core/lib/surface/builtins.cc +11 -6
- data/src/core/lib/surface/builtins.h +3 -3
- 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 +3070 -1436
- data/src/core/lib/surface/call.h +140 -61
- data/src/core/lib/surface/call_details.cc +22 -23
- data/src/core/lib/surface/call_log_batch.cc +25 -18
- data/src/core/lib/surface/call_test_only.h +34 -31
- data/src/core/lib/surface/call_trace.cc +123 -0
- data/src/core/lib/surface/call_trace.h +30 -0
- data/src/core/lib/surface/channel.cc +249 -322
- data/src/core/lib/surface/channel.h +140 -94
- data/src/core/lib/surface/channel_init.cc +19 -20
- data/src/core/lib/surface/channel_init.h +25 -27
- 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 +22 -22
- data/src/core/lib/surface/completion_queue.cc +210 -231
- data/src/core/lib/surface/completion_queue.h +42 -40
- data/src/core/lib/surface/completion_queue_factory.cc +34 -28
- data/src/core/lib/surface/completion_queue_factory.h +21 -23
- data/src/core/lib/surface/event_string.cc +19 -24
- data/src/core/lib/surface/event_string.h +21 -21
- data/src/core/lib/surface/init.cc +106 -94
- data/src/core/lib/surface/init.h +20 -30
- 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 +87 -130
- data/src/core/lib/surface/lame_client.h +62 -24
- data/src/core/lib/surface/metadata_array.cc +18 -17
- data/src/core/lib/surface/server.cc +421 -228
- data/src/core/lib/surface/server.h +62 -31
- data/src/core/lib/surface/validate_metadata.cc +34 -48
- data/src/core/lib/surface/validate_metadata.h +24 -21
- 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 +24 -26
- data/src/core/lib/transport/connectivity_state.cc +24 -23
- data/src/core/lib/transport/connectivity_state.h +24 -25
- data/src/core/lib/transport/error_utils.cc +62 -82
- data/src/core/lib/transport/error_utils.h +31 -26
- data/src/core/lib/transport/handshaker.cc +239 -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 +22 -22
- 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 +278 -72
- data/src/core/lib/transport/metadata_batch.h +1052 -825
- data/src/core/lib/transport/parsed_metadata.cc +4 -4
- data/src/core/lib/transport/parsed_metadata.h +128 -100
- data/src/core/lib/transport/pid_controller.cc +20 -20
- data/src/core/lib/transport/pid_controller.h +27 -27
- data/src/core/lib/transport/status_conversion.cc +25 -25
- data/src/core/lib/transport/status_conversion.h +25 -25
- data/src/core/lib/transport/tcp_connect_handshaker.cc +245 -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 +65 -31
- data/src/core/lib/transport/transport.cc +99 -57
- data/src/core/lib/transport/transport.h +282 -152
- data/src/core/lib/transport/transport_fwd.h +20 -0
- data/src/core/lib/transport/transport_impl.h +59 -35
- data/src/core/lib/transport/transport_op_string.cc +44 -85
- data/src/core/lib/uri/uri_parser.cc +239 -57
- data/src/core/lib/uri/uri_parser.h +40 -28
- data/src/core/plugin_registry/grpc_plugin_registry.cc +77 -156
- 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 +336 -336
- data/src/core/tsi/alts/frame_protector/alts_counter.cc +23 -23
- data/src/core/tsi/alts/frame_protector/alts_counter.h +68 -68
- data/src/core/tsi/alts/frame_protector/alts_crypter.cc +19 -19
- data/src/core/tsi/alts/frame_protector/alts_crypter.h +209 -209
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +72 -71
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +40 -40
- 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 +82 -83
- 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 +169 -169
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +142 -117
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +104 -104
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +27 -18
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +43 -44
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +72 -56
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +60 -60
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +24 -24
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +23 -22
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +39 -39
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +21 -21
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +107 -106
- 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 +40 -41
- 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 +35 -36
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +67 -68
- 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 +55 -56
- 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 +141 -142
- 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 +43 -44
- data/src/core/tsi/fake_transport_security.cc +146 -110
- data/src/core/tsi/fake_transport_security.h +36 -30
- data/src/core/tsi/local_transport_security.cc +46 -49
- data/src/core/tsi/local_transport_security.h +34 -37
- 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 +24 -24
- 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 +34 -27
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +27 -20
- data/src/core/tsi/ssl_transport_security.cc +451 -394
- data/src/core/tsi/ssl_transport_security.h +235 -194
- 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 +27 -27
- data/src/core/tsi/transport_security.cc +44 -32
- data/src/core/tsi/transport_security.h +49 -48
- data/src/core/tsi/transport_security_grpc.cc +23 -22
- data/src/core/tsi/transport_security_grpc.h +44 -41
- data/src/core/tsi/transport_security_interface.h +346 -332
- 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 +58 -62
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +90 -96
- 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 -6
- 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 +57 -58
- data/third_party/abseil-cpp/absl/base/attributes.h +88 -41
- data/third_party/abseil-cpp/absl/base/casts.h +61 -68
- data/third_party/abseil-cpp/absl/base/config.h +221 -39
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +52 -2
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +5 -4
- 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/inline_variable.h +3 -3
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +54 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +1 -1
- data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +39 -28
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +36 -36
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +6 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +10 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +4 -1
- 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 +14 -11
- data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +9 -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 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +6 -7
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +12 -40
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
- 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/macros.h +4 -21
- data/third_party/abseil-cpp/absl/base/optimization.h +76 -16
- data/third_party/abseil-cpp/absl/base/options.h +1 -7
- data/third_party/abseil-cpp/absl/base/policy_checks.h +15 -13
- 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 +9 -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 +503 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +84 -25
- data/third_party/abseil-cpp/absl/container/internal/common.h +9 -8
- data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +132 -0
- data/third_party/abseil-cpp/absl/container/internal/container_memory.h +23 -29
- data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +4 -55
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +116 -23
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +40 -54
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +165 -66
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +159 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1121 -470
- data/third_party/abseil-cpp/absl/crc/crc32c.cc +99 -0
- data/third_party/abseil-cpp/absl/crc/crc32c.h +183 -0
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +256 -0
- data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +57 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc.cc +468 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc.h +91 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +269 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc32c.h +39 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc32c_inline.h +72 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.cc +130 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_cord_state.h +159 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +179 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy.h +119 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +75 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +434 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +93 -0
- data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +725 -0
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +79 -0
- data/third_party/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +180 -0
- data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -88
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +67 -38
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +16 -13
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +3 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +19 -12
- 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 +2 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +1 -1
- 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 +59 -102
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +5 -4
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +41 -11
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +18 -4
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +6 -1
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +164 -101
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +7 -6
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +316 -0
- data/third_party/abseil-cpp/absl/functional/bind_front.h +10 -1
- data/third_party/abseil-cpp/absl/functional/function_ref.h +2 -1
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +878 -0
- data/third_party/abseil-cpp/absl/hash/hash.h +82 -8
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +10 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +235 -26
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +3 -14
- data/third_party/abseil-cpp/absl/memory/memory.h +26 -447
- data/third_party/abseil-cpp/absl/meta/type_traits.h +104 -12
- data/third_party/abseil-cpp/absl/numeric/bits.h +1 -1
- data/third_party/abseil-cpp/absl/numeric/int128.cc +14 -10
- data/third_party/abseil-cpp/absl/numeric/int128.h +2 -2
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +33 -10
- 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 +270 -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 +287 -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 +18 -0
- data/third_party/abseil-cpp/absl/status/status.cc +193 -14
- data/third_party/abseil-cpp/absl/status/status.h +24 -14
- data/third_party/abseil-cpp/absl/status/statusor.h +9 -3
- data/third_party/abseil-cpp/absl/strings/ascii.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
- data/third_party/abseil-cpp/absl/strings/charconv.cc +534 -96
- data/third_party/abseil-cpp/absl/strings/cord.cc +257 -924
- data/third_party/abseil-cpp/absl/strings/cord.h +268 -156
- 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 +575 -0
- data/third_party/abseil-cpp/absl/strings/escaping.cc +73 -62
- data/third_party/abseil-cpp/absl/strings/escaping.h +24 -19
- data/third_party/abseil-cpp/absl/strings/internal/char_map.h +14 -12
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
- 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 +20 -32
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +441 -150
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +157 -53
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +70 -73
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +8 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +5 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +7 -74
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +56 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +103 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +58 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +13 -11
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +7 -15
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +3 -3
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +19 -43
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +7 -7
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +5 -4
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +4 -2
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +93 -0
- data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +34 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +18 -15
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +7 -9
- data/third_party/abseil-cpp/absl/strings/internal/has_absl_stringify.h +55 -0
- data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +9 -6
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +14 -7
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +35 -10
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +113 -46
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +127 -30
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +42 -10
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +56 -289
- data/third_party/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +351 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +9 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +215 -181
- 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 +10 -209
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -103
- 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 +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +10 -2
- data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.cc +28 -0
- data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +57 -0
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
- data/third_party/abseil-cpp/absl/strings/numbers.cc +42 -39
- data/third_party/abseil-cpp/absl/strings/numbers.h +26 -23
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +9 -6
- data/third_party/abseil-cpp/absl/strings/str_cat.h +70 -16
- data/third_party/abseil-cpp/absl/strings/str_format.h +71 -9
- 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 +8 -19
- data/third_party/abseil-cpp/absl/strings/string_view.h +6 -12
- data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.cc +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.h +55 -21
- 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/futex.h +20 -17
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +37 -31
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +22 -8
- 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 +0 -25
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +10 -4
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +172 -88
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +102 -55
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +0 -1
- data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -3
- data/third_party/abseil-cpp/absl/time/civil_time.cc +26 -0
- data/third_party/abseil-cpp/absl/time/civil_time.h +25 -0
- data/third_party/abseil-cpp/absl/time/clock.cc +17 -11
- data/third_party/abseil-cpp/absl/time/duration.cc +12 -11
- data/third_party/abseil-cpp/absl/time/format.cc +2 -1
- 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/src/time_zone_format.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +26 -5
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +7 -6
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +36 -35
- data/third_party/abseil-cpp/absl/time/time.cc +2 -2
- data/third_party/abseil-cpp/absl/time/time.h +268 -169
- data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
- data/third_party/abseil-cpp/absl/types/internal/span.h +30 -19
- data/third_party/abseil-cpp/absl/types/internal/variant.h +28 -40
- data/third_party/abseil-cpp/absl/types/optional.h +17 -14
- data/third_party/abseil-cpp/absl/types/span.h +31 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
- 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/hpke/hpke.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +1 -1
- 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/x509v3/v3_genn.c +1 -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/dsa.h +10 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +9 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +6 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +23 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +1 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.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/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/src/lib/ares__readaddrinfo.c +264 -0
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -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/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/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/src/lib/ares_free_hostent.c +43 -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/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/src/lib/ares_init.c +2654 -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/src/lib/ares_nameser.h +482 -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/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/src/lib/ares_strsplit.c +178 -0
- data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
- data/third_party/cares/cares/src/lib/config-dos.h +115 -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/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 +685 -366
- 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 +1932 -1076
- data/third_party/upb/upb/def.h +336 -288
- data/third_party/upb/upb/def.hpp +134 -174
- data/third_party/upb/upb/encode.c +228 -186
- 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 +125 -167
- data/third_party/upb/upb/msg.h +18 -55
- data/third_party/upb/upb/msg_internal.h +352 -284
- 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 +150 -267
- data/third_party/upb/upb/reflection.h +36 -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 +115 -91
- data/third_party/upb/upb/text_encode.h +10 -10
- data/third_party/upb/upb/upb.c +34 -281
- 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 +790 -298
- data/include/grpc/impl/codegen/gpr_slice.h +0 -71
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +0 -390
- 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 -441
- 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 -194
- data/src/core/ext/filters/client_channel/resolver_registry.h +0 -88
- 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/filters/server_config_selector/server_config_selector.cc +0 -67
- 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 -122
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -92
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -192
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -52
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -79
- 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 -38
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -64
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -38
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -64
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +0 -102
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +0 -306
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +0 -56
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +0 -135
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +0 -115
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +0 -371
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -67
- 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 -68
- 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 -67
- 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 -75
- 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 -69
- 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/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 -140
- data/src/core/lib/compression/compression_args.h +0 -58
- 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/event_engine_factory.cc +0 -49
- data/src/core/lib/event_engine/event_engine_factory.h +0 -33
- 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 -157
- 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 -172
- data/src/core/lib/iomgr/event_engine/endpoint.h +0 -52
- data/src/core/lib/iomgr/event_engine/iomgr.cc +0 -84
- 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 -115
- data/src/core/lib/iomgr/event_engine/tcp.cc +0 -295
- data/src/core/lib/iomgr/event_engine/timer.cc +0 -63
- 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/sys_epoll_wrapper.h +0 -30
- data/src/core/lib/iomgr/tcp_client_custom.cc +0 -146
- data/src/core/lib/iomgr/tcp_custom.cc +0 -350
- data/src/core/lib/iomgr/tcp_custom.h +0 -85
- data/src/core/lib/iomgr/tcp_server_custom.cc +0 -457
- 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 -226
- data/src/core/lib/iomgr/work_serializer.h +0 -93
- 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 -173
- 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 -170
- 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_base.h +0 -181
- 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 -377
- data/src/core/lib/slice/static_slice.h +0 -300
- data/src/core/lib/surface/init_secure.cc +0 -103
- data/src/core/lib/transport/byte_stream.cc +0 -162
- 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 -1032
- data/src/core/lib/transport/static_metadata.h +0 -322
- 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/container/internal/have_sse.h +0 -50
- 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 -194
- data/third_party/upb/upb/upb_internal.h +0 -58
- /data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
- /data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
- /data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
- /data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
- /data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
- /data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
- /data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
- /data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -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/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -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/{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/{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/{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/{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/{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/{config-win32.h → src/lib/config-win32.h} +0 -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
@@ -1,20 +1,20 @@
|
|
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
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
@@ -23,9 +23,9 @@
|
|
23
23
|
#include <limits.h>
|
24
24
|
#include <string.h>
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
// TODO(jboeuf): refactor inet_ntop into a portability header.
|
27
|
+
// Note: for whomever reads this and tries to refactor this, this
|
28
|
+
// can't be in grpc, it has to be in gpr.
|
29
29
|
#ifdef GPR_WINDOWS
|
30
30
|
#include <ws2tcpip.h>
|
31
31
|
#else
|
@@ -35,7 +35,17 @@
|
|
35
35
|
|
36
36
|
#include <string>
|
37
37
|
|
38
|
+
#include <openssl/bio.h>
|
39
|
+
#include <openssl/crypto.h> // For OPENSSL_free
|
40
|
+
#include <openssl/engine.h>
|
41
|
+
#include <openssl/err.h>
|
42
|
+
#include <openssl/ssl.h>
|
43
|
+
#include <openssl/tls1.h>
|
44
|
+
#include <openssl/x509.h>
|
45
|
+
#include <openssl/x509v3.h>
|
46
|
+
|
38
47
|
#include "absl/strings/match.h"
|
48
|
+
#include "absl/strings/str_cat.h"
|
39
49
|
#include "absl/strings/string_view.h"
|
40
50
|
|
41
51
|
#include <grpc/grpc_security.h>
|
@@ -45,40 +55,34 @@
|
|
45
55
|
#include <grpc/support/sync.h>
|
46
56
|
#include <grpc/support/thd_id.h>
|
47
57
|
|
48
|
-
extern "C" {
|
49
|
-
#include <openssl/bio.h>
|
50
|
-
#include <openssl/crypto.h> /* For OPENSSL_free */
|
51
|
-
#include <openssl/engine.h>
|
52
|
-
#include <openssl/err.h>
|
53
|
-
#include <openssl/ssl.h>
|
54
|
-
#include <openssl/tls1.h>
|
55
|
-
#include <openssl/x509.h>
|
56
|
-
#include <openssl/x509v3.h>
|
57
|
-
}
|
58
|
-
|
59
58
|
#include "src/core/lib/gpr/useful.h"
|
59
|
+
#include "src/core/lib/gprpp/crash.h"
|
60
|
+
#include "src/core/tsi/ssl/key_logging/ssl_key_logging.h"
|
60
61
|
#include "src/core/tsi/ssl/session_cache/ssl_session_cache.h"
|
62
|
+
#include "src/core/tsi/ssl_transport_security_utils.h"
|
61
63
|
#include "src/core/tsi/ssl_types.h"
|
62
64
|
#include "src/core/tsi/transport_security.h"
|
63
65
|
|
64
|
-
|
66
|
+
// --- Constants. ---
|
65
67
|
|
66
68
|
#define TSI_SSL_MAX_PROTECTED_FRAME_SIZE_UPPER_BOUND 16384
|
67
69
|
#define TSI_SSL_MAX_PROTECTED_FRAME_SIZE_LOWER_BOUND 1024
|
68
70
|
#define TSI_SSL_HANDSHAKER_OUTGOING_BUFFER_INITIAL_SIZE 1024
|
69
71
|
|
70
|
-
|
71
|
-
|
72
|
-
|
72
|
+
// Putting a macro like this and littering the source file with #if is really
|
73
|
+
// bad practice.
|
74
|
+
// TODO(jboeuf): refactor all the #if / #endif in a separate module.
|
73
75
|
#ifndef TSI_OPENSSL_ALPN_SUPPORT
|
74
76
|
#define TSI_OPENSSL_ALPN_SUPPORT 1
|
75
77
|
#endif
|
76
78
|
|
77
|
-
|
78
|
-
|
79
|
+
// TODO(jboeuf): I have not found a way to get this number dynamically from the
|
80
|
+
// SSL structure. This is what we would ultimately want though...
|
79
81
|
#define TSI_SSL_MAX_PROTECTION_OVERHEAD 100
|
80
82
|
|
81
|
-
|
83
|
+
using TlsSessionKeyLogger = tsi::TlsSessionKeyLoggerCache::TlsSessionKeyLogger;
|
84
|
+
|
85
|
+
// --- Structure definitions. ---
|
82
86
|
|
83
87
|
struct tsi_ssl_root_certs_store {
|
84
88
|
X509_STORE* store;
|
@@ -95,18 +99,20 @@ struct tsi_ssl_client_handshaker_factory {
|
|
95
99
|
unsigned char* alpn_protocol_list;
|
96
100
|
size_t alpn_protocol_list_length;
|
97
101
|
grpc_core::RefCountedPtr<tsi::SslSessionLRUCache> session_cache;
|
102
|
+
grpc_core::RefCountedPtr<TlsSessionKeyLogger> key_logger;
|
98
103
|
};
|
99
104
|
|
100
105
|
struct tsi_ssl_server_handshaker_factory {
|
101
|
-
|
102
|
-
|
103
|
-
|
106
|
+
// Several contexts to support SNI.
|
107
|
+
// The tsi_peer array contains the subject names of the server certificates
|
108
|
+
// associated with the contexts at the same index.
|
104
109
|
tsi_ssl_handshaker_factory base;
|
105
110
|
SSL_CTX** ssl_contexts;
|
106
111
|
tsi_peer* ssl_context_x509_subject_names;
|
107
112
|
size_t ssl_context_count;
|
108
113
|
unsigned char* alpn_protocol_list;
|
109
114
|
size_t alpn_protocol_list_length;
|
115
|
+
grpc_core::RefCountedPtr<TlsSessionKeyLogger> key_logger;
|
110
116
|
};
|
111
117
|
|
112
118
|
struct tsi_ssl_handshaker {
|
@@ -133,11 +139,12 @@ struct tsi_ssl_frame_protector {
|
|
133
139
|
size_t buffer_size;
|
134
140
|
size_t buffer_offset;
|
135
141
|
};
|
136
|
-
|
142
|
+
// --- Library Initialization. ---
|
137
143
|
|
138
144
|
static gpr_once g_init_openssl_once = GPR_ONCE_INIT;
|
139
145
|
static int g_ssl_ctx_ex_factory_index = -1;
|
140
146
|
static const unsigned char kSslSessionIdContext[] = {'g', 'r', 'p', 'c'};
|
147
|
+
static int g_ssl_ex_verified_root_cert_index = -1;
|
141
148
|
#if !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE)
|
142
149
|
static const char kSslEnginePrefix[] = "engine:";
|
143
150
|
#endif
|
@@ -187,36 +194,15 @@ static void init_openssl(void) {
|
|
187
194
|
g_ssl_ctx_ex_factory_index =
|
188
195
|
SSL_CTX_get_ex_new_index(0, nullptr, nullptr, nullptr, nullptr);
|
189
196
|
GPR_ASSERT(g_ssl_ctx_ex_factory_index != -1);
|
190
|
-
}
|
191
197
|
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
switch (error) {
|
196
|
-
case SSL_ERROR_NONE:
|
197
|
-
return "SSL_ERROR_NONE";
|
198
|
-
case SSL_ERROR_ZERO_RETURN:
|
199
|
-
return "SSL_ERROR_ZERO_RETURN";
|
200
|
-
case SSL_ERROR_WANT_READ:
|
201
|
-
return "SSL_ERROR_WANT_READ";
|
202
|
-
case SSL_ERROR_WANT_WRITE:
|
203
|
-
return "SSL_ERROR_WANT_WRITE";
|
204
|
-
case SSL_ERROR_WANT_CONNECT:
|
205
|
-
return "SSL_ERROR_WANT_CONNECT";
|
206
|
-
case SSL_ERROR_WANT_ACCEPT:
|
207
|
-
return "SSL_ERROR_WANT_ACCEPT";
|
208
|
-
case SSL_ERROR_WANT_X509_LOOKUP:
|
209
|
-
return "SSL_ERROR_WANT_X509_LOOKUP";
|
210
|
-
case SSL_ERROR_SYSCALL:
|
211
|
-
return "SSL_ERROR_SYSCALL";
|
212
|
-
case SSL_ERROR_SSL:
|
213
|
-
return "SSL_ERROR_SSL";
|
214
|
-
default:
|
215
|
-
return "Unknown error";
|
216
|
-
}
|
198
|
+
g_ssl_ex_verified_root_cert_index =
|
199
|
+
SSL_get_ex_new_index(0, nullptr, nullptr, nullptr, nullptr);
|
200
|
+
GPR_ASSERT(g_ssl_ex_verified_root_cert_index != -1);
|
217
201
|
}
|
218
202
|
|
219
|
-
|
203
|
+
// --- Ssl utils. ---
|
204
|
+
|
205
|
+
// TODO(jboeuf): Remove when we are past the debugging phase with this code.
|
220
206
|
static void ssl_log_where_info(const SSL* ssl, int where, int flag,
|
221
207
|
const char* msg) {
|
222
208
|
if ((where & flag) && GRPC_TRACE_FLAG_ENABLED(tsi_tracing_enabled)) {
|
@@ -225,7 +211,7 @@ static void ssl_log_where_info(const SSL* ssl, int where, int flag,
|
|
225
211
|
}
|
226
212
|
}
|
227
213
|
|
228
|
-
|
214
|
+
// Used for debugging. TODO(jboeuf): Remove when code is mature enough.
|
229
215
|
static void ssl_info_callback(const SSL* ssl, int where, int ret) {
|
230
216
|
if (ret == 0) {
|
231
217
|
gpr_log(GPR_ERROR, "ssl_info_callback: error occurred.\n");
|
@@ -237,14 +223,14 @@ static void ssl_info_callback(const SSL* ssl, int where, int ret) {
|
|
237
223
|
ssl_log_where_info(ssl, where, SSL_CB_HANDSHAKE_DONE, "HANDSHAKE DONE");
|
238
224
|
}
|
239
225
|
|
240
|
-
|
241
|
-
|
226
|
+
// Returns 1 if name looks like an IP address, 0 otherwise.
|
227
|
+
// This is a very rough heuristic, and only handles IPv6 in hexadecimal form.
|
242
228
|
static int looks_like_ip_address(absl::string_view name) {
|
243
229
|
size_t dot_count = 0;
|
244
230
|
size_t num_size = 0;
|
245
231
|
for (size_t i = 0; i < name.size(); ++i) {
|
246
232
|
if (name[i] == ':') {
|
247
|
-
|
233
|
+
// IPv6 Address in hexadecimal form, : is not allowed in DNS names.
|
248
234
|
return 1;
|
249
235
|
}
|
250
236
|
if (name[i] >= '0' && name[i] <= '9') {
|
@@ -262,7 +248,7 @@ static int looks_like_ip_address(absl::string_view name) {
|
|
262
248
|
return 1;
|
263
249
|
}
|
264
250
|
|
265
|
-
|
251
|
+
// Gets the subject CN from an X509 cert.
|
266
252
|
static tsi_result ssl_get_x509_common_name(X509* cert, unsigned char** utf8,
|
267
253
|
size_t* utf8_size) {
|
268
254
|
int common_name_index = -1;
|
@@ -300,7 +286,7 @@ static tsi_result ssl_get_x509_common_name(X509* cert, unsigned char** utf8,
|
|
300
286
|
return TSI_OK;
|
301
287
|
}
|
302
288
|
|
303
|
-
|
289
|
+
// Gets the subject CN of an X509 cert as a tsi_peer_property.
|
304
290
|
static tsi_result peer_property_from_x509_common_name(
|
305
291
|
X509* cert, tsi_peer_property* property) {
|
306
292
|
unsigned char* common_name;
|
@@ -323,9 +309,10 @@ static tsi_result peer_property_from_x509_common_name(
|
|
323
309
|
return result;
|
324
310
|
}
|
325
311
|
|
326
|
-
|
312
|
+
// Gets the subject of an X509 cert as a tsi_peer_property.
|
327
313
|
static tsi_result peer_property_from_x509_subject(X509* cert,
|
328
|
-
tsi_peer_property* property
|
314
|
+
tsi_peer_property* property,
|
315
|
+
bool is_verified_root_cert) {
|
329
316
|
X509_NAME* subject_name = X509_get_subject_name(cert);
|
330
317
|
if (subject_name == nullptr) {
|
331
318
|
gpr_log(GPR_INFO, "Could not get subject name from certificate.");
|
@@ -340,14 +327,21 @@ static tsi_result peer_property_from_x509_subject(X509* cert,
|
|
340
327
|
BIO_free(bio);
|
341
328
|
return TSI_INTERNAL_ERROR;
|
342
329
|
}
|
343
|
-
tsi_result result
|
344
|
-
|
345
|
-
|
330
|
+
tsi_result result;
|
331
|
+
if (!is_verified_root_cert) {
|
332
|
+
result = tsi_construct_string_peer_property(
|
333
|
+
TSI_X509_SUBJECT_PEER_PROPERTY, contents, static_cast<size_t>(len),
|
334
|
+
property);
|
335
|
+
} else {
|
336
|
+
result = tsi_construct_string_peer_property(
|
337
|
+
TSI_X509_VERIFIED_ROOT_CERT_SUBECT_PEER_PROPERTY, contents,
|
338
|
+
static_cast<size_t>(len), property);
|
339
|
+
}
|
346
340
|
BIO_free(bio);
|
347
341
|
return result;
|
348
342
|
}
|
349
343
|
|
350
|
-
|
344
|
+
// Gets the X509 cert in PEM format as a tsi_peer_property.
|
351
345
|
static tsi_result add_pem_certificate(X509* cert, tsi_peer_property* property) {
|
352
346
|
BIO* bio = BIO_new(BIO_s_mem());
|
353
347
|
if (!PEM_write_bio_X509(bio, cert)) {
|
@@ -366,7 +360,7 @@ static tsi_result add_pem_certificate(X509* cert, tsi_peer_property* property) {
|
|
366
360
|
return result;
|
367
361
|
}
|
368
362
|
|
369
|
-
|
363
|
+
// Gets the subject SANs from an X509 cert as a tsi_peer_property.
|
370
364
|
static tsi_result add_subject_alt_names_properties_to_peer(
|
371
365
|
tsi_peer* peer, GENERAL_NAMES* subject_alt_names,
|
372
366
|
size_t subject_alt_name_count, int* current_insert_index) {
|
@@ -449,10 +443,10 @@ static tsi_result add_subject_alt_names_properties_to_peer(
|
|
449
443
|
return result;
|
450
444
|
}
|
451
445
|
|
452
|
-
|
446
|
+
// Gets information about the peer's X509 cert as a tsi_peer object.
|
453
447
|
static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
454
448
|
tsi_peer* peer) {
|
455
|
-
|
449
|
+
// TODO(jboeuf): Maybe add more properties.
|
456
450
|
GENERAL_NAMES* subject_alt_names = static_cast<GENERAL_NAMES*>(
|
457
451
|
X509_get_ext_d2i(cert, NID_subject_alt_name, nullptr, nullptr));
|
458
452
|
int subject_alt_name_count =
|
@@ -462,7 +456,7 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
|
462
456
|
size_t property_count;
|
463
457
|
tsi_result result;
|
464
458
|
GPR_ASSERT(subject_alt_name_count >= 0);
|
465
|
-
property_count = (include_certificate_type ?
|
459
|
+
property_count = (include_certificate_type ? size_t{1} : 0) +
|
466
460
|
3 /* subject, common name, certificate */ +
|
467
461
|
static_cast<size_t>(subject_alt_name_count);
|
468
462
|
for (int i = 0; i < subject_alt_name_count; i++) {
|
@@ -491,7 +485,8 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
|
491
485
|
}
|
492
486
|
|
493
487
|
result = peer_property_from_x509_subject(
|
494
|
-
cert, &peer->properties[current_insert_index++]
|
488
|
+
cert, &peer->properties[current_insert_index++],
|
489
|
+
/*is_verified_root_cert=*/false);
|
495
490
|
if (result != TSI_OK) break;
|
496
491
|
|
497
492
|
result = peer_property_from_x509_common_name(
|
@@ -519,72 +514,7 @@ static tsi_result peer_from_x509(X509* cert, int include_certificate_type,
|
|
519
514
|
return result;
|
520
515
|
}
|
521
516
|
|
522
|
-
|
523
|
-
static void log_ssl_error_stack(void) {
|
524
|
-
unsigned long err;
|
525
|
-
while ((err = ERR_get_error()) != 0) {
|
526
|
-
char details[256];
|
527
|
-
ERR_error_string_n(static_cast<uint32_t>(err), details, sizeof(details));
|
528
|
-
gpr_log(GPR_ERROR, "%s", details);
|
529
|
-
}
|
530
|
-
}
|
531
|
-
|
532
|
-
/* Performs an SSL_read and handle errors. */
|
533
|
-
static tsi_result do_ssl_read(SSL* ssl, unsigned char* unprotected_bytes,
|
534
|
-
size_t* unprotected_bytes_size) {
|
535
|
-
GPR_ASSERT(*unprotected_bytes_size <= INT_MAX);
|
536
|
-
ERR_clear_error();
|
537
|
-
int read_from_ssl = SSL_read(ssl, unprotected_bytes,
|
538
|
-
static_cast<int>(*unprotected_bytes_size));
|
539
|
-
if (read_from_ssl <= 0) {
|
540
|
-
read_from_ssl = SSL_get_error(ssl, read_from_ssl);
|
541
|
-
switch (read_from_ssl) {
|
542
|
-
case SSL_ERROR_ZERO_RETURN: /* Received a close_notify alert. */
|
543
|
-
case SSL_ERROR_WANT_READ: /* We need more data to finish the frame. */
|
544
|
-
*unprotected_bytes_size = 0;
|
545
|
-
return TSI_OK;
|
546
|
-
case SSL_ERROR_WANT_WRITE:
|
547
|
-
gpr_log(
|
548
|
-
GPR_ERROR,
|
549
|
-
"Peer tried to renegotiate SSL connection. This is unsupported.");
|
550
|
-
return TSI_UNIMPLEMENTED;
|
551
|
-
case SSL_ERROR_SSL:
|
552
|
-
gpr_log(GPR_ERROR, "Corruption detected.");
|
553
|
-
log_ssl_error_stack();
|
554
|
-
return TSI_DATA_CORRUPTED;
|
555
|
-
default:
|
556
|
-
gpr_log(GPR_ERROR, "SSL_read failed with error %s.",
|
557
|
-
ssl_error_string(read_from_ssl));
|
558
|
-
return TSI_PROTOCOL_FAILURE;
|
559
|
-
}
|
560
|
-
}
|
561
|
-
*unprotected_bytes_size = static_cast<size_t>(read_from_ssl);
|
562
|
-
return TSI_OK;
|
563
|
-
}
|
564
|
-
|
565
|
-
/* Performs an SSL_write and handle errors. */
|
566
|
-
static tsi_result do_ssl_write(SSL* ssl, unsigned char* unprotected_bytes,
|
567
|
-
size_t unprotected_bytes_size) {
|
568
|
-
GPR_ASSERT(unprotected_bytes_size <= INT_MAX);
|
569
|
-
ERR_clear_error();
|
570
|
-
int ssl_write_result = SSL_write(ssl, unprotected_bytes,
|
571
|
-
static_cast<int>(unprotected_bytes_size));
|
572
|
-
if (ssl_write_result < 0) {
|
573
|
-
ssl_write_result = SSL_get_error(ssl, ssl_write_result);
|
574
|
-
if (ssl_write_result == SSL_ERROR_WANT_READ) {
|
575
|
-
gpr_log(GPR_ERROR,
|
576
|
-
"Peer tried to renegotiate SSL connection. This is unsupported.");
|
577
|
-
return TSI_UNIMPLEMENTED;
|
578
|
-
} else {
|
579
|
-
gpr_log(GPR_ERROR, "SSL_write failed with error %s.",
|
580
|
-
ssl_error_string(ssl_write_result));
|
581
|
-
return TSI_INTERNAL_ERROR;
|
582
|
-
}
|
583
|
-
}
|
584
|
-
return TSI_OK;
|
585
|
-
}
|
586
|
-
|
587
|
-
/* Loads an in-memory PEM certificate chain into the SSL context. */
|
517
|
+
// Loads an in-memory PEM certificate chain into the SSL context.
|
588
518
|
static tsi_result ssl_ctx_use_certificate_chain(SSL_CTX* context,
|
589
519
|
const char* pem_cert_chain,
|
590
520
|
size_t pem_cert_chain_size) {
|
@@ -611,17 +541,17 @@ static tsi_result ssl_ctx_use_certificate_chain(SSL_CTX* context,
|
|
611
541
|
PEM_read_bio_X509(pem, nullptr, nullptr, const_cast<char*>(""));
|
612
542
|
if (certificate_authority == nullptr) {
|
613
543
|
ERR_clear_error();
|
614
|
-
break;
|
544
|
+
break; // Done reading.
|
615
545
|
}
|
616
546
|
if (!SSL_CTX_add_extra_chain_cert(context, certificate_authority)) {
|
617
547
|
X509_free(certificate_authority);
|
618
548
|
result = TSI_INVALID_ARGUMENT;
|
619
549
|
break;
|
620
550
|
}
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
551
|
+
// We don't need to free certificate_authority as its ownership has been
|
552
|
+
// transferred to the context. That is not the case for certificate
|
553
|
+
// though.
|
554
|
+
//
|
625
555
|
}
|
626
556
|
} while (false);
|
627
557
|
|
@@ -703,7 +633,7 @@ static tsi_result ssl_ctx_use_engine_private_key(SSL_CTX* context,
|
|
703
633
|
if (engine_name != nullptr) gpr_free(engine_name);
|
704
634
|
return result;
|
705
635
|
}
|
706
|
-
#endif
|
636
|
+
#endif // !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE)
|
707
637
|
|
708
638
|
static tsi_result ssl_ctx_use_pem_private_key(SSL_CTX* context,
|
709
639
|
const char* pem_key,
|
@@ -731,7 +661,7 @@ static tsi_result ssl_ctx_use_pem_private_key(SSL_CTX* context,
|
|
731
661
|
return result;
|
732
662
|
}
|
733
663
|
|
734
|
-
|
664
|
+
// Loads an in-memory PEM private key into the SSL context.
|
735
665
|
static tsi_result ssl_ctx_use_private_key(SSL_CTX* context, const char* pem_key,
|
736
666
|
size_t pem_key_size) {
|
737
667
|
// BoringSSL does not have ENGINE support
|
@@ -739,14 +669,14 @@ static tsi_result ssl_ctx_use_private_key(SSL_CTX* context, const char* pem_key,
|
|
739
669
|
if (strncmp(pem_key, kSslEnginePrefix, strlen(kSslEnginePrefix)) == 0) {
|
740
670
|
return ssl_ctx_use_engine_private_key(context, pem_key, pem_key_size);
|
741
671
|
} else
|
742
|
-
#endif
|
672
|
+
#endif // !defined(OPENSSL_IS_BORINGSSL) && !defined(OPENSSL_NO_ENGINE)
|
743
673
|
{
|
744
674
|
return ssl_ctx_use_pem_private_key(context, pem_key, pem_key_size);
|
745
675
|
}
|
746
676
|
}
|
747
677
|
|
748
|
-
|
749
|
-
|
678
|
+
// Loads in-memory PEM verification certs into the SSL context and optionally
|
679
|
+
// returns the verification cert names (root_names can be NULL).
|
750
680
|
static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
751
681
|
const char* pem_roots,
|
752
682
|
size_t pem_roots_size,
|
@@ -769,7 +699,7 @@ static tsi_result x509_store_load_certs(X509_STORE* cert_store,
|
|
769
699
|
root = PEM_read_bio_X509_AUX(pem, nullptr, nullptr, const_cast<char*>(""));
|
770
700
|
if (root == nullptr) {
|
771
701
|
ERR_clear_error();
|
772
|
-
break;
|
702
|
+
break; // We're at the end of stream.
|
773
703
|
}
|
774
704
|
if (root_names != nullptr) {
|
775
705
|
root_name = X509_get_subject_name(root);
|
@@ -828,8 +758,8 @@ static tsi_result ssl_ctx_load_verification_certs(SSL_CTX* context,
|
|
828
758
|
root_name);
|
829
759
|
}
|
830
760
|
|
831
|
-
|
832
|
-
|
761
|
+
// Populates the SSL context with a private key and a cert chain, and sets the
|
762
|
+
// cipher list and the ephemeral ECDH key.
|
833
763
|
static tsi_result populate_ssl_context(
|
834
764
|
SSL_CTX* context, const tsi_ssl_pem_key_cert_pair* key_cert_pair,
|
835
765
|
const char* cipher_list) {
|
@@ -870,7 +800,7 @@ static tsi_result populate_ssl_context(
|
|
870
800
|
return TSI_OK;
|
871
801
|
}
|
872
802
|
|
873
|
-
|
803
|
+
// Extracts the CN and the SANs from an X509 cert as a peer object.
|
874
804
|
tsi_result tsi_ssl_extract_x509_subject_names_from_pem_cert(
|
875
805
|
const char* pem_cert, tsi_peer* peer) {
|
876
806
|
tsi_result result = TSI_OK;
|
@@ -891,7 +821,7 @@ tsi_result tsi_ssl_extract_x509_subject_names_from_pem_cert(
|
|
891
821
|
return result;
|
892
822
|
}
|
893
823
|
|
894
|
-
|
824
|
+
// Builds the alpn protocol name list according to rfc 7301.
|
895
825
|
static tsi_result build_alpn_protocol_name_list(
|
896
826
|
const char** alpn_protocols, uint16_t num_alpn_protocols,
|
897
827
|
unsigned char** protocol_name_list, size_t* protocol_name_list_length) {
|
@@ -916,11 +846,11 @@ static tsi_result build_alpn_protocol_name_list(
|
|
916
846
|
current = *protocol_name_list;
|
917
847
|
for (i = 0; i < num_alpn_protocols; i++) {
|
918
848
|
size_t length = strlen(alpn_protocols[i]);
|
919
|
-
*(current++) = static_cast<uint8_t>(length);
|
849
|
+
*(current++) = static_cast<uint8_t>(length); // max checked above.
|
920
850
|
memcpy(current, alpn_protocols[i], length);
|
921
851
|
current += length;
|
922
852
|
}
|
923
|
-
|
853
|
+
// Safety check.
|
924
854
|
if ((current < *protocol_name_list) ||
|
925
855
|
(static_cast<uintptr_t>(current - *protocol_name_list) !=
|
926
856
|
*protocol_name_list_length)) {
|
@@ -929,6 +859,22 @@ static tsi_result build_alpn_protocol_name_list(
|
|
929
859
|
return TSI_OK;
|
930
860
|
}
|
931
861
|
|
862
|
+
// This callback is invoked when the CRL has been verified and will soft-fail
|
863
|
+
// errors in verification depending on certain error types.
|
864
|
+
static int verify_cb(int ok, X509_STORE_CTX* ctx) {
|
865
|
+
int cert_error = X509_STORE_CTX_get_error(ctx);
|
866
|
+
if (cert_error == X509_V_ERR_UNABLE_TO_GET_CRL) {
|
867
|
+
gpr_log(
|
868
|
+
GPR_INFO,
|
869
|
+
"Certificate verification failed to get CRL files. Ignoring error.");
|
870
|
+
return 1;
|
871
|
+
}
|
872
|
+
if (cert_error != 0) {
|
873
|
+
gpr_log(GPR_ERROR, "Certificate verify failed with code %d", cert_error);
|
874
|
+
}
|
875
|
+
return ok;
|
876
|
+
}
|
877
|
+
|
932
878
|
// The verification callback is used for clients that don't really care about
|
933
879
|
// the server's certificate, but we need to pull it anyway, in case a higher
|
934
880
|
// layer wants to look at it. In this case the verification may fail, but
|
@@ -937,6 +883,64 @@ static int NullVerifyCallback(int /*preverify_ok*/, X509_STORE_CTX* /*ctx*/) {
|
|
937
883
|
return 1;
|
938
884
|
}
|
939
885
|
|
886
|
+
static int RootCertExtractCallback(int preverify_ok, X509_STORE_CTX* ctx) {
|
887
|
+
if (ctx == nullptr) {
|
888
|
+
return preverify_ok;
|
889
|
+
}
|
890
|
+
|
891
|
+
// There's a case where this function is set in SSL_CTX_set_verify and a CRL
|
892
|
+
// related callback is set with X509_STORE_set_verify_cb. They overlap and
|
893
|
+
// this will take precedence, thus we need to ensure the CRL related callback
|
894
|
+
// is still called
|
895
|
+
X509_VERIFY_PARAM* param = X509_STORE_CTX_get0_param(ctx);
|
896
|
+
auto flags = X509_VERIFY_PARAM_get_flags(param);
|
897
|
+
if (flags & X509_V_FLAG_CRL_CHECK) {
|
898
|
+
preverify_ok = verify_cb(preverify_ok, ctx);
|
899
|
+
}
|
900
|
+
|
901
|
+
// If preverify_ok == 0, verification failed. We shouldn't expect to have a
|
902
|
+
// verified chain, so there is no need to attempt to extract the root cert
|
903
|
+
// from it
|
904
|
+
if (preverify_ok == 0) {
|
905
|
+
return preverify_ok;
|
906
|
+
}
|
907
|
+
|
908
|
+
// If we're here, verification was successful
|
909
|
+
// Get the verified chain from the X509_STORE_CTX and put it on the SSL object
|
910
|
+
// so that we have access to it when populating the tsi_peer
|
911
|
+
#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
912
|
+
STACK_OF(X509)* chain = X509_STORE_CTX_get0_chain(ctx);
|
913
|
+
#else
|
914
|
+
STACK_OF(X509)* chain = X509_STORE_CTX_get_chain(ctx);
|
915
|
+
#endif
|
916
|
+
|
917
|
+
if (chain == nullptr) {
|
918
|
+
return preverify_ok;
|
919
|
+
}
|
920
|
+
|
921
|
+
// The root cert is the last in the chain
|
922
|
+
size_t chain_length = sk_X509_num(chain);
|
923
|
+
if (chain_length == 0) {
|
924
|
+
return preverify_ok;
|
925
|
+
}
|
926
|
+
X509* root_cert = sk_X509_value(chain, chain_length - 1);
|
927
|
+
if (root_cert == nullptr) {
|
928
|
+
return preverify_ok;
|
929
|
+
}
|
930
|
+
|
931
|
+
SSL* ssl = static_cast<SSL*>(
|
932
|
+
X509_STORE_CTX_get_ex_data(ctx, SSL_get_ex_data_X509_STORE_CTX_idx()));
|
933
|
+
if (ssl == nullptr) {
|
934
|
+
return preverify_ok;
|
935
|
+
}
|
936
|
+
int success =
|
937
|
+
SSL_set_ex_data(ssl, g_ssl_ex_verified_root_cert_index, root_cert);
|
938
|
+
if (success == 0) {
|
939
|
+
gpr_log(GPR_INFO, "Could not set verified root cert in SSL's ex_data");
|
940
|
+
}
|
941
|
+
return preverify_ok;
|
942
|
+
}
|
943
|
+
|
940
944
|
// Sets the min and max TLS version of |ssl_context| to |min_tls_version| and
|
941
945
|
// |max_tls_version|, respectively. Calling this method is a no-op when using
|
942
946
|
// OpenSSL versions < 1.1.
|
@@ -992,7 +996,7 @@ static tsi_result tsi_set_min_and_max_tls_versions(
|
|
992
996
|
return TSI_OK;
|
993
997
|
}
|
994
998
|
|
995
|
-
|
999
|
+
// --- tsi_ssl_root_certs_store methods implementation. ---
|
996
1000
|
|
997
1001
|
tsi_ssl_root_certs_store* tsi_ssl_root_certs_store_create(
|
998
1002
|
const char* pem_roots) {
|
@@ -1029,24 +1033,23 @@ void tsi_ssl_root_certs_store_destroy(tsi_ssl_root_certs_store* self) {
|
|
1029
1033
|
gpr_free(self);
|
1030
1034
|
}
|
1031
1035
|
|
1032
|
-
|
1036
|
+
// --- tsi_ssl_session_cache methods implementation. ---
|
1033
1037
|
|
1034
1038
|
tsi_ssl_session_cache* tsi_ssl_session_cache_create_lru(size_t capacity) {
|
1035
|
-
|
1036
|
-
return
|
1037
|
-
tsi::SslSessionLRUCache::Create(capacity).release());
|
1039
|
+
// Pointer will be dereferenced by unref call.
|
1040
|
+
return tsi::SslSessionLRUCache::Create(capacity).release()->c_ptr();
|
1038
1041
|
}
|
1039
1042
|
|
1040
1043
|
void tsi_ssl_session_cache_ref(tsi_ssl_session_cache* cache) {
|
1041
|
-
|
1042
|
-
|
1044
|
+
// Pointer will be dereferenced by unref call.
|
1045
|
+
tsi::SslSessionLRUCache::FromC(cache)->Ref().release();
|
1043
1046
|
}
|
1044
1047
|
|
1045
1048
|
void tsi_ssl_session_cache_unref(tsi_ssl_session_cache* cache) {
|
1046
|
-
|
1049
|
+
tsi::SslSessionLRUCache::FromC(cache)->Unref();
|
1047
1050
|
}
|
1048
1051
|
|
1049
|
-
|
1052
|
+
// --- tsi_frame_protector methods implementation. ---
|
1050
1053
|
|
1051
1054
|
static tsi_result ssl_protector_protect(tsi_frame_protector* self,
|
1052
1055
|
const unsigned char* unprotected_bytes,
|
@@ -1055,130 +1058,33 @@ static tsi_result ssl_protector_protect(tsi_frame_protector* self,
|
|
1055
1058
|
size_t* protected_output_frames_size) {
|
1056
1059
|
tsi_ssl_frame_protector* impl =
|
1057
1060
|
reinterpret_cast<tsi_ssl_frame_protector*>(self);
|
1058
|
-
int read_from_ssl;
|
1059
|
-
size_t available;
|
1060
|
-
tsi_result result = TSI_OK;
|
1061
1061
|
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
GPR_ASSERT(*protected_output_frames_size <= INT_MAX);
|
1067
|
-
read_from_ssl = BIO_read(impl->network_io, protected_output_frames,
|
1068
|
-
static_cast<int>(*protected_output_frames_size));
|
1069
|
-
if (read_from_ssl < 0) {
|
1070
|
-
gpr_log(GPR_ERROR,
|
1071
|
-
"Could not read from BIO even though some data is pending");
|
1072
|
-
return TSI_INTERNAL_ERROR;
|
1073
|
-
}
|
1074
|
-
*protected_output_frames_size = static_cast<size_t>(read_from_ssl);
|
1075
|
-
return TSI_OK;
|
1076
|
-
}
|
1077
|
-
|
1078
|
-
/* Now see if we can send a complete frame. */
|
1079
|
-
available = impl->buffer_size - impl->buffer_offset;
|
1080
|
-
if (available > *unprotected_bytes_size) {
|
1081
|
-
/* If we cannot, just copy the data in our internal buffer. */
|
1082
|
-
memcpy(impl->buffer + impl->buffer_offset, unprotected_bytes,
|
1083
|
-
*unprotected_bytes_size);
|
1084
|
-
impl->buffer_offset += *unprotected_bytes_size;
|
1085
|
-
*protected_output_frames_size = 0;
|
1086
|
-
return TSI_OK;
|
1087
|
-
}
|
1088
|
-
|
1089
|
-
/* If we can, prepare the buffer, send it to SSL_write and read. */
|
1090
|
-
memcpy(impl->buffer + impl->buffer_offset, unprotected_bytes, available);
|
1091
|
-
result = do_ssl_write(impl->ssl, impl->buffer, impl->buffer_size);
|
1092
|
-
if (result != TSI_OK) return result;
|
1093
|
-
|
1094
|
-
GPR_ASSERT(*protected_output_frames_size <= INT_MAX);
|
1095
|
-
read_from_ssl = BIO_read(impl->network_io, protected_output_frames,
|
1096
|
-
static_cast<int>(*protected_output_frames_size));
|
1097
|
-
if (read_from_ssl < 0) {
|
1098
|
-
gpr_log(GPR_ERROR, "Could not read from BIO after SSL_write.");
|
1099
|
-
return TSI_INTERNAL_ERROR;
|
1100
|
-
}
|
1101
|
-
*protected_output_frames_size = static_cast<size_t>(read_from_ssl);
|
1102
|
-
*unprotected_bytes_size = available;
|
1103
|
-
impl->buffer_offset = 0;
|
1104
|
-
return TSI_OK;
|
1062
|
+
return grpc_core::SslProtectorProtect(
|
1063
|
+
unprotected_bytes, impl->buffer_size, impl->buffer_offset, impl->buffer,
|
1064
|
+
impl->ssl, impl->network_io, unprotected_bytes_size,
|
1065
|
+
protected_output_frames, protected_output_frames_size);
|
1105
1066
|
}
|
1106
1067
|
|
1107
1068
|
static tsi_result ssl_protector_protect_flush(
|
1108
1069
|
tsi_frame_protector* self, unsigned char* protected_output_frames,
|
1109
1070
|
size_t* protected_output_frames_size, size_t* still_pending_size) {
|
1110
|
-
tsi_result result = TSI_OK;
|
1111
1071
|
tsi_ssl_frame_protector* impl =
|
1112
1072
|
reinterpret_cast<tsi_ssl_frame_protector*>(self);
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
result = do_ssl_write(impl->ssl, impl->buffer, impl->buffer_offset);
|
1118
|
-
if (result != TSI_OK) return result;
|
1119
|
-
impl->buffer_offset = 0;
|
1120
|
-
}
|
1121
|
-
|
1122
|
-
pending = static_cast<int>(BIO_pending(impl->network_io));
|
1123
|
-
GPR_ASSERT(pending >= 0);
|
1124
|
-
*still_pending_size = static_cast<size_t>(pending);
|
1125
|
-
if (*still_pending_size == 0) return TSI_OK;
|
1126
|
-
|
1127
|
-
GPR_ASSERT(*protected_output_frames_size <= INT_MAX);
|
1128
|
-
read_from_ssl = BIO_read(impl->network_io, protected_output_frames,
|
1129
|
-
static_cast<int>(*protected_output_frames_size));
|
1130
|
-
if (read_from_ssl <= 0) {
|
1131
|
-
gpr_log(GPR_ERROR, "Could not read from BIO after SSL_write.");
|
1132
|
-
return TSI_INTERNAL_ERROR;
|
1133
|
-
}
|
1134
|
-
*protected_output_frames_size = static_cast<size_t>(read_from_ssl);
|
1135
|
-
pending = static_cast<int>(BIO_pending(impl->network_io));
|
1136
|
-
GPR_ASSERT(pending >= 0);
|
1137
|
-
*still_pending_size = static_cast<size_t>(pending);
|
1138
|
-
return TSI_OK;
|
1073
|
+
return grpc_core::SslProtectorProtectFlush(
|
1074
|
+
impl->buffer_offset, impl->buffer, impl->ssl, impl->network_io,
|
1075
|
+
protected_output_frames, protected_output_frames_size,
|
1076
|
+
still_pending_size);
|
1139
1077
|
}
|
1140
1078
|
|
1141
1079
|
static tsi_result ssl_protector_unprotect(
|
1142
1080
|
tsi_frame_protector* self, const unsigned char* protected_frames_bytes,
|
1143
1081
|
size_t* protected_frames_bytes_size, unsigned char* unprotected_bytes,
|
1144
1082
|
size_t* unprotected_bytes_size) {
|
1145
|
-
tsi_result result = TSI_OK;
|
1146
|
-
int written_into_ssl = 0;
|
1147
|
-
size_t output_bytes_size = *unprotected_bytes_size;
|
1148
|
-
size_t output_bytes_offset = 0;
|
1149
1083
|
tsi_ssl_frame_protector* impl =
|
1150
1084
|
reinterpret_cast<tsi_ssl_frame_protector*>(self);
|
1151
|
-
|
1152
|
-
|
1153
|
-
|
1154
|
-
if (result != TSI_OK) return result;
|
1155
|
-
if (*unprotected_bytes_size == output_bytes_size) {
|
1156
|
-
/* We have read everything we could and cannot process any more input. */
|
1157
|
-
*protected_frames_bytes_size = 0;
|
1158
|
-
return TSI_OK;
|
1159
|
-
}
|
1160
|
-
output_bytes_offset = *unprotected_bytes_size;
|
1161
|
-
unprotected_bytes += output_bytes_offset;
|
1162
|
-
*unprotected_bytes_size = output_bytes_size - output_bytes_offset;
|
1163
|
-
|
1164
|
-
/* Then, try to write some data to ssl. */
|
1165
|
-
GPR_ASSERT(*protected_frames_bytes_size <= INT_MAX);
|
1166
|
-
written_into_ssl = BIO_write(impl->network_io, protected_frames_bytes,
|
1167
|
-
static_cast<int>(*protected_frames_bytes_size));
|
1168
|
-
if (written_into_ssl < 0) {
|
1169
|
-
gpr_log(GPR_ERROR, "Sending protected frame to ssl failed with %d",
|
1170
|
-
written_into_ssl);
|
1171
|
-
return TSI_INTERNAL_ERROR;
|
1172
|
-
}
|
1173
|
-
*protected_frames_bytes_size = static_cast<size_t>(written_into_ssl);
|
1174
|
-
|
1175
|
-
/* Now try to read some data again. */
|
1176
|
-
result = do_ssl_read(impl->ssl, unprotected_bytes, unprotected_bytes_size);
|
1177
|
-
if (result == TSI_OK) {
|
1178
|
-
/* Don't forget to output the total number of bytes read. */
|
1179
|
-
*unprotected_bytes_size += output_bytes_offset;
|
1180
|
-
}
|
1181
|
-
return result;
|
1085
|
+
return grpc_core::SslProtectorUnprotect(
|
1086
|
+
protected_frames_bytes, impl->ssl, impl->network_io,
|
1087
|
+
protected_frames_bytes_size, unprotected_bytes, unprotected_bytes_size);
|
1182
1088
|
}
|
1183
1089
|
|
1184
1090
|
static void ssl_protector_destroy(tsi_frame_protector* self) {
|
@@ -1197,7 +1103,7 @@ static const tsi_frame_protector_vtable frame_protector_vtable = {
|
|
1197
1103
|
ssl_protector_destroy,
|
1198
1104
|
};
|
1199
1105
|
|
1200
|
-
|
1106
|
+
// --- tsi_server_handshaker_factory methods implementation. ---
|
1201
1107
|
|
1202
1108
|
static void tsi_ssl_handshaker_factory_destroy(
|
1203
1109
|
tsi_ssl_handshaker_factory* factory) {
|
@@ -1206,9 +1112,9 @@ static void tsi_ssl_handshaker_factory_destroy(
|
|
1206
1112
|
if (factory->vtable != nullptr && factory->vtable->destroy != nullptr) {
|
1207
1113
|
factory->vtable->destroy(factory);
|
1208
1114
|
}
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1115
|
+
// Note, we don't free(self) here because this object is always directly
|
1116
|
+
// embedded in another object. If tsi_ssl_handshaker_factory_init allocates
|
1117
|
+
// any memory, it should be free'd here.
|
1212
1118
|
}
|
1213
1119
|
|
1214
1120
|
static tsi_ssl_handshaker_factory* tsi_ssl_handshaker_factory_ref(
|
@@ -1229,8 +1135,8 @@ static void tsi_ssl_handshaker_factory_unref(
|
|
1229
1135
|
|
1230
1136
|
static tsi_ssl_handshaker_factory_vtable handshaker_factory_vtable = {nullptr};
|
1231
1137
|
|
1232
|
-
|
1233
|
-
|
1138
|
+
// Initializes a tsi_ssl_handshaker_factory object. Caller is responsible for
|
1139
|
+
// allocating memory for the factory.
|
1234
1140
|
static void tsi_ssl_handshaker_factory_init(
|
1235
1141
|
tsi_ssl_handshaker_factory* factory) {
|
1236
1142
|
GPR_ASSERT(factory != nullptr);
|
@@ -1239,7 +1145,7 @@ static void tsi_ssl_handshaker_factory_init(
|
|
1239
1145
|
gpr_ref_init(&factory->refcount, 1);
|
1240
1146
|
}
|
1241
1147
|
|
1242
|
-
|
1148
|
+
// Gets the X509 cert chain in PEM format as a tsi_peer_property.
|
1243
1149
|
tsi_result tsi_ssl_get_cert_chain_contents(STACK_OF(X509) * peer_chain,
|
1244
1150
|
tsi_peer_property* property) {
|
1245
1151
|
BIO* bio = BIO_new(BIO_s_mem());
|
@@ -1263,7 +1169,7 @@ tsi_result tsi_ssl_get_cert_chain_contents(STACK_OF(X509) * peer_chain,
|
|
1263
1169
|
return result;
|
1264
1170
|
}
|
1265
1171
|
|
1266
|
-
|
1172
|
+
// --- tsi_handshaker_result methods implementation. ---
|
1267
1173
|
static tsi_result ssl_handshaker_result_extract_peer(
|
1268
1174
|
const tsi_handshaker_result* self, tsi_peer* peer) {
|
1269
1175
|
tsi_result result = TSI_OK;
|
@@ -1279,9 +1185,9 @@ static tsi_result ssl_handshaker_result_extract_peer(
|
|
1279
1185
|
}
|
1280
1186
|
#if TSI_OPENSSL_ALPN_SUPPORT
|
1281
1187
|
SSL_get0_alpn_selected(impl->ssl, &alpn_selected, &alpn_selected_len);
|
1282
|
-
#endif
|
1188
|
+
#endif // TSI_OPENSSL_ALPN_SUPPORT
|
1283
1189
|
if (alpn_selected == nullptr) {
|
1284
|
-
|
1190
|
+
// Try npn.
|
1285
1191
|
SSL_get0_next_proto_negotiated(impl->ssl, &alpn_selected,
|
1286
1192
|
&alpn_selected_len);
|
1287
1193
|
}
|
@@ -1289,10 +1195,14 @@ static tsi_result ssl_handshaker_result_extract_peer(
|
|
1289
1195
|
// peer's certificate; When called on the server side,
|
1290
1196
|
// the peer's certificate is not present in the stack
|
1291
1197
|
STACK_OF(X509)* peer_chain = SSL_get_peer_cert_chain(impl->ssl);
|
1198
|
+
|
1199
|
+
X509* verified_root_cert = static_cast<X509*>(
|
1200
|
+
SSL_get_ex_data(impl->ssl, g_ssl_ex_verified_root_cert_index));
|
1292
1201
|
// 1 is for session reused property.
|
1293
1202
|
size_t new_property_count = peer->property_count + 3;
|
1294
1203
|
if (alpn_selected != nullptr) new_property_count++;
|
1295
1204
|
if (peer_chain != nullptr) new_property_count++;
|
1205
|
+
if (verified_root_cert != nullptr) new_property_count++;
|
1296
1206
|
tsi_peer_property* new_properties = static_cast<tsi_peer_property*>(
|
1297
1207
|
gpr_zalloc(sizeof(*new_properties) * new_property_count));
|
1298
1208
|
for (size_t i = 0; i < peer->property_count; i++) {
|
@@ -1328,6 +1238,18 @@ static tsi_result ssl_handshaker_result_extract_peer(
|
|
1328
1238
|
&peer->properties[peer->property_count]);
|
1329
1239
|
if (result != TSI_OK) return result;
|
1330
1240
|
peer->property_count++;
|
1241
|
+
|
1242
|
+
if (verified_root_cert != nullptr) {
|
1243
|
+
result = peer_property_from_x509_subject(
|
1244
|
+
verified_root_cert, &peer->properties[peer->property_count], true);
|
1245
|
+
if (result != TSI_OK) {
|
1246
|
+
gpr_log(GPR_DEBUG,
|
1247
|
+
"Problem extracting subject from verified_root_cert. result: %d",
|
1248
|
+
static_cast<int>(result));
|
1249
|
+
}
|
1250
|
+
peer->property_count++;
|
1251
|
+
}
|
1252
|
+
|
1331
1253
|
return result;
|
1332
1254
|
}
|
1333
1255
|
|
@@ -1373,7 +1295,7 @@ static tsi_result ssl_handshaker_result_create_frame_protector(
|
|
1373
1295
|
return TSI_INTERNAL_ERROR;
|
1374
1296
|
}
|
1375
1297
|
|
1376
|
-
|
1298
|
+
// Transfer ownership of ssl and network_io to the frame protector.
|
1377
1299
|
protector_impl->ssl = impl->ssl;
|
1378
1300
|
impl->ssl = nullptr;
|
1379
1301
|
protector_impl->network_io = impl->network_io;
|
@@ -1405,7 +1327,7 @@ static void ssl_handshaker_result_destroy(tsi_handshaker_result* self) {
|
|
1405
1327
|
static const tsi_handshaker_result_vtable handshaker_result_vtable = {
|
1406
1328
|
ssl_handshaker_result_extract_peer,
|
1407
1329
|
ssl_handshaker_result_get_frame_protector_type,
|
1408
|
-
nullptr,
|
1330
|
+
nullptr, // create_zero_copy_grpc_protector
|
1409
1331
|
ssl_handshaker_result_create_frame_protector,
|
1410
1332
|
ssl_handshaker_result_get_unused_bytes,
|
1411
1333
|
ssl_handshaker_result_destroy,
|
@@ -1413,33 +1335,36 @@ static const tsi_handshaker_result_vtable handshaker_result_vtable = {
|
|
1413
1335
|
|
1414
1336
|
static tsi_result ssl_handshaker_result_create(
|
1415
1337
|
tsi_ssl_handshaker* handshaker, unsigned char* unused_bytes,
|
1416
|
-
size_t unused_bytes_size, tsi_handshaker_result** handshaker_result
|
1338
|
+
size_t unused_bytes_size, tsi_handshaker_result** handshaker_result,
|
1339
|
+
std::string* error) {
|
1417
1340
|
if (handshaker == nullptr || handshaker_result == nullptr ||
|
1418
1341
|
(unused_bytes_size > 0 && unused_bytes == nullptr)) {
|
1342
|
+
if (error != nullptr) *error = "invalid argument";
|
1419
1343
|
return TSI_INVALID_ARGUMENT;
|
1420
1344
|
}
|
1421
1345
|
tsi_ssl_handshaker_result* result =
|
1422
1346
|
grpc_core::Zalloc<tsi_ssl_handshaker_result>();
|
1423
1347
|
result->base.vtable = &handshaker_result_vtable;
|
1424
|
-
|
1348
|
+
// Transfer ownership of ssl and network_io to the handshaker result.
|
1425
1349
|
result->ssl = handshaker->ssl;
|
1426
1350
|
handshaker->ssl = nullptr;
|
1427
1351
|
result->network_io = handshaker->network_io;
|
1428
1352
|
handshaker->network_io = nullptr;
|
1429
|
-
|
1353
|
+
// Transfer ownership of |unused_bytes| to the handshaker result.
|
1430
1354
|
result->unused_bytes = unused_bytes;
|
1431
1355
|
result->unused_bytes_size = unused_bytes_size;
|
1432
1356
|
*handshaker_result = &result->base;
|
1433
1357
|
return TSI_OK;
|
1434
1358
|
}
|
1435
1359
|
|
1436
|
-
|
1360
|
+
// --- tsi_handshaker methods implementation. ---
|
1437
1361
|
|
1438
1362
|
static tsi_result ssl_handshaker_get_bytes_to_send_to_peer(
|
1439
|
-
tsi_ssl_handshaker* impl, unsigned char* bytes, size_t* bytes_size
|
1363
|
+
tsi_ssl_handshaker* impl, unsigned char* bytes, size_t* bytes_size,
|
1364
|
+
std::string* error) {
|
1440
1365
|
int bytes_read_from_ssl = 0;
|
1441
|
-
if (bytes == nullptr || bytes_size == nullptr || *bytes_size
|
1442
|
-
|
1366
|
+
if (bytes == nullptr || bytes_size == nullptr || *bytes_size > INT_MAX) {
|
1367
|
+
if (error != nullptr) *error = "invalid argument";
|
1443
1368
|
return TSI_INVALID_ARGUMENT;
|
1444
1369
|
}
|
1445
1370
|
GPR_ASSERT(*bytes_size <= INT_MAX);
|
@@ -1448,6 +1373,7 @@ static tsi_result ssl_handshaker_get_bytes_to_send_to_peer(
|
|
1448
1373
|
if (bytes_read_from_ssl < 0) {
|
1449
1374
|
*bytes_size = 0;
|
1450
1375
|
if (!BIO_should_retry(impl->network_io)) {
|
1376
|
+
if (error != nullptr) *error = "error reading from BIO";
|
1451
1377
|
impl->result = TSI_INTERNAL_ERROR;
|
1452
1378
|
return impl->result;
|
1453
1379
|
} else {
|
@@ -1466,45 +1392,37 @@ static tsi_result ssl_handshaker_get_result(tsi_ssl_handshaker* impl) {
|
|
1466
1392
|
return impl->result;
|
1467
1393
|
}
|
1468
1394
|
|
1469
|
-
static tsi_result
|
1470
|
-
|
1471
|
-
int bytes_written_into_ssl_size = 0;
|
1472
|
-
if (bytes == nullptr || bytes_size == nullptr || *bytes_size > INT_MAX) {
|
1473
|
-
return TSI_INVALID_ARGUMENT;
|
1474
|
-
}
|
1475
|
-
GPR_ASSERT(*bytes_size <= INT_MAX);
|
1476
|
-
bytes_written_into_ssl_size =
|
1477
|
-
BIO_write(impl->network_io, bytes, static_cast<int>(*bytes_size));
|
1478
|
-
if (bytes_written_into_ssl_size < 0) {
|
1479
|
-
gpr_log(GPR_ERROR, "Could not write to memory BIO.");
|
1480
|
-
impl->result = TSI_INTERNAL_ERROR;
|
1481
|
-
return impl->result;
|
1482
|
-
}
|
1483
|
-
*bytes_size = static_cast<size_t>(bytes_written_into_ssl_size);
|
1484
|
-
|
1395
|
+
static tsi_result ssl_handshaker_do_handshake(tsi_ssl_handshaker* impl,
|
1396
|
+
std::string* error) {
|
1485
1397
|
if (ssl_handshaker_get_result(impl) != TSI_HANDSHAKE_IN_PROGRESS) {
|
1486
1398
|
impl->result = TSI_OK;
|
1487
1399
|
return impl->result;
|
1488
1400
|
} else {
|
1489
1401
|
ERR_clear_error();
|
1490
|
-
|
1402
|
+
// Get ready to get some bytes from SSL.
|
1491
1403
|
int ssl_result = SSL_do_handshake(impl->ssl);
|
1492
1404
|
ssl_result = SSL_get_error(impl->ssl, ssl_result);
|
1493
1405
|
switch (ssl_result) {
|
1494
1406
|
case SSL_ERROR_WANT_READ:
|
1495
1407
|
if (BIO_pending(impl->network_io) == 0) {
|
1496
|
-
|
1408
|
+
// We need more data.
|
1497
1409
|
return TSI_INCOMPLETE_DATA;
|
1498
1410
|
} else {
|
1499
1411
|
return TSI_OK;
|
1500
1412
|
}
|
1501
1413
|
case SSL_ERROR_NONE:
|
1502
1414
|
return TSI_OK;
|
1415
|
+
case SSL_ERROR_WANT_WRITE:
|
1416
|
+
return TSI_DRAIN_BUFFER;
|
1503
1417
|
default: {
|
1504
1418
|
char err_str[256];
|
1505
1419
|
ERR_error_string_n(ERR_get_error(), err_str, sizeof(err_str));
|
1506
1420
|
gpr_log(GPR_ERROR, "Handshake failed with fatal error %s: %s.",
|
1507
|
-
|
1421
|
+
grpc_core::SslErrorString(ssl_result), err_str);
|
1422
|
+
if (error != nullptr) {
|
1423
|
+
*error = absl::StrCat(grpc_core::SslErrorString(ssl_result), ": ",
|
1424
|
+
err_str);
|
1425
|
+
}
|
1508
1426
|
impl->result = TSI_PROTOCOL_FAILURE;
|
1509
1427
|
return impl->result;
|
1510
1428
|
}
|
@@ -1512,6 +1430,27 @@ static tsi_result ssl_handshaker_process_bytes_from_peer(
|
|
1512
1430
|
}
|
1513
1431
|
}
|
1514
1432
|
|
1433
|
+
static tsi_result ssl_handshaker_process_bytes_from_peer(
|
1434
|
+
tsi_ssl_handshaker* impl, const unsigned char* bytes, size_t* bytes_size,
|
1435
|
+
std::string* error) {
|
1436
|
+
int bytes_written_into_ssl_size = 0;
|
1437
|
+
if (bytes == nullptr || bytes_size == nullptr || *bytes_size > INT_MAX) {
|
1438
|
+
if (error != nullptr) *error = "invalid argument";
|
1439
|
+
return TSI_INVALID_ARGUMENT;
|
1440
|
+
}
|
1441
|
+
GPR_ASSERT(*bytes_size <= INT_MAX);
|
1442
|
+
bytes_written_into_ssl_size =
|
1443
|
+
BIO_write(impl->network_io, bytes, static_cast<int>(*bytes_size));
|
1444
|
+
if (bytes_written_into_ssl_size < 0) {
|
1445
|
+
gpr_log(GPR_ERROR, "Could not write to memory BIO.");
|
1446
|
+
if (error != nullptr) *error = "could not write to memory BIO";
|
1447
|
+
impl->result = TSI_INTERNAL_ERROR;
|
1448
|
+
return impl->result;
|
1449
|
+
}
|
1450
|
+
*bytes_size = static_cast<size_t>(bytes_written_into_ssl_size);
|
1451
|
+
return ssl_handshaker_do_handshake(impl, error);
|
1452
|
+
}
|
1453
|
+
|
1515
1454
|
static void ssl_handshaker_destroy(tsi_handshaker* self) {
|
1516
1455
|
tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
|
1517
1456
|
SSL_free(impl->ssl);
|
@@ -1525,9 +1464,11 @@ static void ssl_handshaker_destroy(tsi_handshaker* self) {
|
|
1525
1464
|
// |bytes_remaining|.
|
1526
1465
|
static tsi_result ssl_bytes_remaining(tsi_ssl_handshaker* impl,
|
1527
1466
|
unsigned char** bytes_remaining,
|
1528
|
-
size_t* bytes_remaining_size
|
1467
|
+
size_t* bytes_remaining_size,
|
1468
|
+
std::string* error) {
|
1529
1469
|
if (impl == nullptr || bytes_remaining == nullptr ||
|
1530
1470
|
bytes_remaining_size == nullptr) {
|
1471
|
+
if (error != nullptr) *error = "invalid argument";
|
1531
1472
|
return TSI_INVALID_ARGUMENT;
|
1532
1473
|
}
|
1533
1474
|
// Atempt to read all of the bytes in SSL's read BIO. These bytes should
|
@@ -1545,38 +1486,29 @@ static tsi_result ssl_bytes_remaining(tsi_ssl_handshaker* impl,
|
|
1545
1486
|
"Failed to read the expected number of bytes from SSL object.");
|
1546
1487
|
gpr_free(*bytes_remaining);
|
1547
1488
|
*bytes_remaining = nullptr;
|
1489
|
+
if (error != nullptr) {
|
1490
|
+
*error = "Failed to read the expected number of bytes from SSL object.";
|
1491
|
+
}
|
1548
1492
|
return TSI_INTERNAL_ERROR;
|
1549
1493
|
}
|
1550
1494
|
*bytes_remaining_size = static_cast<size_t>(bytes_read);
|
1551
1495
|
return TSI_OK;
|
1552
1496
|
}
|
1553
1497
|
|
1554
|
-
|
1555
|
-
|
1556
|
-
|
1557
|
-
|
1558
|
-
|
1559
|
-
|
1560
|
-
|
1561
|
-
bytes_to_send == nullptr || bytes_to_send_size == nullptr ||
|
1562
|
-
handshaker_result == nullptr) {
|
1563
|
-
return TSI_INVALID_ARGUMENT;
|
1564
|
-
}
|
1565
|
-
/* If there are received bytes, process them first. */
|
1498
|
+
// Write handshake data received from SSL to an unbound output buffer.
|
1499
|
+
// By doing that, we drain SSL bio buffer used to hold handshake data.
|
1500
|
+
// This API needs to be repeatedly called until all handshake data are
|
1501
|
+
// received from SSL.
|
1502
|
+
static tsi_result ssl_handshaker_write_output_buffer(tsi_handshaker* self,
|
1503
|
+
size_t* bytes_written,
|
1504
|
+
std::string* error) {
|
1566
1505
|
tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
|
1567
1506
|
tsi_result status = TSI_OK;
|
1568
|
-
size_t
|
1569
|
-
if (received_bytes_size > 0) {
|
1570
|
-
status = ssl_handshaker_process_bytes_from_peer(impl, received_bytes,
|
1571
|
-
&bytes_consumed);
|
1572
|
-
if (status != TSI_OK) return status;
|
1573
|
-
}
|
1574
|
-
/* Get bytes to send to the peer, if available. */
|
1575
|
-
size_t offset = 0;
|
1507
|
+
size_t offset = *bytes_written;
|
1576
1508
|
do {
|
1577
1509
|
size_t to_send_size = impl->outgoing_bytes_buffer_size - offset;
|
1578
1510
|
status = ssl_handshaker_get_bytes_to_send_to_peer(
|
1579
|
-
impl, impl->outgoing_bytes_buffer + offset, &to_send_size);
|
1511
|
+
impl, impl->outgoing_bytes_buffer + offset, &to_send_size, error);
|
1580
1512
|
offset += to_send_size;
|
1581
1513
|
if (status == TSI_INCOMPLETE_DATA) {
|
1582
1514
|
impl->outgoing_bytes_buffer_size *= 2;
|
@@ -1584,10 +1516,46 @@ static tsi_result ssl_handshaker_next(
|
|
1584
1516
|
impl->outgoing_bytes_buffer, impl->outgoing_bytes_buffer_size));
|
1585
1517
|
}
|
1586
1518
|
} while (status == TSI_INCOMPLETE_DATA);
|
1519
|
+
*bytes_written = offset;
|
1520
|
+
return status;
|
1521
|
+
}
|
1522
|
+
|
1523
|
+
static tsi_result ssl_handshaker_next(tsi_handshaker* self,
|
1524
|
+
const unsigned char* received_bytes,
|
1525
|
+
size_t received_bytes_size,
|
1526
|
+
const unsigned char** bytes_to_send,
|
1527
|
+
size_t* bytes_to_send_size,
|
1528
|
+
tsi_handshaker_result** handshaker_result,
|
1529
|
+
tsi_handshaker_on_next_done_cb /*cb*/,
|
1530
|
+
void* /*user_data*/, std::string* error) {
|
1531
|
+
// Input sanity check.
|
1532
|
+
if ((received_bytes_size > 0 && received_bytes == nullptr) ||
|
1533
|
+
bytes_to_send == nullptr || bytes_to_send_size == nullptr ||
|
1534
|
+
handshaker_result == nullptr) {
|
1535
|
+
if (error != nullptr) *error = "invalid argument";
|
1536
|
+
return TSI_INVALID_ARGUMENT;
|
1537
|
+
}
|
1538
|
+
// If there are received bytes, process them first.
|
1539
|
+
tsi_ssl_handshaker* impl = reinterpret_cast<tsi_ssl_handshaker*>(self);
|
1540
|
+
tsi_result status = TSI_OK;
|
1541
|
+
size_t bytes_consumed = received_bytes_size;
|
1542
|
+
size_t bytes_written = 0;
|
1543
|
+
if (received_bytes_size > 0) {
|
1544
|
+
status = ssl_handshaker_process_bytes_from_peer(impl, received_bytes,
|
1545
|
+
&bytes_consumed, error);
|
1546
|
+
while (status == TSI_DRAIN_BUFFER) {
|
1547
|
+
status = ssl_handshaker_write_output_buffer(self, &bytes_written, error);
|
1548
|
+
if (status != TSI_OK) return status;
|
1549
|
+
status = ssl_handshaker_do_handshake(impl, error);
|
1550
|
+
}
|
1551
|
+
}
|
1552
|
+
if (status != TSI_OK) return status;
|
1553
|
+
// Get bytes to send to the peer, if available.
|
1554
|
+
status = ssl_handshaker_write_output_buffer(self, &bytes_written, error);
|
1587
1555
|
if (status != TSI_OK) return status;
|
1588
1556
|
*bytes_to_send = impl->outgoing_bytes_buffer;
|
1589
|
-
*bytes_to_send_size =
|
1590
|
-
|
1557
|
+
*bytes_to_send_size = bytes_written;
|
1558
|
+
// If handshake completes, create tsi_handshaker_result.
|
1591
1559
|
if (ssl_handshaker_get_result(impl) == TSI_HANDSHAKE_IN_PROGRESS) {
|
1592
1560
|
*handshaker_result = nullptr;
|
1593
1561
|
} else {
|
@@ -1597,18 +1565,20 @@ static tsi_result ssl_handshaker_next(
|
|
1597
1565
|
// peer that must be processed.
|
1598
1566
|
unsigned char* unused_bytes = nullptr;
|
1599
1567
|
size_t unused_bytes_size = 0;
|
1600
|
-
status =
|
1568
|
+
status =
|
1569
|
+
ssl_bytes_remaining(impl, &unused_bytes, &unused_bytes_size, error);
|
1601
1570
|
if (status != TSI_OK) return status;
|
1602
1571
|
if (unused_bytes_size > received_bytes_size) {
|
1603
1572
|
gpr_log(GPR_ERROR, "More unused bytes than received bytes.");
|
1604
1573
|
gpr_free(unused_bytes);
|
1574
|
+
if (error != nullptr) *error = "More unused bytes than received bytes.";
|
1605
1575
|
return TSI_INTERNAL_ERROR;
|
1606
1576
|
}
|
1607
1577
|
status = ssl_handshaker_result_create(impl, unused_bytes, unused_bytes_size,
|
1608
|
-
handshaker_result);
|
1578
|
+
handshaker_result, error);
|
1609
1579
|
if (status == TSI_OK) {
|
1610
|
-
|
1611
|
-
|
1580
|
+
// Indicates that the handshake has completed and that a handshaker_result
|
1581
|
+
// has been created.
|
1612
1582
|
self->handshaker_result_created = true;
|
1613
1583
|
}
|
1614
1584
|
}
|
@@ -1616,17 +1586,17 @@ static tsi_result ssl_handshaker_next(
|
|
1616
1586
|
}
|
1617
1587
|
|
1618
1588
|
static const tsi_handshaker_vtable handshaker_vtable = {
|
1619
|
-
nullptr,
|
1620
|
-
nullptr,
|
1621
|
-
nullptr,
|
1622
|
-
nullptr,
|
1623
|
-
nullptr,
|
1589
|
+
nullptr, // get_bytes_to_send_to_peer -- deprecated
|
1590
|
+
nullptr, // process_bytes_from_peer -- deprecated
|
1591
|
+
nullptr, // get_result -- deprecated
|
1592
|
+
nullptr, // extract_peer -- deprecated
|
1593
|
+
nullptr, // create_frame_protector -- deprecated
|
1624
1594
|
ssl_handshaker_destroy,
|
1625
1595
|
ssl_handshaker_next,
|
1626
|
-
nullptr,
|
1596
|
+
nullptr, // shutdown
|
1627
1597
|
};
|
1628
1598
|
|
1629
|
-
|
1599
|
+
// --- tsi_ssl_handshaker_factory common methods. ---
|
1630
1600
|
|
1631
1601
|
static void tsi_ssl_handshaker_resume_session(
|
1632
1602
|
SSL* ssl, tsi::SslSessionLRUCache* session_cache) {
|
@@ -1643,6 +1613,8 @@ static void tsi_ssl_handshaker_resume_session(
|
|
1643
1613
|
|
1644
1614
|
static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
|
1645
1615
|
const char* server_name_indication,
|
1616
|
+
size_t network_bio_buf_size,
|
1617
|
+
size_t ssl_bio_buf_size,
|
1646
1618
|
tsi_ssl_handshaker_factory* factory,
|
1647
1619
|
tsi_handshaker** handshaker) {
|
1648
1620
|
SSL* ssl = SSL_new(ctx);
|
@@ -1659,7 +1631,8 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
|
|
1659
1631
|
}
|
1660
1632
|
SSL_set_info_callback(ssl, ssl_info_callback);
|
1661
1633
|
|
1662
|
-
if (!BIO_new_bio_pair(&network_io,
|
1634
|
+
if (!BIO_new_bio_pair(&network_io, network_bio_buf_size, &ssl_io,
|
1635
|
+
ssl_bio_buf_size)) {
|
1663
1636
|
gpr_log(GPR_ERROR, "BIO_new_bio_pair failed.");
|
1664
1637
|
SSL_free(ssl);
|
1665
1638
|
return TSI_OUT_OF_RESOURCES;
|
@@ -1689,7 +1662,7 @@ static tsi_result create_tsi_ssl_handshaker(SSL_CTX* ctx, int is_client,
|
|
1689
1662
|
if (ssl_result != SSL_ERROR_WANT_READ) {
|
1690
1663
|
gpr_log(GPR_ERROR,
|
1691
1664
|
"Unexpected error received from first SSL_do_handshake call: %s",
|
1692
|
-
|
1665
|
+
grpc_core::SslErrorString(ssl_result));
|
1693
1666
|
SSL_free(ssl);
|
1694
1667
|
BIO_free(network_io);
|
1695
1668
|
return TSI_INTERNAL_ERROR;
|
@@ -1740,14 +1713,15 @@ static int select_protocol_list(const unsigned char** out,
|
|
1740
1713
|
return SSL_TLSEXT_ERR_NOACK;
|
1741
1714
|
}
|
1742
1715
|
|
1743
|
-
|
1716
|
+
// --- tsi_ssl_client_handshaker_factory methods implementation. ---
|
1744
1717
|
|
1745
1718
|
tsi_result tsi_ssl_client_handshaker_factory_create_handshaker(
|
1746
1719
|
tsi_ssl_client_handshaker_factory* factory,
|
1747
|
-
const char* server_name_indication,
|
1748
|
-
|
1749
|
-
|
1750
|
-
|
1720
|
+
const char* server_name_indication, size_t network_bio_buf_size,
|
1721
|
+
size_t ssl_bio_buf_size, tsi_handshaker** handshaker) {
|
1722
|
+
return create_tsi_ssl_handshaker(
|
1723
|
+
factory->ssl_context, 1, server_name_indication, network_bio_buf_size,
|
1724
|
+
ssl_bio_buf_size, &factory->base, handshaker);
|
1751
1725
|
}
|
1752
1726
|
|
1753
1727
|
void tsi_ssl_client_handshaker_factory_unref(
|
@@ -1764,6 +1738,7 @@ static void tsi_ssl_client_handshaker_factory_destroy(
|
|
1764
1738
|
if (self->ssl_context != nullptr) SSL_CTX_free(self->ssl_context);
|
1765
1739
|
if (self->alpn_protocol_list != nullptr) gpr_free(self->alpn_protocol_list);
|
1766
1740
|
self->session_cache.reset();
|
1741
|
+
self->key_logger.reset();
|
1767
1742
|
gpr_free(self);
|
1768
1743
|
}
|
1769
1744
|
|
@@ -1777,14 +1752,16 @@ static int client_handshaker_factory_npn_callback(
|
|
1777
1752
|
factory->alpn_protocol_list_length, in, inlen);
|
1778
1753
|
}
|
1779
1754
|
|
1780
|
-
|
1755
|
+
// --- tsi_ssl_server_handshaker_factory methods implementation. ---
|
1781
1756
|
|
1782
1757
|
tsi_result tsi_ssl_server_handshaker_factory_create_handshaker(
|
1783
|
-
tsi_ssl_server_handshaker_factory* factory,
|
1758
|
+
tsi_ssl_server_handshaker_factory* factory, size_t network_bio_buf_size,
|
1759
|
+
size_t ssl_bio_buf_size, tsi_handshaker** handshaker) {
|
1784
1760
|
if (factory->ssl_context_count == 0) return TSI_INVALID_ARGUMENT;
|
1785
|
-
|
1786
|
-
|
1761
|
+
// Create the handshaker with the first context. We will switch if needed
|
1762
|
+
// because of SNI in ssl_server_handshaker_factory_servername_callback.
|
1787
1763
|
return create_tsi_ssl_handshaker(factory->ssl_contexts[0], 0, nullptr,
|
1764
|
+
network_bio_buf_size, ssl_bio_buf_size,
|
1788
1765
|
&factory->base, handshaker);
|
1789
1766
|
}
|
1790
1767
|
|
@@ -1811,6 +1788,7 @@ static void tsi_ssl_server_handshaker_factory_destroy(
|
|
1811
1788
|
gpr_free(self->ssl_context_x509_subject_names);
|
1812
1789
|
}
|
1813
1790
|
if (self->alpn_protocol_list != nullptr) gpr_free(self->alpn_protocol_list);
|
1791
|
+
self->key_logger.reset();
|
1814
1792
|
gpr_free(self);
|
1815
1793
|
}
|
1816
1794
|
|
@@ -1818,7 +1796,7 @@ static int does_entry_match_name(absl::string_view entry,
|
|
1818
1796
|
absl::string_view name) {
|
1819
1797
|
if (entry.empty()) return 0;
|
1820
1798
|
|
1821
|
-
|
1799
|
+
// Take care of '.' terminations.
|
1822
1800
|
if (name.back() == '.') {
|
1823
1801
|
name.remove_suffix(1);
|
1824
1802
|
}
|
@@ -1828,12 +1806,12 @@ static int does_entry_match_name(absl::string_view entry,
|
|
1828
1806
|
}
|
1829
1807
|
|
1830
1808
|
if (absl::EqualsIgnoreCase(name, entry)) {
|
1831
|
-
return 1;
|
1809
|
+
return 1; // Perfect match.
|
1832
1810
|
}
|
1833
1811
|
if (entry.front() != '*') return 0;
|
1834
1812
|
|
1835
|
-
|
1836
|
-
if (entry.size() < 3 || entry[1] != '.') {
|
1813
|
+
// Wildchar subdomain matching.
|
1814
|
+
if (entry.size() < 3 || entry[1] != '.') { // At least *.x
|
1837
1815
|
gpr_log(GPR_ERROR, "Invalid wildchar entry.");
|
1838
1816
|
return 0;
|
1839
1817
|
}
|
@@ -1841,8 +1819,8 @@ static int does_entry_match_name(absl::string_view entry,
|
|
1841
1819
|
if (name_subdomain_pos == absl::string_view::npos) return 0;
|
1842
1820
|
if (name_subdomain_pos >= name.size() - 2) return 0;
|
1843
1821
|
absl::string_view name_subdomain =
|
1844
|
-
name.substr(name_subdomain_pos + 1);
|
1845
|
-
entry.remove_prefix(2);
|
1822
|
+
name.substr(name_subdomain_pos + 1); // Starts after the dot.
|
1823
|
+
entry.remove_prefix(2); // Remove *.
|
1846
1824
|
size_t dot = name_subdomain.find('.');
|
1847
1825
|
if (dot == absl::string_view::npos || dot == name_subdomain.size() - 1) {
|
1848
1826
|
gpr_log(GPR_ERROR, "Invalid toplevel subdomain: %s",
|
@@ -1887,7 +1865,7 @@ static int server_handshaker_factory_alpn_callback(
|
|
1887
1865
|
factory->alpn_protocol_list,
|
1888
1866
|
factory->alpn_protocol_list_length);
|
1889
1867
|
}
|
1890
|
-
#endif
|
1868
|
+
#endif // TSI_OPENSSL_ALPN_SUPPORT
|
1891
1869
|
|
1892
1870
|
static int server_handshaker_factory_npn_advertised_callback(
|
1893
1871
|
SSL* /*ssl*/, const unsigned char** out, unsigned int* outlen, void* arg) {
|
@@ -1923,7 +1901,18 @@ static int server_handshaker_factory_new_session_callback(
|
|
1923
1901
|
return 1;
|
1924
1902
|
}
|
1925
1903
|
|
1926
|
-
|
1904
|
+
/// This callback is invoked at client or server when ssl/tls handshakes
|
1905
|
+
/// complete and keylogging is enabled.
|
1906
|
+
template <typename T>
|
1907
|
+
static void ssl_keylogging_callback(const SSL* ssl, const char* info) {
|
1908
|
+
SSL_CTX* ssl_context = SSL_get_SSL_CTX(ssl);
|
1909
|
+
GPR_ASSERT(ssl_context != nullptr);
|
1910
|
+
void* arg = SSL_CTX_get_ex_data(ssl_context, g_ssl_ctx_ex_factory_index);
|
1911
|
+
T* factory = static_cast<T*>(arg);
|
1912
|
+
factory->key_logger->LogSessionKeys(ssl_context, info);
|
1913
|
+
}
|
1914
|
+
|
1915
|
+
// --- tsi_ssl_handshaker_factory constructors. ---
|
1927
1916
|
|
1928
1917
|
static tsi_ssl_handshaker_factory_vtable client_handshaker_factory_vtable = {
|
1929
1918
|
tsi_ssl_client_handshaker_factory_destroy};
|
@@ -1964,7 +1953,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
1964
1953
|
ssl_context = SSL_CTX_new(TLSv1_2_method());
|
1965
1954
|
#endif
|
1966
1955
|
if (ssl_context == nullptr) {
|
1967
|
-
|
1956
|
+
grpc_core::LogSslErrorStack();
|
1968
1957
|
gpr_log(GPR_ERROR, "Could not create ssl context.");
|
1969
1958
|
return TSI_INVALID_ARGUMENT;
|
1970
1959
|
}
|
@@ -1983,12 +1972,27 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
1983
1972
|
impl->session_cache =
|
1984
1973
|
reinterpret_cast<tsi::SslSessionLRUCache*>(options->session_cache)
|
1985
1974
|
->Ref();
|
1986
|
-
SSL_CTX_set_ex_data(ssl_context, g_ssl_ctx_ex_factory_index, impl);
|
1987
1975
|
SSL_CTX_sess_set_new_cb(ssl_context,
|
1988
1976
|
server_handshaker_factory_new_session_callback);
|
1989
1977
|
SSL_CTX_set_session_cache_mode(ssl_context, SSL_SESS_CACHE_CLIENT);
|
1990
1978
|
}
|
1991
1979
|
|
1980
|
+
#if OPENSSL_VERSION_NUMBER >= 0x10101000 && !defined(LIBRESSL_VERSION_NUMBER)
|
1981
|
+
if (options->key_logger != nullptr) {
|
1982
|
+
impl->key_logger = options->key_logger->Ref();
|
1983
|
+
// SSL_CTX_set_keylog_callback is set here to register callback
|
1984
|
+
// when ssl/tls handshakes complete.
|
1985
|
+
SSL_CTX_set_keylog_callback(
|
1986
|
+
ssl_context,
|
1987
|
+
ssl_keylogging_callback<tsi_ssl_client_handshaker_factory>);
|
1988
|
+
}
|
1989
|
+
#endif
|
1990
|
+
|
1991
|
+
if (options->session_cache != nullptr || options->key_logger != nullptr) {
|
1992
|
+
// Need to set factory at g_ssl_ctx_ex_factory_index
|
1993
|
+
SSL_CTX_set_ex_data(ssl_context, g_ssl_ctx_ex_factory_index, impl);
|
1994
|
+
}
|
1995
|
+
|
1992
1996
|
do {
|
1993
1997
|
result = populate_ssl_context(ssl_context, options->pem_key_cert_pair,
|
1994
1998
|
options->cipher_suites);
|
@@ -2029,7 +2033,7 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
2029
2033
|
result = TSI_INVALID_ARGUMENT;
|
2030
2034
|
break;
|
2031
2035
|
}
|
2032
|
-
#endif
|
2036
|
+
#endif // TSI_OPENSSL_ALPN_SUPPORT
|
2033
2037
|
SSL_CTX_set_next_proto_select_cb(
|
2034
2038
|
ssl_context, client_handshaker_factory_npn_callback, impl);
|
2035
2039
|
}
|
@@ -2041,9 +2045,26 @@ tsi_result tsi_create_ssl_client_handshaker_factory_with_options(
|
|
2041
2045
|
if (options->skip_server_certificate_verification) {
|
2042
2046
|
SSL_CTX_set_verify(ssl_context, SSL_VERIFY_PEER, NullVerifyCallback);
|
2043
2047
|
} else {
|
2044
|
-
SSL_CTX_set_verify(ssl_context, SSL_VERIFY_PEER,
|
2048
|
+
SSL_CTX_set_verify(ssl_context, SSL_VERIFY_PEER, RootCertExtractCallback);
|
2045
2049
|
}
|
2046
|
-
|
2050
|
+
|
2051
|
+
#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
2052
|
+
if (options->crl_directory != nullptr &&
|
2053
|
+
strcmp(options->crl_directory, "") != 0) {
|
2054
|
+
gpr_log(GPR_INFO, "enabling client CRL checking with path: %s",
|
2055
|
+
options->crl_directory);
|
2056
|
+
X509_STORE* cert_store = SSL_CTX_get_cert_store(ssl_context);
|
2057
|
+
X509_STORE_set_verify_cb(cert_store, verify_cb);
|
2058
|
+
if (!X509_STORE_load_locations(cert_store, nullptr,
|
2059
|
+
options->crl_directory)) {
|
2060
|
+
gpr_log(GPR_ERROR, "Failed to load CRL File from directory.");
|
2061
|
+
} else {
|
2062
|
+
X509_VERIFY_PARAM* param = X509_STORE_get0_param(cert_store);
|
2063
|
+
X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CRL_CHECK);
|
2064
|
+
gpr_log(GPR_INFO, "enabled client side CRL checking.");
|
2065
|
+
}
|
2066
|
+
}
|
2067
|
+
#endif
|
2047
2068
|
|
2048
2069
|
*factory = impl;
|
2049
2070
|
return TSI_OK;
|
@@ -2125,6 +2146,10 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2125
2146
|
}
|
2126
2147
|
}
|
2127
2148
|
|
2149
|
+
if (options->key_logger != nullptr) {
|
2150
|
+
impl->key_logger = options->key_logger->Ref();
|
2151
|
+
}
|
2152
|
+
|
2128
2153
|
for (i = 0; i < options->num_key_cert_pairs; i++) {
|
2129
2154
|
do {
|
2130
2155
|
#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
@@ -2133,7 +2158,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2133
2158
|
impl->ssl_contexts[i] = SSL_CTX_new(TLSv1_2_method());
|
2134
2159
|
#endif
|
2135
2160
|
if (impl->ssl_contexts[i] == nullptr) {
|
2136
|
-
|
2161
|
+
grpc_core::LogSslErrorStack();
|
2137
2162
|
gpr_log(GPR_ERROR, "Could not create ssl context.");
|
2138
2163
|
result = TSI_OUT_OF_RESOURCES;
|
2139
2164
|
break;
|
@@ -2192,7 +2217,8 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2192
2217
|
NullVerifyCallback);
|
2193
2218
|
break;
|
2194
2219
|
case TSI_REQUEST_CLIENT_CERTIFICATE_AND_VERIFY:
|
2195
|
-
SSL_CTX_set_verify(impl->ssl_contexts[i], SSL_VERIFY_PEER,
|
2220
|
+
SSL_CTX_set_verify(impl->ssl_contexts[i], SSL_VERIFY_PEER,
|
2221
|
+
RootCertExtractCallback);
|
2196
2222
|
break;
|
2197
2223
|
case TSI_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_BUT_DONT_VERIFY:
|
2198
2224
|
SSL_CTX_set_verify(impl->ssl_contexts[i],
|
@@ -2202,10 +2228,27 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2202
2228
|
case TSI_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY:
|
2203
2229
|
SSL_CTX_set_verify(impl->ssl_contexts[i],
|
2204
2230
|
SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT,
|
2205
|
-
|
2231
|
+
RootCertExtractCallback);
|
2206
2232
|
break;
|
2207
2233
|
}
|
2208
|
-
|
2234
|
+
|
2235
|
+
#if OPENSSL_VERSION_NUMBER >= 0x10100000
|
2236
|
+
if (options->crl_directory != nullptr &&
|
2237
|
+
strcmp(options->crl_directory, "") != 0) {
|
2238
|
+
gpr_log(GPR_INFO, "enabling server CRL checking with path %s",
|
2239
|
+
options->crl_directory);
|
2240
|
+
X509_STORE* cert_store = SSL_CTX_get_cert_store(impl->ssl_contexts[i]);
|
2241
|
+
X509_STORE_set_verify_cb(cert_store, verify_cb);
|
2242
|
+
if (!X509_STORE_load_locations(cert_store, nullptr,
|
2243
|
+
options->crl_directory)) {
|
2244
|
+
gpr_log(GPR_ERROR, "Failed to load CRL File from directory.");
|
2245
|
+
} else {
|
2246
|
+
X509_VERIFY_PARAM* param = X509_STORE_get0_param(cert_store);
|
2247
|
+
X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CRL_CHECK);
|
2248
|
+
gpr_log(GPR_INFO, "enabled server CRL checking.");
|
2249
|
+
}
|
2250
|
+
}
|
2251
|
+
#endif
|
2209
2252
|
|
2210
2253
|
result = tsi_ssl_extract_x509_subject_names_from_pem_cert(
|
2211
2254
|
options->pem_key_cert_pairs[i].cert_chain,
|
@@ -2219,10 +2262,24 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2219
2262
|
#if TSI_OPENSSL_ALPN_SUPPORT
|
2220
2263
|
SSL_CTX_set_alpn_select_cb(impl->ssl_contexts[i],
|
2221
2264
|
server_handshaker_factory_alpn_callback, impl);
|
2222
|
-
#endif
|
2265
|
+
#endif // TSI_OPENSSL_ALPN_SUPPORT
|
2223
2266
|
SSL_CTX_set_next_protos_advertised_cb(
|
2224
2267
|
impl->ssl_contexts[i],
|
2225
2268
|
server_handshaker_factory_npn_advertised_callback, impl);
|
2269
|
+
|
2270
|
+
#if OPENSSL_VERSION_NUMBER >= 0x10101000 && !defined(LIBRESSL_VERSION_NUMBER)
|
2271
|
+
// Register factory at index
|
2272
|
+
if (options->key_logger != nullptr) {
|
2273
|
+
// Need to set factory at g_ssl_ctx_ex_factory_index
|
2274
|
+
SSL_CTX_set_ex_data(impl->ssl_contexts[i], g_ssl_ctx_ex_factory_index,
|
2275
|
+
impl);
|
2276
|
+
// SSL_CTX_set_keylog_callback is set here to register callback
|
2277
|
+
// when ssl/tls handshakes complete.
|
2278
|
+
SSL_CTX_set_keylog_callback(
|
2279
|
+
impl->ssl_contexts[i],
|
2280
|
+
ssl_keylogging_callback<tsi_ssl_server_handshaker_factory>);
|
2281
|
+
}
|
2282
|
+
#endif
|
2226
2283
|
} while (false);
|
2227
2284
|
|
2228
2285
|
if (result != TSI_OK) {
|
@@ -2235,7 +2292,7 @@ tsi_result tsi_create_ssl_server_handshaker_factory_with_options(
|
|
2235
2292
|
return TSI_OK;
|
2236
2293
|
}
|
2237
2294
|
|
2238
|
-
|
2295
|
+
// --- tsi_ssl utils. ---
|
2239
2296
|
|
2240
2297
|
int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
|
2241
2298
|
size_t i = 0;
|
@@ -2243,7 +2300,7 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
|
|
2243
2300
|
const tsi_peer_property* cn_property = nullptr;
|
2244
2301
|
int like_ip = looks_like_ip_address(name);
|
2245
2302
|
|
2246
|
-
|
2303
|
+
// Check the SAN first.
|
2247
2304
|
for (i = 0; i < peer->property_count; i++) {
|
2248
2305
|
const tsi_peer_property* property = &peer->properties[i];
|
2249
2306
|
if (property->name == nullptr) continue;
|
@@ -2255,7 +2312,7 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
|
|
2255
2312
|
if (!like_ip && does_entry_match_name(entry, name)) {
|
2256
2313
|
return 1;
|
2257
2314
|
} else if (like_ip && name == entry) {
|
2258
|
-
|
2315
|
+
// IP Addresses are exact matches only.
|
2259
2316
|
return 1;
|
2260
2317
|
}
|
2261
2318
|
} else if (strcmp(property->name,
|
@@ -2264,7 +2321,7 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
|
|
2264
2321
|
}
|
2265
2322
|
}
|
2266
2323
|
|
2267
|
-
|
2324
|
+
// If there's no SAN, try the CN, but only if its not like an IP Address
|
2268
2325
|
if (san_count == 0 && cn_property != nullptr && !like_ip) {
|
2269
2326
|
if (does_entry_match_name(absl::string_view(cn_property->value.data,
|
2270
2327
|
cn_property->value.length),
|
@@ -2273,10 +2330,10 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer, absl::string_view name) {
|
|
2273
2330
|
}
|
2274
2331
|
}
|
2275
2332
|
|
2276
|
-
return 0;
|
2333
|
+
return 0; // Not found.
|
2277
2334
|
}
|
2278
2335
|
|
2279
|
-
|
2336
|
+
// --- Testing support. ---
|
2280
2337
|
const tsi_ssl_handshaker_factory_vtable* tsi_ssl_handshaker_factory_swap_vtable(
|
2281
2338
|
tsi_ssl_handshaker_factory* factory,
|
2282
2339
|
tsi_ssl_handshaker_factory_vtable* new_vtable) {
|