grpc 1.50.0 → 1.56.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 +453 -176
- 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/event_engine.h +83 -23
- 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 -1
- data/include/grpc/event_engine/slice.h +24 -4
- data/include/grpc/event_engine/slice_buffer.h +44 -3
- data/include/grpc/fork.h +25 -1
- data/include/grpc/grpc.h +3 -13
- data/include/grpc/grpc_audit_logging.h +96 -0
- data/include/grpc/grpc_posix.h +1 -1
- data/include/grpc/grpc_security.h +4 -0
- data/include/grpc/impl/codegen/atm.h +3 -71
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +3 -58
- data/include/grpc/impl/codegen/atm_gcc_sync.h +3 -59
- data/include/grpc/impl/codegen/atm_windows.h +3 -106
- 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 +3 -82
- data/include/grpc/impl/codegen/connectivity_state.h +3 -20
- data/include/grpc/impl/codegen/fork.h +4 -25
- data/include/grpc/impl/codegen/gpr_types.h +2 -34
- data/include/grpc/impl/codegen/grpc_types.h +3 -791
- data/include/grpc/impl/codegen/log.h +3 -86
- data/include/grpc/impl/codegen/port_platform.h +3 -758
- data/include/grpc/impl/codegen/propagation_bits.h +3 -28
- data/include/grpc/impl/codegen/slice.h +3 -106
- 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 +838 -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 +7 -1
- data/include/grpc/slice.h +1 -1
- 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/json.h +218 -0
- 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 +164 -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 +17 -18
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +28 -22
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +5 -4
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +4 -4
- data/src/core/ext/filters/client_channel/backend_metric.cc +12 -1
- data/src/core/ext/filters/client_channel/backend_metric.h +3 -3
- data/src/core/ext/filters/client_channel/backup_poller.cc +26 -35
- data/src/core/ext/filters/client_channel/backup_poller.h +24 -27
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +51 -28
- data/src/core/ext/filters/client_channel/client_channel.cc +1014 -1016
- data/src/core/ext/filters/client_channel/client_channel.h +155 -187
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +36 -37
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +22 -22
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +17 -17
- data/src/core/ext/filters/client_channel/client_channel_factory.h +3 -3
- data/src/core/ext/filters/client_channel/client_channel_internal.h +77 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +18 -18
- data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
- data/src/core/ext/filters/client_channel/{resolver_result_parsing.h → client_channel_service_config.h} +26 -23
- data/src/core/ext/filters/client_channel/config_selector.h +25 -55
- data/src/core/ext/filters/client_channel/connector.h +9 -5
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +28 -55
- data/src/core/ext/filters/client_channel/dynamic_filters.h +10 -11
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +21 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +74 -42
- data/src/core/ext/filters/client_channel/http_proxy.h +21 -21
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +29 -21
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +7 -2
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +66 -130
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +40 -24
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +156 -178
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +26 -27
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +0 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +4 -6
- 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 +21 -22
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +19 -20
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +22 -23
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.cc +455 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/health_check_client_internal.h +186 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +11 -94
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +4 -4
- 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 +263 -242
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +28 -7
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +28 -26
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +76 -112
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +159 -168
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +22 -5
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +173 -171
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +31 -25
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +68 -31
- data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/static_stride_scheduler.cc +198 -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 +1002 -0
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +76 -70
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +103 -105
- 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.h → xds_attributes.h} +15 -17
- 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 +34 -41
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +76 -113
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +111 -185
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +814 -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 +363 -0
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +21 -21
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +9 -10
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +59 -175
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h +30 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +42 -43
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +22 -23
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +92 -87
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +153 -153
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +54 -55
- 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 +18 -18
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +60 -0
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.h +27 -0
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +549 -0
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h +35 -0
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +97 -0
- data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h +32 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +20 -39
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h +24 -0
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -3
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +4 -4
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +85 -223
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +45 -36
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +12 -15
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +4 -7
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +280 -189
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +19 -4
- data/src/core/ext/filters/client_channel/retry_filter.cc +200 -264
- data/src/core/ext/filters/client_channel/retry_filter.h +3 -3
- data/src/core/ext/filters/client_channel/retry_service_config.cc +195 -236
- data/src/core/ext/filters/client_channel/retry_service_config.h +23 -26
- data/src/core/ext/filters/client_channel/retry_throttle.cc +27 -29
- data/src/core/ext/filters/client_channel/retry_throttle.h +29 -28
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +17 -47
- data/src/core/ext/filters/client_channel/subchannel.cc +133 -337
- data/src/core/ext/filters/client_channel/subchannel.h +23 -86
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +3 -3
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +21 -21
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +36 -38
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +11 -8
- data/src/core/ext/filters/deadline/deadline_filter.cc +73 -64
- data/src/core/ext/filters/deadline/deadline_filter.h +6 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +3 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +3 -7
- data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
- data/src/core/ext/filters/fault_injection/{service_config_parser.h → fault_injection_service_config_parser.h} +20 -12
- data/src/core/ext/filters/http/client/http_client_filter.cc +47 -43
- data/src/core/ext/filters/http/client/http_client_filter.h +20 -20
- data/src/core/ext/filters/http/client_authority_filter.cc +19 -19
- data/src/core/ext/filters/http/client_authority_filter.h +21 -21
- data/src/core/ext/filters/http/http_filters_plugin.cc +30 -57
- data/src/core/ext/filters/http/message_compress/compression_filter.cc +323 -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 +54 -52
- data/src/core/ext/filters/http/server/http_server_filter.h +21 -21
- data/src/core/ext/filters/message_size/message_size_filter.cc +184 -297
- data/src/core/ext/filters/message_size/message_size_filter.h +72 -20
- data/src/core/ext/filters/rbac/rbac_filter.cc +16 -15
- data/src/core/ext/filters/rbac/rbac_filter.h +3 -3
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +829 -538
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +7 -6
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +9 -11
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +12 -16
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +3 -3
- data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +220 -0
- data/src/core/ext/filters/stateful_session/stateful_session_filter.h +81 -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/gcp/metadata_query.cc +137 -0
- data/src/core/ext/gcp/metadata_query.h +87 -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 +68 -67
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +30 -24
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +149 -149
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +21 -21
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +22 -22
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +33 -33
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +41 -37
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +35 -31
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +673 -455
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +42 -22
- data/src/core/ext/transport/chttp2/transport/context_list_entry.h +70 -0
- data/src/core/ext/transport/chttp2/transport/decode_huff.cc +0 -36
- data/src/core/ext/transport/chttp2/transport/decode_huff.h +38 -85
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +130 -107
- data/src/core/ext/transport/chttp2/transport/flow_control.h +66 -39
- data/src/core/ext/transport/chttp2/transport/frame.h +21 -21
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -32
- data/src/core/ext/transport/chttp2/transport/frame_data.h +27 -27
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +38 -36
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +20 -20
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +27 -31
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +21 -24
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +30 -25
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +21 -21
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +39 -37
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +22 -22
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +24 -21
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +21 -21
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +3 -3
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +201 -353
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +328 -164
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +5 -3
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +498 -744
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -26
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +41 -37
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +30 -22
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +39 -37
- 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 +220 -192
- data/src/core/ext/transport/chttp2/transport/parsing.cc +263 -109
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +23 -23
- data/src/core/ext/transport/chttp2/transport/stream_map.h +33 -33
- data/src/core/ext/transport/chttp2/transport/varint.cc +19 -20
- data/src/core/ext/transport/chttp2/transport/varint.h +37 -34
- data/src/core/ext/transport/chttp2/transport/writing.cc +93 -72
- data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -17
- data/src/core/ext/transport/inproc/inproc_transport.cc +143 -155
- data/src/core/ext/transport/inproc/inproc_transport.h +21 -21
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +87 -52
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +414 -181
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -59
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +485 -219
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +90 -55
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +415 -188
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +377 -194
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1694 -666
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +30 -17
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +144 -47
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +34 -21
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +160 -62
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +27 -14
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +78 -38
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +20 -11
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +48 -26
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +20 -11
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +48 -26
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +109 -62
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +566 -244
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +45 -30
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -19
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +82 -29
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +23 -16
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +45 -30
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +230 -143
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +733 -404
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +417 -258
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1873 -867
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -41
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +286 -148
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +537 -349
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2038 -1178
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +45 -30
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +89 -52
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +347 -232
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +264 -165
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +888 -476
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +154 -72
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +603 -213
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +50 -36
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +380 -221
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1168 -611
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +166 -94
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +666 -292
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +18 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +37 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +45 -30
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +30 -17
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +144 -47
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +274 -167
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +789 -440
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +222 -128
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +1116 -485
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +60 -37
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +350 -208
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1088 -625
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +44 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +175 -18
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +34 -19
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +118 -56
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +48 -16
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +189 -44
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +31 -18
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +143 -65
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +22 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +51 -37
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +78 -43
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +265 -127
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +147 -84
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +454 -226
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +115 -62
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +559 -227
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +18 -11
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +35 -26
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +187 -107
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +969 -410
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +172 -95
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +864 -374
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +49 -23
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +182 -89
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +39 -18
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +74 -56
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +28 -15
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +71 -45
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +131 -74
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +489 -249
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +135 -80
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +505 -245
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +257 -127
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +1010 -387
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +91 -41
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +648 -183
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +1301 -751
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +5583 -2425
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +49 -28
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +164 -84
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +228 -141
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +738 -399
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +20 -10
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +53 -22
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +45 -30
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +32 -19
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +70 -49
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +27 -14
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +110 -43
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +46 -25
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +259 -100
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +49 -25
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +18 -11
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +35 -26
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +42 -23
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +108 -70
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +21 -16
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +43 -24
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +110 -75
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +30 -16
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +100 -46
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +16 -9
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +73 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +60 -37
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +150 -108
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +74 -43
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +357 -167
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +44 -25
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +114 -80
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +42 -18
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +253 -67
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +75 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +201 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +474 -289
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2156 -1037
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +107 -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 +69 -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 +246 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +138 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +499 -0
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +36 -17
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +144 -55
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +18 -11
- data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +35 -26
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +15 -10
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +184 -96
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +907 -360
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +56 -33
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -101
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +188 -109
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +827 -408
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +32 -19
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +109 -53
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +10 -7
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +18 -14
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +300 -175
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1297 -511
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +42 -23
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +188 -75
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +130 -83
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +510 -238
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +22 -13
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +55 -34
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +39 -26
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +124 -68
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +130 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +60 -26
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +130 -51
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +37 -20
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +133 -63
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -13
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +91 -40
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +50 -32
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +18 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +37 -26
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +46 -27
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +101 -70
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +117 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +40 -23
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +161 -75
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +31 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +114 -56
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +46 -29
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +139 -91
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +65 -42
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +200 -121
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +80 -45
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +208 -131
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +34 -21
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +74 -53
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +13 -8
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +16 -9
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +28 -18
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +28 -15
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +55 -34
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +43 -22
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +91 -53
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +35 -20
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +92 -57
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +7 -4
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +16 -9
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -11
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +48 -26
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +23 -14
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +61 -41
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +14 -11
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +30 -20
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +255 -154
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +934 -450
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +299 -180
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +946 -483
- data/src/core/ext/upb-generated/google/api/http.upb.c +68 -35
- data/src/core/ext/upb-generated/google/api/http.upb.h +284 -120
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +22 -13
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +95 -37
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -10
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +38 -22
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +1018 -424
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +3851 -1412
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -10
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +38 -22
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +10 -7
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +18 -14
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +62 -39
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +207 -102
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -10
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +38 -22
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +90 -51
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +157 -107
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -13
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +95 -37
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +59 -34
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +154 -92
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +43 -24
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +118 -60
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +250 -145
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +919 -415
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +34 -19
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +76 -51
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +25 -14
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +45 -30
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +144 -81
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +405 -217
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +51 -26
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +153 -61
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +173 -102
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +855 -298
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +68 -49
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +155 -104
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +26 -17
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +55 -34
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +12 -9
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +31 -14
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +26 -17
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +55 -34
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +23 -16
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +45 -30
- data/src/core/ext/upb-generated/validate/validate.upb.c +845 -455
- data/src/core/ext/upb-generated/validate/validate.upb.h +4347 -1908
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +68 -49
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +155 -104
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +26 -17
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +55 -34
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +12 -9
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +31 -14
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +65 -44
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +137 -91
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +23 -16
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +45 -30
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +16 -9
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +28 -18
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +56 -0
- data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +122 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +37 -22
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +96 -63
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +26 -17
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +52 -29
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +21 -12
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +45 -30
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +23 -14
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +62 -42
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +44 -25
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +169 -79
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +27 -14
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +65 -38
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +86 -30
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +223 -54
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +21 -13
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +89 -34
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +53 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +107 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +75 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +270 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +39 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +78 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +78 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +289 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +162 -101
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +501 -293
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +160 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +740 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +24 -15
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +53 -37
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +40 -23
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +161 -75
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +82 -0
- data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +240 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +85 -0
- data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +246 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +21 -13
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +45 -30
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +55 -54
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +35 -14
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +16 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +252 -241
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +233 -225
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +6 -10
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +96 -76
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +95 -94
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +13 -12
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +82 -76
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +193 -188
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +32 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +8 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +72 -67
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +141 -134
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +21 -5
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +55 -42
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +167 -138
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +16 -5
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +82 -71
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +772 -739
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +16 -5
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +17 -15
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +7 -9
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +21 -19
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +54 -43
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +6 -5
- 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 +41 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +382 -364
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +6 -5
- 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 +36 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +138 -136
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +151 -147
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +17 -14
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +6 -6
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +12 -13
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +6 -5
- 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 +36 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +11 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +15 -15
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +6 -5
- 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 +41 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +11 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +329 -273
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +11 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +6 -5
- 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 +36 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +6 -5
- 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 +36 -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 +41 -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 +36 -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 +41 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +10 -10
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +6 -5
- 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 +61 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +6 -5
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +6 -5
- 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 +41 -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 +46 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +5 -8
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +6 -5
- data/src/core/ext/xds/certificate_provider_store.cc +8 -13
- data/src/core/ext/xds/certificate_provider_store.h +4 -4
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +32 -46
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +17 -12
- data/src/core/ext/xds/upb_utils.h +4 -4
- data/src/core/ext/xds/xds_api.cc +61 -113
- data/src/core/ext/xds/xds_api.h +13 -15
- data/src/core/ext/xds/xds_audit_logger_registry.cc +122 -0
- data/src/core/ext/xds/xds_audit_logger_registry.h +68 -0
- data/src/core/ext/xds/xds_bootstrap.cc +3 -3
- data/src/core/ext/xds/xds_bootstrap.h +3 -4
- data/src/core/ext/xds/xds_bootstrap_grpc.cc +37 -33
- data/src/core/ext/xds/xds_bootstrap_grpc.h +24 -4
- data/src/core/ext/xds/xds_certificate_provider.cc +22 -25
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +3 -3
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +1 -3
- data/src/core/ext/xds/xds_channel_stack_modifier.h +4 -4
- data/src/core/ext/xds/xds_client.cc +171 -104
- data/src/core/ext/xds/xds_client.h +17 -9
- data/src/core/ext/xds/xds_client_grpc.cc +30 -24
- data/src/core/ext/xds/xds_client_grpc.h +4 -4
- data/src/core/ext/xds/xds_client_stats.cc +46 -32
- data/src/core/ext/xds/xds_client_stats.h +46 -41
- data/src/core/ext/xds/xds_cluster.cc +358 -205
- data/src/core/ext/xds/xds_cluster.h +55 -39
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +61 -74
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +50 -26
- data/src/core/ext/xds/xds_common_types.cc +213 -141
- data/src/core/ext/xds/xds_common_types.h +22 -16
- data/src/core/ext/xds/xds_endpoint.cc +229 -132
- data/src/core/ext/xds/xds_endpoint.h +17 -12
- 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 -51
- data/src/core/ext/xds/xds_http_fault_filter.h +19 -26
- data/src/core/ext/xds/xds_http_filters.cc +65 -73
- data/src/core/ext/xds/xds_http_filters.h +76 -25
- data/src/core/ext/xds/xds_http_rbac_filter.cc +303 -272
- data/src/core/ext/xds/xds_http_rbac_filter.h +19 -21
- data/src/core/ext/xds/xds_http_stateful_session_filter.cc +222 -0
- data/src/core/ext/xds/xds_http_stateful_session_filter.h +59 -0
- data/src/core/ext/xds/xds_lb_policy_registry.cc +211 -166
- data/src/core/ext/xds/xds_lb_policy_registry.h +13 -14
- data/src/core/ext/xds/xds_listener.cc +456 -420
- data/src/core/ext/xds/xds_listener.h +49 -51
- data/src/core/ext/xds/xds_resource_type.h +8 -16
- data/src/core/ext/xds/xds_resource_type_impl.h +13 -16
- data/src/core/ext/xds/xds_route_config.cc +566 -534
- data/src/core/ext/xds/xds_route_config.h +43 -32
- data/src/core/ext/xds/xds_routing.cc +4 -3
- data/src/core/ext/xds/xds_routing.h +5 -3
- data/src/core/ext/xds/xds_server_config_fetcher.cc +109 -106
- data/src/core/ext/xds/xds_transport.h +3 -3
- data/src/core/ext/xds/xds_transport_grpc.cc +10 -9
- data/src/core/ext/xds/xds_transport_grpc.h +4 -4
- data/src/core/lib/address_utils/parse_address.cc +30 -29
- data/src/core/lib/address_utils/parse_address.h +35 -35
- data/src/core/lib/address_utils/sockaddr_utils.cc +30 -28
- data/src/core/lib/address_utils/sockaddr_utils.h +36 -36
- data/src/core/lib/avl/avl.h +12 -7
- data/src/core/lib/backoff/backoff.cc +17 -17
- data/src/core/lib/backoff/backoff.h +20 -20
- data/src/core/lib/backoff/random_early_detection.cc +31 -0
- data/src/core/lib/backoff/random_early_detection.h +59 -0
- data/src/core/lib/channel/call_finalization.h +4 -4
- data/src/core/lib/channel/call_tracer.cc +51 -0
- data/src/core/lib/channel/call_tracer.h +106 -34
- data/src/core/lib/channel/channel_args.cc +100 -42
- data/src/core/lib/channel/channel_args.h +104 -49
- data/src/core/lib/channel/channel_args_preconditioning.h +4 -4
- data/src/core/lib/channel/channel_fwd.h +3 -3
- data/src/core/lib/channel/channel_stack.cc +60 -57
- data/src/core/lib/channel/channel_stack.h +148 -135
- data/src/core/lib/channel/channel_stack_builder.cc +21 -24
- data/src/core/lib/channel/channel_stack_builder.h +17 -9
- data/src/core/lib/channel/channel_stack_builder_impl.cc +56 -25
- data/src/core/lib/channel/channel_stack_builder_impl.h +5 -3
- data/src/core/lib/channel/channel_trace.cc +37 -34
- data/src/core/lib/channel/channel_trace.h +22 -22
- data/src/core/lib/channel/channelz.cc +181 -154
- data/src/core/lib/channel/channelz.h +71 -64
- data/src/core/lib/channel/channelz_registry.cc +41 -37
- data/src/core/lib/channel/channelz_registry.h +21 -21
- data/src/core/lib/channel/connected_channel.cc +764 -67
- data/src/core/lib/channel/connected_channel.h +20 -24
- data/src/core/lib/channel/context.h +33 -22
- data/src/core/lib/channel/promise_based_filter.cc +1591 -278
- data/src/core/lib/channel/promise_based_filter.h +486 -104
- data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
- data/src/core/lib/channel/status_util.cc +35 -17
- data/src/core/lib/channel/status_util.h +29 -22
- data/src/core/lib/compression/compression.cc +19 -19
- data/src/core/lib/compression/compression_internal.cc +38 -48
- data/src/core/lib/compression/compression_internal.h +25 -25
- data/src/core/lib/compression/message_compress.cc +26 -26
- data/src/core/lib/compression/message_compress.h +27 -27
- data/src/core/lib/config/config_vars.cc +153 -0
- data/src/core/lib/config/config_vars.h +127 -0
- data/src/core/lib/config/config_vars_non_generated.cc +51 -0
- data/src/core/lib/config/core_configuration.h +3 -3
- data/src/core/lib/config/load_config.cc +79 -0
- data/src/core/lib/config/load_config.h +55 -0
- 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 +39 -136
- data/src/core/lib/debug/stats.h +49 -55
- data/src/core/lib/debug/stats_data.cc +240 -88
- data/src/core/lib/debug/stats_data.h +295 -145
- data/src/core/lib/debug/trace.cc +56 -79
- data/src/core/lib/debug/trace.h +37 -54
- data/src/core/lib/event_engine/cf_engine/cf_engine.cc +211 -0
- data/src/core/lib/event_engine/cf_engine/cf_engine.h +86 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.cc +354 -0
- data/src/core/lib/event_engine/cf_engine/cfstream_endpoint.h +146 -0
- data/src/core/lib/event_engine/cf_engine/cftype_unique_ref.h +79 -0
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +5 -0
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +3 -3
- data/src/core/lib/event_engine/common_closures.h +71 -0
- data/src/core/lib/event_engine/default_event_engine.cc +56 -16
- data/src/core/lib/event_engine/default_event_engine.h +44 -8
- data/src/core/lib/event_engine/default_event_engine_factory.cc +16 -6
- data/src/core/lib/event_engine/default_event_engine_factory.h +3 -3
- data/src/core/lib/event_engine/event_engine.cc +60 -0
- data/src/core/lib/event_engine/forkable.cc +11 -6
- data/src/core/lib/event_engine/forkable.h +3 -3
- data/src/core/lib/event_engine/handle_containers.h +12 -20
- data/src/core/lib/event_engine/memory_allocator.cc +1 -1
- data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
- data/src/core/lib/event_engine/poller.h +13 -7
- data/src/core/lib/event_engine/posix.h +162 -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 +895 -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 +68 -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 +254 -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 +1338 -0
- data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +726 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine.cc +523 -28
- data/src/core/lib/event_engine/posix_engine/posix_engine.h +165 -27
- 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 +292 -0
- data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +278 -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 +867 -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 +49 -49
- data/src/core/lib/event_engine/posix_engine/timer.h +90 -89
- data/src/core/lib/event_engine/posix_engine/timer_heap.cc +27 -27
- data/src/core/lib/event_engine/posix_engine/timer_heap.h +24 -24
- data/src/core/lib/event_engine/posix_engine/timer_manager.cc +76 -214
- data/src/core/lib/event_engine/posix_engine/timer_manager.h +44 -72
- 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 +21 -1
- data/src/core/lib/event_engine/{executor/executor.h → resolved_address_internal.h} +11 -15
- data/src/core/lib/event_engine/shim.cc +64 -0
- data/src/core/lib/event_engine/{executor/threaded_executor.cc → shim.h} +10 -13
- data/src/core/lib/event_engine/slice.cc +8 -7
- data/src/core/lib/event_engine/slice_buffer.cc +2 -2
- 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/original_thread_pool.cc +256 -0
- data/src/core/lib/event_engine/thread_pool/original_thread_pool.h +137 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool.h +50 -0
- data/src/core/lib/event_engine/thread_pool/thread_pool_factory.cc +40 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +489 -0
- data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.h +249 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +166 -0
- data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.h +108 -0
- data/src/core/lib/event_engine/time_util.h +3 -3
- data/src/core/lib/event_engine/trace.cc +7 -0
- data/src/core/lib/event_engine/trace.h +22 -3
- data/src/core/lib/event_engine/utils.cc +2 -2
- data/src/core/lib/event_engine/utils.h +12 -4
- data/src/core/lib/event_engine/windows/iocp.cc +39 -53
- data/src/core/lib/event_engine/windows/iocp.h +7 -7
- data/src/core/lib/event_engine/windows/win_socket.cc +69 -47
- data/src/core/lib/event_engine/windows/win_socket.h +38 -29
- data/src/core/lib/event_engine/windows/windows_endpoint.cc +379 -0
- data/src/core/lib/event_engine/windows/windows_endpoint.h +120 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +285 -33
- data/src/core/lib/event_engine/windows/windows_engine.h +70 -26
- data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
- data/src/core/lib/event_engine/windows/windows_listener.h +156 -0
- data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +63 -0
- data/src/core/lib/event_engine/work_queue/basic_work_queue.h +71 -0
- data/src/core/lib/event_engine/work_queue/work_queue.h +62 -0
- data/src/core/lib/experiments/config.cc +56 -17
- data/src/core/lib/experiments/config.h +29 -3
- data/src/core/lib/experiments/experiments.cc +92 -29
- data/src/core/lib/experiments/experiments.h +101 -23
- data/src/core/lib/gpr/alloc.cc +19 -17
- data/src/core/lib/gpr/alloc.h +20 -20
- data/src/core/lib/gpr/{log_android.cc → android/log.cc} +22 -20
- data/src/core/lib/gpr/atm.cc +17 -17
- data/src/core/lib/gpr/iphone/cpu.cc +44 -0
- data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +28 -23
- data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +24 -24
- data/src/core/lib/gpr/log.cc +42 -47
- data/src/core/lib/gpr/log_internal.h +55 -0
- data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +21 -20
- data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +23 -22
- data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +20 -19
- data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +24 -24
- data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +23 -21
- data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +40 -30
- data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +22 -20
- 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/sync.cc +25 -25
- data/src/core/lib/gpr/sync_abseil.cc +37 -27
- data/src/core/lib/gpr/time.cc +23 -21
- data/src/core/lib/gpr/time_precise.cc +22 -22
- data/src/core/lib/gpr/time_precise.h +20 -21
- data/src/core/lib/gpr/tmpfile.h +24 -24
- data/src/core/lib/gpr/useful.h +43 -30
- data/src/core/{ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc → lib/gpr/windows/cpu.cc} +16 -11
- data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +25 -24
- data/src/core/lib/gpr/windows/string.cc +69 -0
- data/src/core/lib/gpr/{string_util_windows.cc → windows/string_util.cc} +22 -22
- data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +29 -27
- data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +25 -22
- data/src/core/lib/gpr/{tmpfile_windows.cc → windows/tmpfile.cc} +23 -22
- 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 +27 -3
- data/src/core/lib/gprpp/chunked_vector.h +3 -3
- data/src/core/lib/gprpp/construct_destruct.h +3 -3
- data/src/core/lib/gprpp/cpp_impl_of.h +3 -3
- data/src/core/lib/gprpp/crash.cc +43 -0
- data/src/core/lib/gprpp/crash.h +37 -0
- data/src/core/lib/gprpp/debug_location.h +20 -23
- data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
- data/src/core/lib/gprpp/env.h +23 -23
- data/src/core/lib/gprpp/examine_stack.cc +17 -17
- data/src/core/lib/gprpp/examine_stack.h +21 -21
- data/src/core/lib/gprpp/fork.cc +49 -39
- data/src/core/lib/gprpp/fork.h +29 -27
- data/src/core/lib/gprpp/host_port.cc +28 -26
- data/src/core/lib/gprpp/host_port.h +32 -31
- data/src/core/lib/gprpp/{env_linux.cc → linux/env.cc} +21 -21
- 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 +22 -21
- data/src/core/lib/gprpp/match.h +3 -3
- data/src/core/lib/gprpp/memory.h +21 -21
- 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 +4 -3
- data/src/core/lib/gprpp/notification.h +3 -3
- data/src/core/lib/gprpp/orphanable.h +25 -24
- data/src/core/lib/gprpp/overload.h +3 -3
- data/src/core/lib/gprpp/packed_table.h +3 -3
- data/src/core/lib/gprpp/per_cpu.cc +33 -0
- data/src/core/lib/gprpp/per_cpu.h +75 -0
- data/src/core/lib/gprpp/posix/env.cc +47 -0
- data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +5 -4
- data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +75 -64
- data/src/core/lib/gprpp/ref_counted.h +54 -55
- data/src/core/lib/gprpp/ref_counted_ptr.h +22 -21
- data/src/core/lib/gprpp/single_set_ptr.h +3 -3
- data/src/core/lib/gprpp/sorted_pack.h +3 -3
- data/src/core/lib/gprpp/stat.h +3 -3
- data/src/core/lib/gprpp/status_helper.cc +6 -5
- data/src/core/lib/gprpp/status_helper.h +4 -6
- 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 +23 -23
- data/src/core/lib/gprpp/table.h +4 -3
- data/src/core/lib/gprpp/tchar.h +3 -3
- data/src/core/lib/gprpp/thd.h +39 -23
- data/src/core/lib/gprpp/time.cc +18 -10
- data/src/core/lib/gprpp/time.h +16 -6
- data/src/core/lib/gprpp/time_averaged_stats.cc +20 -20
- data/src/core/lib/gprpp/time_averaged_stats.h +50 -50
- data/src/core/lib/gprpp/time_util.h +4 -4
- data/src/core/lib/gprpp/unique_type_name.h +21 -21
- data/src/core/lib/gprpp/validation_errors.cc +8 -3
- data/src/core/lib/gprpp/validation_errors.h +37 -13
- data/src/core/lib/gprpp/{env_windows.cc → windows/env.cc} +18 -18
- data/src/core/lib/gprpp/{stat_windows.cc → windows/stat.cc} +4 -2
- data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +28 -28
- data/src/core/lib/gprpp/work_serializer.h +3 -3
- data/src/core/lib/handshaker/proxy_mapper.h +21 -21
- data/src/core/lib/handshaker/proxy_mapper_registry.cc +17 -17
- data/src/core/lib/handshaker/proxy_mapper_registry.h +21 -21
- data/src/core/lib/http/format_request.cc +19 -18
- data/src/core/lib/http/format_request.h +20 -20
- data/src/core/lib/http/httpcli.cc +58 -61
- data/src/core/lib/http/httpcli.h +29 -29
- data/src/core/lib/http/httpcli_security_connector.cc +22 -25
- data/src/core/lib/http/httpcli_ssl_credentials.h +3 -3
- data/src/core/lib/http/parser.cc +76 -87
- data/src/core/lib/http/parser.h +35 -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 +122 -101
- data/src/core/lib/iomgr/call_combiner.cc +32 -30
- data/src/core/lib/iomgr/call_combiner.h +26 -27
- data/src/core/lib/iomgr/cfstream_handle.cc +34 -37
- 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 +95 -48
- data/src/core/lib/iomgr/combiner.cc +20 -19
- 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 +17 -17
- data/src/core/lib/iomgr/endpoint.h +49 -49
- data/src/core/lib/iomgr/endpoint_cfstream.cc +58 -53
- data/src/core/lib/iomgr/endpoint_cfstream.h +32 -32
- data/src/core/lib/iomgr/endpoint_pair.h +22 -22
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +22 -21
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +29 -20
- data/src/core/lib/iomgr/error.cc +49 -61
- data/src/core/lib/iomgr/error.h +45 -176
- data/src/core/lib/iomgr/error_cfstream.cc +18 -18
- data/src/core/lib/iomgr/error_cfstream.h +21 -21
- data/src/core/lib/iomgr/ev_apple.cc +33 -33
- data/src/core/lib/iomgr/ev_apple.h +21 -21
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +218 -198
- data/src/core/lib/iomgr/ev_epoll1_linux.h +20 -20
- data/src/core/lib/iomgr/ev_poll_posix.cc +212 -205
- data/src/core/lib/iomgr/ev_poll_posix.h +20 -20
- data/src/core/lib/iomgr/ev_posix.cc +47 -79
- data/src/core/lib/iomgr/ev_posix.h +88 -87
- 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/{event_engine/executor/threaded_executor.h → iomgr/event_engine_shims/closure.h} +11 -16
- data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +471 -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 +34 -34
- data/src/core/lib/iomgr/exec_ctx.h +144 -144
- data/src/core/lib/iomgr/executor.cc +21 -21
- data/src/core/lib/iomgr/executor.h +27 -27
- data/src/core/lib/iomgr/fork_posix.cc +29 -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 +4 -2
- data/src/core/lib/iomgr/internal_errqueue.h +83 -83
- data/src/core/lib/iomgr/iocp_windows.cc +46 -24
- data/src/core/lib/iomgr/iocp_windows.h +32 -21
- data/src/core/lib/iomgr/iomgr.cc +23 -26
- data/src/core/lib/iomgr/iomgr.h +35 -35
- data/src/core/lib/iomgr/iomgr_fwd.h +3 -3
- 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 +20 -20
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +21 -20
- data/src/core/lib/iomgr/iomgr_windows.cc +32 -24
- 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 -114
- 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 +29 -29
- data/src/core/lib/iomgr/pollset.cc +17 -17
- data/src/core/lib/iomgr/pollset.h +54 -54
- data/src/core/lib/iomgr/pollset_set.cc +17 -17
- data/src/core/lib/iomgr/pollset_set.h +25 -25
- data/src/core/lib/iomgr/pollset_set_windows.cc +27 -27
- data/src/core/lib/iomgr/pollset_set_windows.h +20 -20
- data/src/core/lib/iomgr/pollset_windows.cc +33 -32
- data/src/core/lib/iomgr/pollset_windows.h +24 -24
- data/src/core/lib/iomgr/port.h +31 -31
- data/src/core/lib/iomgr/python_util.h +24 -24
- data/src/core/lib/iomgr/resolve_address.cc +26 -20
- data/src/core/lib/iomgr/resolve_address.h +24 -25
- data/src/core/lib/iomgr/resolve_address_impl.h +4 -4
- data/src/core/lib/iomgr/resolve_address_posix.cc +35 -45
- data/src/core/lib/iomgr/resolve_address_posix.h +4 -5
- data/src/core/lib/iomgr/resolve_address_windows.cc +18 -20
- data/src/core/lib/iomgr/resolve_address_windows.h +4 -5
- data/src/core/lib/iomgr/resolved_address.h +3 -3
- data/src/core/lib/iomgr/sockaddr.h +23 -23
- data/src/core/lib/iomgr/sockaddr_posix.h +21 -21
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +18 -17
- data/src/core/lib/iomgr/sockaddr_windows.h +21 -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 +87 -70
- data/src/core/lib/iomgr/socket_utils_linux.cc +18 -17
- data/src/core/lib/iomgr/socket_utils_posix.cc +25 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +84 -81
- data/src/core/lib/iomgr/socket_utils_windows.cc +20 -19
- data/src/core/lib/iomgr/socket_windows.cc +97 -42
- data/src/core/lib/iomgr/socket_windows.h +68 -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 +17 -17
- data/src/core/lib/iomgr/tcp_client.h +28 -28
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +39 -31
- data/src/core/lib/iomgr/tcp_client_posix.cc +86 -73
- data/src/core/lib/iomgr/tcp_client_posix.h +45 -45
- data/src/core/lib/iomgr/tcp_client_windows.cc +51 -42
- data/src/core/lib/iomgr/tcp_posix.cc +270 -301
- data/src/core/lib/iomgr/tcp_posix.h +29 -29
- data/src/core/lib/iomgr/tcp_server.cc +30 -22
- data/src/core/lib/iomgr/tcp_server.h +71 -65
- data/src/core/lib/iomgr/tcp_server_posix.cc +373 -98
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +67 -54
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +90 -55
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +40 -40
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +19 -19
- data/src/core/lib/iomgr/tcp_server_windows.cc +277 -119
- data/src/core/lib/iomgr/tcp_windows.cc +121 -101
- data/src/core/lib/iomgr/tcp_windows.h +34 -34
- data/src/core/lib/iomgr/timer.cc +17 -17
- data/src/core/lib/iomgr/timer.h +68 -68
- data/src/core/lib/iomgr/timer_generic.cc +132 -138
- 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 +30 -29
- data/src/core/lib/iomgr/timer_manager.h +27 -27
- data/src/core/lib/iomgr/unix_sockets_posix.cc +20 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +21 -21
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +19 -17
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +23 -21
- 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 +18 -18
- data/src/core/lib/iomgr/wakeup_fd_posix.h +52 -52
- data/src/core/lib/json/json.h +5 -221
- data/src/core/lib/json/json_args.h +3 -3
- data/src/core/lib/json/json_channel_args.h +42 -0
- data/src/core/lib/json/json_object_loader.cc +39 -25
- data/src/core/lib/json/json_object_loader.h +69 -21
- data/src/core/lib/json/json_reader.cc +98 -70
- data/src/core/lib/json/json_reader.h +34 -0
- data/src/core/lib/json/json_util.cc +14 -19
- data/src/core/lib/json/json_util.h +12 -11
- data/src/core/lib/json/json_writer.cc +80 -81
- data/src/core/{ext/xds/xds_resource_type.cc → lib/json/json_writer.h} +11 -11
- data/src/core/lib/load_balancing/lb_policy.cc +36 -31
- data/src/core/lib/load_balancing/lb_policy.h +32 -10
- data/src/core/lib/load_balancing/lb_policy_factory.h +3 -3
- data/src/core/lib/load_balancing/lb_policy_registry.cc +10 -8
- data/src/core/lib/load_balancing/lb_policy_registry.h +3 -3
- data/src/core/lib/load_balancing/subchannel_interface.h +9 -14
- data/src/core/lib/matchers/matchers.cc +10 -9
- data/src/core/lib/matchers/matchers.h +5 -4
- data/src/core/lib/promise/activity.cc +43 -6
- data/src/core/lib/promise/activity.h +143 -79
- data/src/core/lib/promise/arena_promise.h +84 -54
- data/src/core/lib/promise/cancel_callback.h +77 -0
- data/src/core/lib/promise/context.h +17 -9
- data/src/core/lib/promise/detail/basic_join.h +197 -0
- data/src/core/lib/promise/detail/basic_seq.h +20 -45
- data/src/core/lib/promise/detail/promise_factory.h +67 -14
- data/src/core/lib/promise/detail/promise_like.h +3 -3
- data/src/core/lib/promise/detail/status.h +31 -3
- data/src/core/lib/promise/detail/switch.h +1455 -0
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +23 -15
- data/src/core/lib/promise/for_each.h +176 -0
- data/src/core/lib/promise/if.h +204 -0
- data/src/core/lib/promise/interceptor_list.h +329 -0
- data/src/core/lib/promise/latch.h +197 -23
- data/src/core/lib/promise/loop.h +22 -16
- data/src/core/lib/promise/map.h +12 -6
- data/src/core/lib/promise/party.cc +304 -0
- data/src/core/lib/promise/party.h +508 -0
- data/src/core/lib/promise/pipe.h +762 -0
- data/src/core/lib/promise/poll.h +177 -11
- data/src/core/lib/promise/prioritized_race.h +95 -0
- data/src/core/lib/promise/promise.h +6 -7
- data/src/core/lib/promise/race.h +6 -9
- data/src/core/lib/promise/seq.h +7 -8
- data/src/core/lib/promise/sleep.cc +7 -5
- data/src/core/lib/promise/sleep.h +4 -5
- 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 +14 -16
- data/src/core/lib/resolver/resolver.cc +17 -17
- data/src/core/lib/resolver/resolver.h +3 -3
- data/src/core/lib/resolver/resolver_factory.h +4 -4
- data/src/core/lib/resolver/resolver_registry.cc +15 -0
- data/src/core/lib/resolver/resolver_registry.h +3 -3
- data/src/core/lib/resolver/server_address.cc +19 -25
- data/src/core/lib/resolver/server_address.h +22 -30
- data/src/core/lib/resource_quota/api.cc +0 -1
- data/src/core/lib/resource_quota/api.h +4 -4
- data/src/core/lib/resource_quota/arena.cc +82 -20
- data/src/core/lib/resource_quota/arena.h +287 -22
- data/src/core/lib/resource_quota/memory_quota.cc +141 -44
- data/src/core/lib/resource_quota/memory_quota.h +87 -26
- data/src/core/lib/resource_quota/periodic_update.h +3 -3
- data/src/core/lib/resource_quota/resource_quota.h +4 -4
- data/src/core/lib/resource_quota/thread_quota.h +3 -3
- data/src/core/lib/resource_quota/trace.h +3 -3
- data/src/core/lib/security/authorization/audit_logging.cc +98 -0
- data/src/core/lib/security/authorization/audit_logging.h +73 -0
- data/src/core/lib/security/authorization/authorization_engine.h +3 -3
- data/src/core/lib/security/authorization/authorization_policy_provider.h +4 -4
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +0 -1
- data/src/core/lib/security/authorization/evaluate_args.h +3 -3
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +47 -4
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +21 -4
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +4 -2
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +3 -3
- data/src/core/lib/security/authorization/matchers.cc +25 -22
- data/src/core/lib/security/authorization/matchers.h +3 -3
- data/src/core/lib/security/authorization/rbac_policy.cc +39 -7
- data/src/core/lib/security/authorization/rbac_policy.h +22 -5
- data/src/core/lib/security/authorization/stdout_logger.cc +75 -0
- data/src/core/lib/security/authorization/stdout_logger.h +61 -0
- data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +11 -7
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +8 -18
- data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +17 -11
- data/src/core/lib/security/context/security_context.cc +22 -23
- data/src/core/lib/security/context/security_context.h +43 -33
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +17 -17
- data/src/core/lib/security/credentials/alts/alts_credentials.h +53 -53
- 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 +19 -19
- 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 +18 -18
- data/src/core/lib/security/credentials/call_creds_util.h +3 -3
- data/src/core/lib/security/credentials/channel_creds_registry.h +3 -3
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +3 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +22 -22
- data/src/core/lib/security/credentials/composite/composite_credentials.h +23 -24
- data/src/core/lib/security/credentials/credentials.cc +19 -18
- data/src/core/lib/security/credentials/credentials.h +37 -36
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +113 -108
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +5 -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 +105 -115
- data/src/core/lib/security/credentials/external/external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +39 -41
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +51 -52
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +3 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +20 -19
- data/src/core/lib/security/credentials/fake/fake_credentials.h +37 -38
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +17 -17
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +72 -126
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +21 -22
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +19 -17
- data/src/core/lib/security/credentials/iam/iam_credentials.h +20 -20
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +3 -3
- data/src/core/lib/security/credentials/jwt/json_token.cc +43 -41
- data/src/core/lib/security/credentials/jwt/json_token.h +35 -35
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +27 -22
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +22 -22
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +115 -113
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +46 -46
- data/src/core/lib/security/credentials/local/local_credentials.cc +17 -17
- data/src/core/lib/security/credentials/local/local_credentials.h +23 -23
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +80 -80
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +24 -23
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +24 -23
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +25 -25
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +19 -20
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +20 -20
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +20 -28
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +7 -14
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +44 -44
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +5 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +3 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +18 -18
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +3 -3
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +18 -19
- data/src/core/lib/security/credentials/tls/tls_credentials.h +21 -21
- data/src/core/lib/security/credentials/tls/tls_utils.h +3 -3
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +1 -2
- data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +33 -43
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +43 -44
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +33 -41
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +22 -23
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +5 -10
- 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 +18 -18
- data/src/core/lib/security/security_connector/load_system_roots_supported.cc +24 -31
- data/src/core/lib/security/security_connector/load_system_roots_supported.h +22 -23
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +30 -34
- data/src/core/lib/security/security_connector/local/local_security_connector.h +42 -43
- data/src/core/lib/security/security_connector/security_connector.cc +17 -17
- data/src/core/lib/security/security_connector/security_connector.h +35 -36
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +35 -39
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +40 -41
- data/src/core/lib/security/security_connector/ssl_utils.cc +48 -64
- data/src/core/lib/security/security_connector/ssl_utils.h +35 -35
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +54 -48
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +21 -21
- data/src/core/lib/security/transport/auth_filters.h +45 -23
- data/src/core/lib/security/transport/client_auth_filter.cc +21 -21
- data/src/core/lib/security/transport/secure_endpoint.cc +58 -58
- data/src/core/lib/security/transport/secure_endpoint.h +25 -25
- data/src/core/lib/security/transport/security_handshaker.cc +79 -70
- data/src/core/lib/security/transport/security_handshaker.h +22 -22
- data/src/core/lib/security/transport/server_auth_filter.cc +160 -274
- 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 +27 -27
- data/src/core/lib/security/util/json_util.h +20 -20
- data/src/core/lib/service_config/service_config.h +4 -4
- data/src/core/lib/service_config/service_config_call_data.h +54 -19
- data/src/core/lib/service_config/service_config_impl.cc +118 -158
- data/src/core/lib/service_config/service_config_impl.h +16 -19
- data/src/core/lib/service_config/service_config_parser.cc +14 -31
- data/src/core/lib/service_config/service_config_parser.h +16 -12
- data/src/core/lib/slice/b64.cc +26 -26
- data/src/core/lib/slice/b64.h +32 -32
- data/src/core/lib/slice/percent_encoding.cc +17 -17
- data/src/core/lib/slice/percent_encoding.h +28 -28
- data/src/core/lib/slice/slice.cc +48 -42
- data/src/core/lib/slice/slice.h +59 -18
- data/src/core/lib/slice/slice_buffer.cc +63 -59
- data/src/core/lib/slice/slice_buffer.h +35 -4
- data/src/core/lib/slice/slice_internal.h +34 -42
- data/src/core/lib/slice/slice_refcount.cc +3 -18
- data/src/core/lib/slice/slice_refcount.h +53 -18
- data/src/core/lib/slice/slice_string_helpers.cc +17 -17
- data/src/core/lib/slice/slice_string_helpers.h +21 -21
- 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 +2 -0
- data/src/core/lib/surface/builtins.h +3 -3
- data/src/core/lib/surface/byte_buffer.cc +22 -23
- data/src/core/lib/surface/byte_buffer_reader.cc +23 -23
- data/src/core/lib/surface/call.cc +2297 -535
- data/src/core/lib/surface/call.h +123 -42
- data/src/core/lib/surface/call_details.cc +20 -21
- data/src/core/lib/surface/call_log_batch.cc +19 -18
- data/src/core/lib/surface/call_test_only.h +33 -33
- data/src/core/lib/surface/call_trace.cc +123 -0
- data/src/core/{ext/filters/http/message_compress/message_decompress_filter.h → lib/surface/call_trace.h} +10 -12
- data/src/core/lib/surface/channel.cc +62 -67
- data/src/core/lib/surface/channel.h +43 -35
- data/src/core/lib/surface/channel_init.cc +17 -17
- data/src/core/lib/surface/channel_init.h +20 -20
- data/src/core/lib/surface/channel_ping.cc +19 -19
- data/src/core/lib/surface/channel_stack_type.cc +21 -17
- data/src/core/lib/surface/channel_stack_type.h +22 -20
- data/src/core/lib/surface/completion_queue.cc +182 -194
- data/src/core/lib/surface/completion_queue.h +36 -36
- data/src/core/lib/surface/completion_queue_factory.cc +28 -28
- data/src/core/lib/surface/completion_queue_factory.h +22 -22
- data/src/core/lib/surface/event_string.cc +18 -17
- data/src/core/lib/surface/event_string.h +22 -22
- data/src/core/lib/surface/init.cc +30 -59
- data/src/core/lib/surface/init.h +20 -20
- data/src/core/lib/surface/init_internally.cc +1 -0
- data/src/core/lib/surface/init_internally.h +12 -3
- data/src/core/lib/surface/lame_client.cc +31 -26
- data/src/core/lib/surface/lame_client.h +21 -21
- data/src/core/lib/surface/metadata_array.cc +17 -18
- data/src/core/lib/surface/server.cc +363 -111
- data/src/core/lib/surface/server.h +10 -9
- data/src/core/lib/surface/validate_metadata.cc +60 -60
- data/src/core/lib/surface/validate_metadata.h +30 -21
- data/src/core/lib/surface/version.cc +21 -21
- data/src/core/lib/transport/batch_builder.cc +182 -0
- data/src/core/lib/transport/batch_builder.h +480 -0
- data/src/core/lib/transport/bdp_estimator.cc +24 -24
- data/src/core/lib/transport/bdp_estimator.h +31 -28
- data/src/core/lib/transport/connectivity_state.cc +19 -19
- data/src/core/lib/transport/connectivity_state.h +22 -22
- data/src/core/lib/transport/custom_metadata.h +30 -0
- data/src/core/lib/transport/error_utils.cc +51 -45
- data/src/core/lib/transport/error_utils.h +24 -24
- data/src/core/lib/transport/handshaker.cc +60 -46
- data/src/core/lib/transport/handshaker.h +47 -42
- data/src/core/lib/transport/handshaker_factory.h +47 -21
- data/src/core/lib/transport/handshaker_registry.cc +25 -19
- data/src/core/lib/transport/handshaker_registry.h +23 -24
- data/src/core/lib/transport/http2_errors.h +22 -22
- data/src/core/lib/transport/http_connect_handshaker.cc +40 -41
- data/src/core/lib/transport/http_connect_handshaker.h +21 -21
- data/src/core/lib/transport/metadata_batch.cc +24 -7
- data/src/core/lib/transport/metadata_batch.h +193 -53
- data/src/core/lib/transport/metadata_compression_traits.h +67 -0
- data/src/core/lib/transport/parsed_metadata.cc +2 -6
- data/src/core/lib/transport/parsed_metadata.h +23 -12
- 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/simple_slice_based_metadata.h +48 -0
- data/src/core/lib/transport/status_conversion.cc +22 -22
- data/src/core/lib/transport/status_conversion.h +22 -22
- data/src/core/lib/transport/tcp_connect_handshaker.cc +15 -21
- data/src/core/lib/transport/tcp_connect_handshaker.h +3 -3
- data/src/core/lib/transport/timeout_encoding.cc +28 -23
- data/src/core/lib/transport/timeout_encoding.h +20 -20
- data/src/core/lib/transport/transport.cc +113 -43
- data/src/core/lib/transport/transport.h +275 -210
- data/src/core/lib/transport/transport_fwd.h +3 -3
- data/src/core/lib/transport/transport_impl.h +53 -46
- data/src/core/lib/transport/transport_op_string.cc +75 -63
- data/src/core/lib/uri/uri_parser.cc +1 -1
- data/src/core/lib/uri/uri_parser.h +3 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +34 -35
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +9 -14
- 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 +73 -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 +98 -80
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +107 -102
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +18 -17
- data/src/core/tsi/alts/handshaker/alts_shared_resource.h +43 -44
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +38 -37
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +60 -60
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +23 -23
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +21 -20
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +38 -38
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +19 -19
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +105 -104
- 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 +58 -57
- 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 +80 -79
- data/src/core/tsi/fake_transport_security.h +33 -33
- data/src/core/tsi/local_transport_security.cc +34 -33
- data/src/core/tsi/local_transport_security.h +33 -33
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +9 -4
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +3 -3
- data/src/core/tsi/ssl/session_cache/ssl_session.h +21 -21
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +19 -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 +22 -22
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +25 -20
- data/src/core/tsi/ssl_transport_security.cc +256 -349
- data/src/core/tsi/ssl_transport_security.h +206 -203
- 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 +26 -26
- data/src/core/tsi/transport_security.h +47 -47
- data/src/core/tsi/transport_security_grpc.cc +20 -20
- data/src/core/tsi/transport_security_grpc.h +41 -41
- data/src/core/tsi/transport_security_interface.h +333 -333
- 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.clang +0 -1
- data/src/ruby/ext/grpc/ext-export.gcc +1 -2
- data/src/ruby/ext/grpc/extconf.rb +55 -11
- data/src/ruby/ext/grpc/rb_call.c +1 -0
- data/src/ruby/ext/grpc/rb_channel.c +1 -0
- 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 +38 -38
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +59 -59
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +0 -6
- data/src/ruby/spec/channel_spec.rb +0 -43
- data/src/ruby/spec/client_server_spec.rb +20 -8
- data/src/ruby/spec/generic/active_call_spec.rb +12 -3
- data/third_party/abseil-cpp/absl/algorithm/container.h +56 -57
- data/third_party/abseil-cpp/absl/base/attributes.h +39 -19
- data/third_party/abseil-cpp/absl/base/config.h +45 -4
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +3 -18
- data/third_party/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +2 -1
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +3 -3
- 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/raw_logging.cc +10 -6
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +23 -24
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +2 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +4 -1
- data/third_party/abseil-cpp/absl/base/internal/strerror.cc +4 -4
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +14 -10
- data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +9 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +4 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -40
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
- data/third_party/abseil-cpp/absl/base/macros.h +4 -21
- data/third_party/abseil-cpp/absl/base/optimization.h +58 -6
- 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/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 +7 -5
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -7
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +66 -18
- data/third_party/abseil-cpp/absl/container/internal/common.h +3 -3
- 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 +13 -1
- 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 +50 -5
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +14 -46
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +110 -32
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +155 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +661 -341
- 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 +1 -1
- 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 +12 -13
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -9
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +1 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +40 -85
- 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 +33 -8
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +3 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +118 -94
- data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +7 -6
- data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
- data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
- data/third_party/abseil-cpp/absl/flags/config.h +68 -0
- data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
- data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
- data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc +26 -0
- data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
- data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
- data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
- data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
- data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
- data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
- data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
- data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
- data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
- data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
- data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
- data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
- data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
- data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
- data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
- data/third_party/abseil-cpp/absl/functional/any_invocable.h +5 -2
- data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +47 -26
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +10 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +18 -4
- 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 +2 -3
- data/third_party/abseil-cpp/absl/numeric/int128.cc +10 -8
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +14 -6
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +2 -1
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +1 -1
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +2 -23
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +9 -9
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +2 -2
- data/third_party/abseil-cpp/absl/random/random.h +6 -6
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +1 -0
- data/third_party/abseil-cpp/absl/status/status.cc +19 -12
- data/third_party/abseil-cpp/absl/status/status.h +2 -2
- data/third_party/abseil-cpp/absl/strings/ascii.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/charconv.cc +534 -96
- data/third_party/abseil-cpp/absl/strings/cord.cc +92 -40
- data/third_party/abseil-cpp/absl/strings/cord.h +71 -80
- data/third_party/abseil-cpp/absl/strings/cord_buffer.h +8 -5
- 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_internal.h +330 -70
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +8 -4
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +26 -14
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +9 -7
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +5 -4
- 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 +8 -5
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +7 -7
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +4 -4
- 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 +12 -10
- 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 +126 -29
- 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 +4 -3
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +49 -287
- 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 +2 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +4 -2
- 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/parser.cc +10 -209
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +10 -101
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -1
- 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/numbers.cc +34 -31
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +9 -6
- data/third_party/abseil-cpp/absl/strings/str_cat.h +50 -3
- data/third_party/abseil-cpp/absl/strings/str_format.h +71 -9
- data/third_party/abseil-cpp/absl/strings/string_view.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/string_view.h +3 -10
- data/third_party/abseil-cpp/absl/strings/substitute.cc +8 -6
- data/third_party/abseil-cpp/absl/strings/substitute.h +46 -20
- 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/mutex.cc +104 -55
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +85 -46
- data/third_party/abseil-cpp/absl/synchronization/notification.cc +0 -1
- data/third_party/abseil-cpp/absl/synchronization/notification.h +0 -1
- 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 +7 -7
- data/third_party/abseil-cpp/absl/time/format.cc +2 -1
- 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 +253 -158
- 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/span.h +29 -7
- data/third_party/boringssl-with-bazel/err_data.c +728 -712
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +177 -196
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +135 -90
- data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +797 -793
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +529 -526
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +17 -11
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +37 -51
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +13 -9
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +22 -19
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +40 -27
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
- data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +34 -37
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +22 -11
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +189 -13
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
- data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_openbsd.c +62 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-ppc64le.c → cpu_arm_openbsd.c} +10 -17
- data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +22 -31
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +795 -795
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
- data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +43 -16
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
- data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +229 -102
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +31 -7
- data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
- data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
- data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
- data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +36 -27
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
- data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +24 -6
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +49 -49
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +92 -18
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +12 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +108 -86
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +55 -25
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +55 -71
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +72 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +62 -51
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +12 -17
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +25 -26
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +13 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +9 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +44 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
- data/third_party/boringssl-with-bazel/src/crypto/{hkdf → fipsmodule/hkdf}/hkdf.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -23
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +3 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +170 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +12 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +69 -61
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/polyval.c +27 -28
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +22 -68
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +43 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +42 -314
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +244 -139
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +144 -205
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +593 -421
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +52 -6
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +192 -18
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +391 -18
- data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +91 -0
- data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +204 -0
- data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +833 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +633 -613
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
- data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/{refcount_lock.c → refcount_no_threads.c} +6 -17
- data/third_party/boringssl-with-bazel/src/crypto/refcount_win.c +89 -0
- data/third_party/boringssl-with-bazel/src/crypto/{asn1/a_print.c → rsa_extra/internal.h} +15 -21
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_crypt.c +568 -0
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +128 -34
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +418 -133
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +116 -284
- data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +701 -87
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +63 -55
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +285 -331
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
- data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +68 -50
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +132 -151
- data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +790 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +220 -254
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +136 -270
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +528 -616
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +164 -181
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +186 -203
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1864 -2050
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +380 -480
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +266 -265
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +329 -416
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +79 -171
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +294 -344
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +342 -365
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +120 -125
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +228 -265
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +130 -135
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +652 -691
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +90 -75
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1063 -1145
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +13 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +217 -191
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +50 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +29 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +25 -33
- data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +69 -16
- data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +128 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +7 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +8 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -18
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +98 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +18 -21
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +285 -92
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +381 -287
- data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +9 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +22 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +57 -23
- data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2075 -1407
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +242 -214
- data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
- data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
- data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
- data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +45 -26
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +64 -35
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +53 -34
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +200 -121
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +47 -12
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
- data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +47 -69
- data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +217 -226
- data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +78 -101
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +106 -142
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +244 -35
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +167 -64
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +41 -32
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +27 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +7 -44
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +7 -23
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +25 -34
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
- data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_msvc.h +1281 -0
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
- data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64_msvc.h +2002 -0
- data/third_party/cares/cares/include/ares.h +23 -1
- data/third_party/cares/cares/{src/lib → include}/ares_nameser.h +9 -7
- data/third_party/cares/cares/include/ares_rules.h +2 -2
- data/third_party/cares/cares/include/ares_version.h +3 -3
- data/third_party/cares/cares/src/lib/ares__addrinfo2hostent.c +266 -0
- data/third_party/cares/cares/src/lib/ares__addrinfo_localhost.c +240 -0
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +49 -80
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +37 -43
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +12 -4
- data/third_party/cares/cares/src/lib/ares_data.c +16 -0
- data/third_party/cares/cares/src/lib/ares_data.h +7 -0
- data/third_party/cares/cares/src/lib/ares_destroy.c +8 -0
- data/third_party/cares/cares/src/lib/ares_expand_name.c +17 -6
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +1 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +156 -78
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +130 -326
- data/third_party/cares/cares/src/lib/ares_init.c +97 -485
- data/third_party/cares/cares/src/lib/ares_library_init.c +2 -89
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +23 -142
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +22 -142
- data/third_party/cares/cares/src/lib/ares_parse_uri_reply.c +184 -0
- data/third_party/cares/cares/src/lib/ares_private.h +30 -16
- data/third_party/cares/cares/src/lib/ares_process.c +55 -16
- data/third_party/cares/cares/src/lib/ares_query.c +1 -35
- data/third_party/cares/cares/src/lib/ares_rand.c +279 -0
- data/third_party/cares/cares/src/lib/ares_send.c +5 -7
- data/third_party/cares/cares/src/lib/ares_strdup.c +12 -19
- data/third_party/cares/cares/src/lib/ares_strsplit.c +44 -128
- data/third_party/cares/cares/src/lib/ares_strsplit.h +9 -10
- data/third_party/cares/cares/src/lib/inet_net_pton.c +78 -116
- data/third_party/cares/cares/src/tools/ares_getopt.h +53 -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/upb/{table_internal.h → alloc.h} +6 -6
- data/third_party/upb/upb/arena.h +4 -193
- data/third_party/upb/upb/array.h +4 -51
- data/third_party/upb/upb/base/descriptor_constants.h +104 -0
- data/third_party/upb/upb/base/log2.h +57 -0
- data/third_party/upb/upb/{status.c → base/status.c} +2 -7
- data/third_party/upb/upb/base/status.h +66 -0
- data/third_party/upb/upb/base/string_view.h +75 -0
- data/third_party/upb/upb/{array.c → collections/array.c} +67 -36
- data/third_party/upb/upb/collections/array.h +85 -0
- data/third_party/upb/upb/collections/array_internal.h +135 -0
- data/third_party/upb/upb/{map.c → collections/map.c} +53 -26
- data/third_party/upb/upb/collections/map.h +135 -0
- data/third_party/upb/upb/collections/map_gencode_util.h +78 -0
- data/third_party/upb/upb/collections/map_internal.h +170 -0
- data/third_party/upb/upb/collections/map_sorter.c +166 -0
- data/third_party/upb/upb/collections/map_sorter_internal.h +109 -0
- data/third_party/upb/upb/{message_value.h → collections/message_value.h} +12 -13
- data/third_party/upb/upb/decode.h +3 -62
- data/third_party/upb/upb/def.h +4 -384
- data/third_party/upb/upb/def.hpp +3 -411
- data/third_party/upb/upb/encode.h +3 -48
- data/third_party/upb/upb/extension_registry.h +3 -52
- data/third_party/upb/upb/{table.c → hash/common.c} +52 -110
- data/third_party/upb/upb/hash/common.h +199 -0
- data/third_party/upb/upb/hash/int_table.h +102 -0
- data/third_party/upb/upb/hash/str_table.h +161 -0
- data/third_party/upb/upb/{json_decode.c → json/decode.c} +63 -98
- data/third_party/upb/upb/json/decode.h +52 -0
- data/third_party/upb/upb/{json_encode.c → json/encode.c} +69 -45
- data/third_party/upb/upb/json/encode.h +70 -0
- data/third_party/upb/upb/json_decode.h +4 -15
- data/third_party/upb/upb/json_encode.h +4 -33
- data/third_party/upb/upb/lex/atoi.c +68 -0
- data/third_party/upb/upb/lex/atoi.h +53 -0
- data/third_party/upb/upb/{upb.c → lex/round_trip.c} +2 -11
- data/third_party/upb/upb/{internal/upb.h → lex/round_trip.h} +17 -30
- data/third_party/upb/upb/lex/strtod.c +97 -0
- data/third_party/upb/upb/lex/strtod.h +46 -0
- data/third_party/upb/upb/lex/unicode.c +57 -0
- data/third_party/upb/upb/lex/unicode.h +77 -0
- data/third_party/upb/upb/map.h +4 -85
- data/third_party/upb/upb/mem/alloc.c +47 -0
- data/third_party/upb/upb/mem/alloc.h +98 -0
- data/third_party/upb/upb/mem/arena.c +367 -0
- data/third_party/upb/upb/mem/arena.h +160 -0
- data/third_party/upb/upb/mem/arena_internal.h +114 -0
- data/third_party/upb/upb/message/accessors.c +68 -0
- data/third_party/upb/upb/message/accessors.h +379 -0
- data/third_party/upb/upb/message/accessors_internal.h +325 -0
- data/third_party/upb/upb/message/extension_internal.h +83 -0
- data/third_party/upb/upb/message/internal.h +135 -0
- data/third_party/upb/upb/message/message.c +180 -0
- data/third_party/upb/upb/message/message.h +69 -0
- data/third_party/upb/upb/mini_table/common.c +128 -0
- data/third_party/upb/upb/mini_table/common.h +170 -0
- data/third_party/upb/upb/mini_table/common_internal.h +111 -0
- data/third_party/upb/upb/{mini_table.c → mini_table/decode.c} +513 -533
- data/third_party/upb/upb/mini_table/decode.h +179 -0
- data/third_party/upb/upb/mini_table/encode.c +300 -0
- data/third_party/upb/upb/mini_table/encode_internal.h +111 -0
- data/third_party/upb/upb/{mini_table.hpp → mini_table/encode_internal.hpp} +32 -8
- data/third_party/upb/upb/mini_table/enum_internal.h +88 -0
- data/third_party/upb/upb/mini_table/extension_internal.h +47 -0
- data/third_party/upb/upb/{extension_registry.c → mini_table/extension_registry.c} +27 -24
- data/third_party/upb/upb/mini_table/extension_registry.h +104 -0
- data/third_party/upb/upb/mini_table/field_internal.h +192 -0
- data/third_party/upb/upb/mini_table/file_internal.h +47 -0
- data/third_party/upb/upb/mini_table/message_internal.h +136 -0
- data/third_party/upb/upb/mini_table/sub_internal.h +38 -0
- data/third_party/upb/upb/mini_table/types.h +40 -0
- data/third_party/upb/upb/mini_table.h +4 -157
- data/third_party/upb/upb/msg.h +3 -38
- data/third_party/upb/upb/port/atomic.h +101 -0
- data/third_party/upb/upb/{port_def.inc → port/def.inc} +94 -27
- data/third_party/upb/upb/{port_undef.inc → port/undef.inc} +13 -3
- data/third_party/upb/upb/{internal → port}/vsnprintf_compat.h +5 -7
- data/third_party/upb/upb/reflection/common.h +67 -0
- data/third_party/upb/upb/reflection/def.h +42 -0
- data/third_party/upb/upb/reflection/def.hpp +610 -0
- data/third_party/upb/upb/reflection/def_builder.c +357 -0
- data/third_party/upb/upb/reflection/def_builder_internal.h +157 -0
- data/third_party/upb/upb/reflection/def_pool.c +462 -0
- data/third_party/upb/upb/reflection/def_pool.h +108 -0
- data/third_party/upb/upb/reflection/def_pool_internal.h +77 -0
- data/third_party/upb/upb/reflection/def_type.c +50 -0
- data/third_party/upb/upb/reflection/def_type.h +81 -0
- data/third_party/upb/upb/reflection/desc_state.c +53 -0
- data/third_party/upb/upb/reflection/desc_state_internal.h +64 -0
- data/third_party/upb/upb/reflection/enum_def.c +310 -0
- data/third_party/upb/upb/reflection/enum_def.h +80 -0
- data/third_party/upb/upb/reflection/enum_def_internal.h +56 -0
- data/third_party/upb/upb/reflection/enum_reserved_range.c +84 -0
- data/third_party/upb/upb/reflection/enum_reserved_range.h +51 -0
- data/third_party/upb/upb/reflection/enum_reserved_range_internal.h +55 -0
- data/third_party/upb/upb/reflection/enum_value_def.c +144 -0
- data/third_party/upb/upb/reflection/enum_value_def.h +57 -0
- data/third_party/upb/upb/reflection/enum_value_def_internal.h +57 -0
- data/third_party/upb/upb/reflection/extension_range.c +93 -0
- data/third_party/upb/upb/reflection/extension_range.h +55 -0
- data/third_party/upb/upb/reflection/extension_range_internal.h +54 -0
- data/third_party/upb/upb/reflection/field_def.c +930 -0
- data/third_party/upb/upb/reflection/field_def.h +91 -0
- data/third_party/upb/upb/reflection/field_def_internal.h +76 -0
- data/third_party/upb/upb/reflection/file_def.c +370 -0
- data/third_party/upb/upb/reflection/file_def.h +77 -0
- data/third_party/upb/upb/reflection/file_def_internal.h +57 -0
- data/third_party/upb/upb/reflection/message.c +233 -0
- data/third_party/upb/upb/reflection/message.h +102 -0
- data/third_party/upb/upb/reflection/message.hpp +37 -0
- data/third_party/upb/upb/reflection/message_def.c +718 -0
- data/third_party/upb/upb/reflection/message_def.h +174 -0
- data/third_party/upb/upb/reflection/message_def_internal.h +63 -0
- data/third_party/upb/upb/reflection/message_reserved_range.c +81 -0
- data/third_party/upb/upb/reflection/message_reserved_range.h +51 -0
- data/third_party/upb/upb/reflection/message_reserved_range_internal.h +55 -0
- data/third_party/upb/upb/reflection/method_def.c +124 -0
- data/third_party/upb/upb/reflection/method_def.h +59 -0
- data/third_party/upb/upb/reflection/method_def_internal.h +53 -0
- data/third_party/upb/upb/reflection/oneof_def.c +226 -0
- data/third_party/upb/upb/reflection/oneof_def.h +66 -0
- data/third_party/upb/upb/reflection/oneof_def_internal.h +57 -0
- data/third_party/upb/upb/reflection/service_def.c +128 -0
- data/third_party/upb/upb/reflection/service_def.h +60 -0
- data/third_party/upb/upb/reflection/service_def_internal.h +53 -0
- data/third_party/upb/upb/reflection.h +4 -78
- data/third_party/upb/upb/reflection.hpp +3 -7
- data/third_party/upb/upb/status.h +4 -34
- data/third_party/upb/upb/{collections.h → string_view.h} +7 -7
- data/third_party/upb/upb/{text_encode.c → text/encode.c} +74 -70
- data/third_party/upb/upb/text/encode.h +69 -0
- data/third_party/upb/upb/text_encode.h +4 -32
- data/third_party/upb/upb/upb.h +6 -151
- data/third_party/upb/upb/upb.hpp +10 -18
- data/third_party/upb/upb/wire/common.h +44 -0
- data/third_party/upb/upb/wire/common_internal.h +50 -0
- data/third_party/upb/upb/wire/decode.c +1343 -0
- data/third_party/upb/upb/wire/decode.h +108 -0
- data/third_party/upb/upb/{decode_fast.c → wire/decode_fast.c} +184 -225
- data/third_party/upb/upb/{decode_fast.h → wire/decode_fast.h} +21 -7
- data/third_party/upb/upb/{internal/decode.h → wire/decode_internal.h} +44 -92
- data/third_party/upb/upb/{encode.c → wire/encode.c} +114 -95
- data/third_party/upb/upb/wire/encode.h +92 -0
- data/third_party/upb/upb/wire/eps_copy_input_stream.c +39 -0
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +425 -0
- data/third_party/upb/upb/wire/reader.c +67 -0
- data/third_party/upb/upb/wire/reader.h +227 -0
- data/third_party/upb/upb/wire/swap_internal.h +63 -0
- data/third_party/upb/upb/wire/types.h +41 -0
- data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-neon.c +1 -1
- data/third_party/{upb/third_party/utf8_range → utf8_range}/utf8_range.h +12 -0
- data/third_party/zlib/compress.c +3 -3
- data/third_party/zlib/crc32.c +21 -12
- data/third_party/zlib/deflate.c +112 -106
- data/third_party/zlib/deflate.h +2 -2
- data/third_party/zlib/gzlib.c +1 -1
- data/third_party/zlib/gzread.c +3 -5
- data/third_party/zlib/gzwrite.c +1 -1
- data/third_party/zlib/infback.c +10 -7
- data/third_party/zlib/inflate.c +5 -2
- data/third_party/zlib/inftrees.c +2 -2
- data/third_party/zlib/inftrees.h +1 -1
- data/third_party/zlib/trees.c +61 -62
- data/third_party/zlib/uncompr.c +2 -2
- data/third_party/zlib/zconf.h +16 -3
- data/third_party/zlib/zlib.h +10 -10
- data/third_party/zlib/zutil.c +9 -7
- data/third_party/zlib/zutil.h +1 -0
- metadata +509 -152
- data/include/grpc/impl/codegen/gpr_slice.h +0 -71
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +0 -176
- data/src/core/ext/filters/client_channel/health/health_check_client.h +0 -43
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +0 -30
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -188
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -187
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -332
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -52
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -322
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +0 -62
- data/src/core/ext/transport/chttp2/transport/context_list.cc +0 -71
- data/src/core/ext/transport/chttp2/transport/context_list.h +0 -54
- data/src/core/lib/event_engine/socket_notifier.h +0 -55
- data/src/core/lib/event_engine/thread_pool.cc +0 -195
- data/src/core/lib/event_engine/thread_pool.h +0 -114
- data/src/core/lib/gpr/cpu_iphone.cc +0 -44
- data/src/core/lib/gpr/cpu_windows.cc +0 -33
- 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.cc +0 -69
- data/src/core/lib/gpr/tls.h +0 -156
- data/src/core/lib/gprpp/env_posix.cc +0 -47
- data/src/core/lib/gprpp/global_config.h +0 -93
- data/src/core/lib/gprpp/global_config_custom.h +0 -29
- data/src/core/lib/gprpp/global_config_env.cc +0 -139
- data/src/core/lib/gprpp/global_config_env.h +0 -133
- data/src/core/lib/gprpp/global_config_generic.h +0 -40
- data/src/core/lib/promise/call_push_pull.h +0 -148
- data/src/core/lib/promise/intra_activity_waiter.h +0 -49
- data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
- data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -30
- data/src/core/lib/slice/slice_api.cc +0 -39
- data/src/core/lib/slice/slice_buffer_api.cc +0 -35
- data/src/core/lib/slice/slice_refcount_base.h +0 -60
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
- data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
- data/third_party/cares/cares/src/lib/ares_library_init.h +0 -43
- data/third_party/upb/upb/arena.c +0 -277
- data/third_party/upb/upb/decode.c +0 -1221
- data/third_party/upb/upb/def.c +0 -3269
- data/third_party/upb/upb/internal/table.h +0 -385
- data/third_party/upb/upb/msg.c +0 -368
- data/third_party/upb/upb/msg_internal.h +0 -837
- data/third_party/upb/upb/reflection.c +0 -323
- /data/src/ruby/ext/grpc/{ext-export-truffleruby.clang → ext-export-truffleruby-with-ruby-abi-version.clang} +0 -0
- /data/src/ruby/ext/grpc/{ext-export-truffleruby.gcc → ext-export-truffleruby-with-ruby-abi-version.gcc} +0 -0
- /data/third_party/{upb/third_party/utf8_range → utf8_range}/naive.c +0 -0
- /data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-sse.c +0 -0
@@ -21,14 +21,15 @@
|
|
21
21
|
#include <inttypes.h>
|
22
22
|
#include <limits.h>
|
23
23
|
#include <stdio.h>
|
24
|
-
#include <stdlib.h>
|
25
24
|
#include <string.h>
|
26
25
|
|
27
26
|
#include <algorithm>
|
27
|
+
#include <initializer_list>
|
28
28
|
#include <memory>
|
29
29
|
#include <new>
|
30
30
|
#include <string>
|
31
31
|
#include <utility>
|
32
|
+
#include <vector>
|
32
33
|
|
33
34
|
#include "absl/base/attributes.h"
|
34
35
|
#include "absl/status/status.h"
|
@@ -37,17 +38,17 @@
|
|
37
38
|
#include "absl/strings/str_format.h"
|
38
39
|
#include "absl/strings/string_view.h"
|
39
40
|
#include "absl/types/optional.h"
|
40
|
-
#include "absl/types/variant.h"
|
41
41
|
|
42
|
-
#include <grpc/
|
43
|
-
#include <grpc/
|
42
|
+
#include <grpc/event_engine/event_engine.h>
|
43
|
+
#include <grpc/grpc.h>
|
44
|
+
#include <grpc/impl/connectivity_state.h>
|
44
45
|
#include <grpc/slice_buffer.h>
|
45
46
|
#include <grpc/status.h>
|
46
47
|
#include <grpc/support/alloc.h>
|
47
|
-
#include <grpc/support/atm.h>
|
48
48
|
#include <grpc/support/log.h>
|
49
|
+
#include <grpc/support/time.h>
|
49
50
|
|
50
|
-
#include "src/core/ext/transport/chttp2/transport/
|
51
|
+
#include "src/core/ext/transport/chttp2/transport/context_list_entry.h"
|
51
52
|
#include "src/core/ext/transport/chttp2/transport/flow_control.h"
|
52
53
|
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
53
54
|
#include "src/core/ext/transport/chttp2/transport/frame_data.h"
|
@@ -55,14 +56,19 @@
|
|
55
56
|
#include "src/core/ext/transport/chttp2/transport/frame_rst_stream.h"
|
56
57
|
#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
|
57
58
|
#include "src/core/ext/transport/chttp2/transport/http2_settings.h"
|
59
|
+
#include "src/core/ext/transport/chttp2/transport/http_trace.h"
|
58
60
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
59
61
|
#include "src/core/ext/transport/chttp2/transport/stream_map.h"
|
60
62
|
#include "src/core/ext/transport/chttp2/transport/varint.h"
|
63
|
+
#include "src/core/lib/channel/call_tracer.h"
|
61
64
|
#include "src/core/lib/channel/channel_args.h"
|
65
|
+
#include "src/core/lib/channel/context.h"
|
62
66
|
#include "src/core/lib/debug/stats.h"
|
67
|
+
#include "src/core/lib/debug/stats_data.h"
|
63
68
|
#include "src/core/lib/experiments/experiments.h"
|
64
69
|
#include "src/core/lib/gpr/useful.h"
|
65
70
|
#include "src/core/lib/gprpp/bitset.h"
|
71
|
+
#include "src/core/lib/gprpp/crash.h"
|
66
72
|
#include "src/core/lib/gprpp/debug_location.h"
|
67
73
|
#include "src/core/lib/gprpp/ref_counted.h"
|
68
74
|
#include "src/core/lib/gprpp/status_helper.h"
|
@@ -72,7 +78,7 @@
|
|
72
78
|
#include "src/core/lib/iomgr/error.h"
|
73
79
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
74
80
|
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
75
|
-
#include "src/core/lib/iomgr/
|
81
|
+
#include "src/core/lib/iomgr/port.h"
|
76
82
|
#include "src/core/lib/promise/poll.h"
|
77
83
|
#include "src/core/lib/resource_quota/arena.h"
|
78
84
|
#include "src/core/lib/resource_quota/memory_quota.h"
|
@@ -81,7 +87,6 @@
|
|
81
87
|
#include "src/core/lib/slice/slice.h"
|
82
88
|
#include "src/core/lib/slice/slice_buffer.h"
|
83
89
|
#include "src/core/lib/slice/slice_internal.h"
|
84
|
-
#include "src/core/lib/slice/slice_refcount.h"
|
85
90
|
#include "src/core/lib/transport/bdp_estimator.h"
|
86
91
|
#include "src/core/lib/transport/connectivity_state.h"
|
87
92
|
#include "src/core/lib/transport/error_utils.h"
|
@@ -91,19 +96,24 @@
|
|
91
96
|
#include "src/core/lib/transport/transport.h"
|
92
97
|
#include "src/core/lib/transport/transport_impl.h"
|
93
98
|
|
99
|
+
#ifdef GRPC_POSIX_SOCKET_TCP
|
100
|
+
#include "src/core/lib/iomgr/ev_posix.h"
|
101
|
+
#endif
|
102
|
+
|
94
103
|
#define DEFAULT_CONNECTION_WINDOW_TARGET (1024 * 1024)
|
95
104
|
#define MAX_WINDOW 0x7fffffffu
|
96
105
|
#define MAX_WRITE_BUFFER_SIZE (64 * 1024 * 1024)
|
97
|
-
#define DEFAULT_MAX_HEADER_LIST_SIZE (
|
106
|
+
#define DEFAULT_MAX_HEADER_LIST_SIZE (16 * 1024)
|
107
|
+
#define DEFAULT_MAX_HEADER_LIST_SIZE_SOFT_LIMIT (8 * 1024)
|
98
108
|
|
99
109
|
#define DEFAULT_CLIENT_KEEPALIVE_TIME_MS INT_MAX
|
100
|
-
#define DEFAULT_CLIENT_KEEPALIVE_TIMEOUT_MS 20000
|
101
|
-
#define DEFAULT_SERVER_KEEPALIVE_TIME_MS 7200000
|
102
|
-
#define DEFAULT_SERVER_KEEPALIVE_TIMEOUT_MS 20000
|
110
|
+
#define DEFAULT_CLIENT_KEEPALIVE_TIMEOUT_MS 20000 // 20 seconds
|
111
|
+
#define DEFAULT_SERVER_KEEPALIVE_TIME_MS 7200000 // 2 hours
|
112
|
+
#define DEFAULT_SERVER_KEEPALIVE_TIMEOUT_MS 20000 // 20 seconds
|
103
113
|
#define DEFAULT_KEEPALIVE_PERMIT_WITHOUT_CALLS false
|
104
114
|
#define KEEPALIVE_TIME_BACKOFF_MULTIPLIER 2
|
105
115
|
|
106
|
-
#define DEFAULT_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS 300000
|
116
|
+
#define DEFAULT_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS 300000 // 5 minutes
|
107
117
|
#define DEFAULT_MAX_PINGS_BETWEEN_DATA 2
|
108
118
|
#define DEFAULT_MAX_PING_STRIKES 2
|
109
119
|
|
@@ -128,7 +138,6 @@ static int g_default_max_pings_without_data = DEFAULT_MAX_PINGS_BETWEEN_DATA;
|
|
128
138
|
static int g_default_max_ping_strikes = DEFAULT_MAX_PING_STRIKES;
|
129
139
|
|
130
140
|
#define MAX_CLIENT_STREAM_ID 0x7fffffffu
|
131
|
-
grpc_core::TraceFlag grpc_http_trace(false, "http");
|
132
141
|
grpc_core::TraceFlag grpc_keepalive_trace(false, "http_keepalive");
|
133
142
|
grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_refcount(false,
|
134
143
|
"chttp2_refcount");
|
@@ -173,24 +182,43 @@ static void start_bdp_ping(void* tp, grpc_error_handle error);
|
|
173
182
|
static void finish_bdp_ping(void* tp, grpc_error_handle error);
|
174
183
|
static void start_bdp_ping_locked(void* tp, grpc_error_handle error);
|
175
184
|
static void finish_bdp_ping_locked(void* tp, grpc_error_handle error);
|
176
|
-
static void next_bdp_ping_timer_expired(
|
177
|
-
static void next_bdp_ping_timer_expired_locked(
|
178
|
-
|
185
|
+
static void next_bdp_ping_timer_expired(grpc_chttp2_transport* t);
|
186
|
+
static void next_bdp_ping_timer_expired_locked(
|
187
|
+
void* tp, GRPC_UNUSED grpc_error_handle error);
|
179
188
|
|
180
189
|
static void cancel_pings(grpc_chttp2_transport* t, grpc_error_handle error);
|
181
190
|
static void send_ping_locked(grpc_chttp2_transport* t,
|
182
191
|
grpc_closure* on_initiate, grpc_closure* on_ack);
|
183
|
-
static void retry_initiate_ping_locked(void* tp,
|
192
|
+
static void retry_initiate_ping_locked(void* tp,
|
193
|
+
GRPC_UNUSED grpc_error_handle error);
|
184
194
|
|
185
195
|
// keepalive-relevant functions
|
186
|
-
static void init_keepalive_ping(
|
187
|
-
static void init_keepalive_ping_locked(void* arg,
|
196
|
+
static void init_keepalive_ping(grpc_chttp2_transport* t);
|
197
|
+
static void init_keepalive_ping_locked(void* arg,
|
198
|
+
GRPC_UNUSED grpc_error_handle error);
|
188
199
|
static void start_keepalive_ping(void* arg, grpc_error_handle error);
|
189
200
|
static void finish_keepalive_ping(void* arg, grpc_error_handle error);
|
190
201
|
static void start_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
191
202
|
static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
192
|
-
static void keepalive_watchdog_fired(
|
193
|
-
static void keepalive_watchdog_fired_locked(
|
203
|
+
static void keepalive_watchdog_fired(grpc_chttp2_transport* t);
|
204
|
+
static void keepalive_watchdog_fired_locked(
|
205
|
+
void* arg, GRPC_UNUSED grpc_error_handle error);
|
206
|
+
static void maybe_reset_keepalive_ping_timer_locked(grpc_chttp2_transport* t);
|
207
|
+
|
208
|
+
namespace {
|
209
|
+
grpc_core::CallTracerInterface* CallTracerIfEnabled(grpc_chttp2_stream* s) {
|
210
|
+
if (s->context == nullptr || !grpc_core::IsTraceRecordCallopsEnabled()) {
|
211
|
+
return nullptr;
|
212
|
+
}
|
213
|
+
return static_cast<grpc_core::CallTracerInterface*>(
|
214
|
+
static_cast<grpc_call_context_element*>(
|
215
|
+
s->context)[GRPC_CONTEXT_CALL_TRACER_ANNOTATION_INTERFACE]
|
216
|
+
.value);
|
217
|
+
}
|
218
|
+
|
219
|
+
grpc_core::WriteTimestampsCallback g_write_timestamps_callback = nullptr;
|
220
|
+
grpc_core::CopyContextFn g_get_copied_context_fn = nullptr;
|
221
|
+
} // namespace
|
194
222
|
|
195
223
|
namespace grpc_core {
|
196
224
|
|
@@ -216,6 +244,40 @@ void TestOnlyGlobalHttp2TransportDisableTransientFailureStateNotification(
|
|
216
244
|
test_only_disable_transient_failure_state_notification = disable;
|
217
245
|
}
|
218
246
|
|
247
|
+
void GrpcHttp2SetWriteTimestampsCallback(WriteTimestampsCallback fn) {
|
248
|
+
g_write_timestamps_callback = fn;
|
249
|
+
}
|
250
|
+
|
251
|
+
void GrpcHttp2SetCopyContextFn(CopyContextFn fn) {
|
252
|
+
g_get_copied_context_fn = fn;
|
253
|
+
}
|
254
|
+
|
255
|
+
WriteTimestampsCallback GrpcHttp2GetWriteTimestampsCallback() {
|
256
|
+
return g_write_timestamps_callback;
|
257
|
+
}
|
258
|
+
|
259
|
+
CopyContextFn GrpcHttp2GetCopyContextFn() { return g_get_copied_context_fn; }
|
260
|
+
|
261
|
+
// For each entry in the passed ContextList, it executes the function set using
|
262
|
+
// GrpcHttp2SetWriteTimestampsCallback method with each context in the list
|
263
|
+
// and \a ts. It also deletes/frees up the passed ContextList after this
|
264
|
+
// operation.
|
265
|
+
void ForEachContextListEntryExecute(void* arg, Timestamps* ts,
|
266
|
+
grpc_error_handle error) {
|
267
|
+
ContextList* context_list = reinterpret_cast<ContextList*>(arg);
|
268
|
+
if (!context_list) {
|
269
|
+
return;
|
270
|
+
}
|
271
|
+
for (auto it = context_list->begin(); it != context_list->end(); it++) {
|
272
|
+
ContextListEntry& entry = (*it);
|
273
|
+
if (ts) {
|
274
|
+
ts->byte_offset = static_cast<uint32_t>(entry.ByteOffsetInStream());
|
275
|
+
}
|
276
|
+
g_write_timestamps_callback(entry.TraceContext(), ts, error);
|
277
|
+
}
|
278
|
+
delete context_list;
|
279
|
+
}
|
280
|
+
|
219
281
|
} // namespace grpc_core
|
220
282
|
|
221
283
|
//
|
@@ -225,25 +287,27 @@ void TestOnlyGlobalHttp2TransportDisableTransientFailureStateNotification(
|
|
225
287
|
grpc_chttp2_transport::~grpc_chttp2_transport() {
|
226
288
|
size_t i;
|
227
289
|
|
290
|
+
event_engine.reset();
|
291
|
+
|
228
292
|
if (channelz_socket != nullptr) {
|
229
293
|
channelz_socket.reset();
|
230
294
|
}
|
231
295
|
|
232
296
|
grpc_endpoint_destroy(ep);
|
233
297
|
|
234
|
-
|
298
|
+
grpc_slice_buffer_destroy(&qbuf);
|
235
299
|
|
236
|
-
|
300
|
+
grpc_slice_buffer_destroy(&outbuf);
|
237
301
|
|
238
|
-
grpc_error_handle error =
|
239
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed");
|
302
|
+
grpc_error_handle error = GRPC_ERROR_CREATE("Transport destroyed");
|
240
303
|
// ContextList::Execute follows semantics of a callback function and does not
|
241
304
|
// take a ref on error
|
242
|
-
|
243
|
-
|
305
|
+
if (cl != nullptr) {
|
306
|
+
grpc_core::ForEachContextListEntryExecute(cl, nullptr, error);
|
307
|
+
}
|
244
308
|
cl = nullptr;
|
245
309
|
|
246
|
-
|
310
|
+
grpc_slice_buffer_destroy(&read_buffer);
|
247
311
|
grpc_chttp2_goaway_parser_destroy(&goaway_parser);
|
248
312
|
|
249
313
|
for (i = 0; i < STREAM_LIST_COUNT; i++) {
|
@@ -251,16 +315,13 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
251
315
|
GPR_ASSERT(lists[i].tail == nullptr);
|
252
316
|
}
|
253
317
|
|
254
|
-
GRPC_ERROR_UNREF(goaway_error);
|
255
|
-
|
256
318
|
GPR_ASSERT(grpc_chttp2_stream_map_size(&stream_map) == 0);
|
257
319
|
|
258
320
|
grpc_chttp2_stream_map_destroy(&stream_map);
|
259
321
|
|
260
322
|
GRPC_COMBINER_UNREF(combiner, "chttp2_transport");
|
261
323
|
|
262
|
-
cancel_pings(this,
|
263
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed"));
|
324
|
+
cancel_pings(this, GRPC_ERROR_CREATE("Transport destroyed"));
|
264
325
|
|
265
326
|
while (write_cb_pool) {
|
266
327
|
grpc_chttp2_write_cb* next = write_cb_pool->next;
|
@@ -268,7 +329,6 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
268
329
|
write_cb_pool = next;
|
269
330
|
}
|
270
331
|
|
271
|
-
GRPC_ERROR_UNREF(closed_with_error);
|
272
332
|
gpr_free(ping_acks);
|
273
333
|
if (grpc_core::test_only_destruct_callback != nullptr) {
|
274
334
|
grpc_core::test_only_destruct_callback();
|
@@ -329,17 +389,43 @@ static void read_channel_args(grpc_chttp2_transport* t,
|
|
329
389
|
t->keepalive_permit_without_calls =
|
330
390
|
channel_args.GetBool(GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS)
|
331
391
|
.value_or(false);
|
392
|
+
// Only send the prefered rx frame size http2 setting if we are instructed
|
393
|
+
// to auto size the buffers allocated at tcp level and we also can adjust
|
394
|
+
// sending frame size.
|
395
|
+
t->enable_preferred_rx_crypto_frame_advertisement =
|
396
|
+
channel_args
|
397
|
+
.GetBool(GRPC_ARG_EXPERIMENTAL_HTTP2_PREFERRED_CRYPTO_FRAME_SIZE)
|
398
|
+
.value_or(false);
|
332
399
|
|
333
400
|
if (channel_args.GetBool(GRPC_ARG_ENABLE_CHANNELZ)
|
334
401
|
.value_or(GRPC_ENABLE_CHANNELZ_DEFAULT)) {
|
335
402
|
t->channelz_socket =
|
336
403
|
grpc_core::MakeRefCounted<grpc_core::channelz::SocketNode>(
|
337
|
-
std::string(grpc_endpoint_get_local_address(t->ep)),
|
338
|
-
|
404
|
+
std::string(grpc_endpoint_get_local_address(t->ep)),
|
405
|
+
std::string(t->peer_string.as_string_view()),
|
406
|
+
absl::StrCat(get_vtable()->name, " ",
|
407
|
+
t->peer_string.as_string_view()),
|
339
408
|
channel_args
|
340
409
|
.GetObjectRef<grpc_core::channelz::SocketNode::Security>());
|
341
410
|
}
|
342
411
|
|
412
|
+
t->ack_pings = channel_args.GetBool("grpc.http2.ack_pings").value_or(true);
|
413
|
+
|
414
|
+
const int soft_limit =
|
415
|
+
channel_args.GetInt(GRPC_ARG_MAX_METADATA_SIZE).value_or(-1);
|
416
|
+
if (soft_limit < 0) {
|
417
|
+
// Set soft limit to 0.8 * hard limit if this is larger than
|
418
|
+
// `DEFAULT_MAX_HEADER_LIST_SIZE_SOFT_LIMIT` and
|
419
|
+
// `GRPC_ARG_MAX_METADATA_SIZE` is not set.
|
420
|
+
t->max_header_list_size_soft_limit = std::max(
|
421
|
+
DEFAULT_MAX_HEADER_LIST_SIZE_SOFT_LIMIT,
|
422
|
+
static_cast<int>(
|
423
|
+
0.8 * channel_args.GetInt(GRPC_ARG_ABSOLUTE_MAX_METADATA_SIZE)
|
424
|
+
.value_or(-1)));
|
425
|
+
} else {
|
426
|
+
t->max_header_list_size_soft_limit = soft_limit;
|
427
|
+
}
|
428
|
+
|
343
429
|
static const struct {
|
344
430
|
absl::string_view channel_arg_name;
|
345
431
|
grpc_chttp2_setting_id setting_id;
|
@@ -359,7 +445,7 @@ static void read_channel_args(grpc_chttp2_transport* t,
|
|
359
445
|
0,
|
360
446
|
INT32_MAX,
|
361
447
|
{true, true}},
|
362
|
-
{
|
448
|
+
{GRPC_ARG_ABSOLUTE_MAX_METADATA_SIZE,
|
363
449
|
GRPC_CHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE,
|
364
450
|
-1,
|
365
451
|
0,
|
@@ -392,6 +478,21 @@ static void read_channel_args(grpc_chttp2_transport* t,
|
|
392
478
|
if (value >= 0) {
|
393
479
|
queue_setting_update(t, setting.setting_id,
|
394
480
|
grpc_core::Clamp(value, setting.min, setting.max));
|
481
|
+
} else if (setting.setting_id ==
|
482
|
+
GRPC_CHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE) {
|
483
|
+
// Set value to 1.25 * soft limit if this is larger than
|
484
|
+
// `DEFAULT_MAX_HEADER_LIST_SIZE` and
|
485
|
+
// `GRPC_ARG_ABSOLUTE_MAX_METADATA_SIZE` is not set.
|
486
|
+
const int soft_limit = channel_args.GetInt(GRPC_ARG_MAX_METADATA_SIZE)
|
487
|
+
.value_or(setting.default_value);
|
488
|
+
const int value = (soft_limit >= 0 && soft_limit < (INT_MAX / 1.25))
|
489
|
+
? static_cast<int>(soft_limit * 1.25)
|
490
|
+
: soft_limit;
|
491
|
+
if (value > DEFAULT_MAX_HEADER_LIST_SIZE) {
|
492
|
+
queue_setting_update(
|
493
|
+
t, setting.setting_id,
|
494
|
+
grpc_core::Clamp(value, setting.min, setting.max));
|
495
|
+
}
|
395
496
|
}
|
396
497
|
} else if (channel_args.Contains(setting.channel_arg_name)) {
|
397
498
|
gpr_log(GPR_DEBUG, "%s is not available on %s",
|
@@ -399,6 +500,16 @@ static void read_channel_args(grpc_chttp2_transport* t,
|
|
399
500
|
is_client ? "clients" : "servers");
|
400
501
|
}
|
401
502
|
}
|
503
|
+
|
504
|
+
if (t->enable_preferred_rx_crypto_frame_advertisement) {
|
505
|
+
const grpc_chttp2_setting_parameters* sp =
|
506
|
+
&grpc_chttp2_settings_parameters
|
507
|
+
[GRPC_CHTTP2_SETTINGS_GRPC_PREFERRED_RECEIVE_CRYPTO_FRAME_SIZE];
|
508
|
+
queue_setting_update(
|
509
|
+
t, GRPC_CHTTP2_SETTINGS_GRPC_PREFERRED_RECEIVE_CRYPTO_FRAME_SIZE,
|
510
|
+
grpc_core::Clamp(INT_MAX, static_cast<int>(sp->min_value),
|
511
|
+
static_cast<int>(sp->max_value)));
|
512
|
+
}
|
402
513
|
}
|
403
514
|
|
404
515
|
static void init_transport_keepalive_settings(grpc_chttp2_transport* t) {
|
@@ -435,18 +546,22 @@ static void configure_transport_ping_policy(grpc_chttp2_transport* t) {
|
|
435
546
|
g_default_min_recv_ping_interval_without_data_ms);
|
436
547
|
}
|
437
548
|
|
438
|
-
static void
|
549
|
+
static void init_keepalive_pings_if_enabled_locked(
|
550
|
+
void* arg, GRPC_UNUSED grpc_error_handle error) {
|
551
|
+
GPR_DEBUG_ASSERT(error.ok());
|
552
|
+
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
439
553
|
if (t->keepalive_time != grpc_core::Duration::Infinity()) {
|
440
554
|
t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_WAITING;
|
441
555
|
GRPC_CHTTP2_REF_TRANSPORT(t, "init keepalive ping");
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
556
|
+
t->keepalive_ping_timer_handle =
|
557
|
+
t->event_engine->RunAfter(t->keepalive_time, [t] {
|
558
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
559
|
+
grpc_core::ExecCtx exec_ctx;
|
560
|
+
init_keepalive_ping(t);
|
561
|
+
});
|
447
562
|
} else {
|
448
563
|
// Use GRPC_CHTTP2_KEEPALIVE_STATE_DISABLED to indicate there are no
|
449
|
-
//
|
564
|
+
// inflight keepalive timers
|
450
565
|
t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_DISABLED;
|
451
566
|
}
|
452
567
|
}
|
@@ -458,7 +573,8 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
458
573
|
? "chttp2_refcount"
|
459
574
|
: nullptr),
|
460
575
|
ep(ep),
|
461
|
-
peer_string(
|
576
|
+
peer_string(
|
577
|
+
grpc_core::Slice::FromCopiedString(grpc_endpoint_get_peer(ep))),
|
462
578
|
memory_owner(channel_args.GetObject<grpc_core::ResourceQuota>()
|
463
579
|
->memory_quota()
|
464
580
|
->CreateMemoryOwner(absl::StrCat(
|
@@ -471,10 +587,14 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
471
587
|
is_client(is_client),
|
472
588
|
next_stream_id(is_client ? 1 : 2),
|
473
589
|
flow_control(
|
474
|
-
peer_string.
|
590
|
+
peer_string.as_string_view(),
|
475
591
|
channel_args.GetBool(GRPC_ARG_HTTP2_BDP_PROBE).value_or(true),
|
476
592
|
&memory_owner),
|
477
|
-
deframe_state(is_client ? GRPC_DTS_FH_0 : GRPC_DTS_CLIENT_PREFIX_0)
|
593
|
+
deframe_state(is_client ? GRPC_DTS_FH_0 : GRPC_DTS_CLIENT_PREFIX_0),
|
594
|
+
event_engine(
|
595
|
+
channel_args
|
596
|
+
.GetObjectRef<grpc_event_engine::experimental::EventEngine>()) {
|
597
|
+
cl = new grpc_core::ContextList();
|
478
598
|
GPR_ASSERT(strlen(GRPC_CHTTP2_CLIENT_CONNECT_STRING) ==
|
479
599
|
GRPC_CHTTP2_CLIENT_CONNECT_STRLEN);
|
480
600
|
base.vtable = get_vtable();
|
@@ -519,13 +639,16 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
519
639
|
|
520
640
|
// No pings allowed before receiving a header or data frame.
|
521
641
|
ping_state.pings_before_data_required = 0;
|
522
|
-
ping_state.is_delayed_ping_timer_set = false;
|
523
642
|
ping_state.last_ping_sent_time = grpc_core::Timestamp::InfPast();
|
524
643
|
|
525
644
|
ping_recv_state.last_ping_recv_time = grpc_core::Timestamp::InfPast();
|
526
645
|
ping_recv_state.ping_strikes = 0;
|
527
646
|
|
528
|
-
|
647
|
+
grpc_core::ExecCtx exec_ctx;
|
648
|
+
combiner->Run(
|
649
|
+
GRPC_CLOSURE_INIT(&init_keepalive_ping_locked,
|
650
|
+
init_keepalive_pings_if_enabled_locked, this, nullptr),
|
651
|
+
absl::OkStatus());
|
529
652
|
|
530
653
|
if (flow_control.bdp_probe()) {
|
531
654
|
bdp_ping_blocked = true;
|
@@ -538,15 +661,23 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
538
661
|
if (grpc_core::test_only_init_callback != nullptr) {
|
539
662
|
grpc_core::test_only_init_callback();
|
540
663
|
}
|
664
|
+
|
665
|
+
#ifdef GRPC_POSIX_SOCKET_TCP
|
666
|
+
closure_barrier_may_cover_write =
|
667
|
+
grpc_event_engine_run_in_background() &&
|
668
|
+
grpc_core::IsScheduleCancellationOverWriteEnabled()
|
669
|
+
? 0
|
670
|
+
: CLOSURE_BARRIER_MAY_COVER_WRITE;
|
671
|
+
#endif
|
541
672
|
}
|
542
673
|
|
543
674
|
static void destroy_transport_locked(void* tp, grpc_error_handle /*error*/) {
|
544
675
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
545
676
|
t->destroying = 1;
|
546
677
|
close_transport_locked(
|
547
|
-
t, grpc_error_set_int(
|
548
|
-
|
549
|
-
|
678
|
+
t, grpc_error_set_int(GRPC_ERROR_CREATE("Transport destroyed"),
|
679
|
+
grpc_core::StatusIntProperty::kOccurredDuringWrite,
|
680
|
+
t->write_state));
|
550
681
|
t->memory_owner.Reset();
|
551
682
|
// Must be the last line.
|
552
683
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "destroy");
|
@@ -555,45 +686,66 @@ static void destroy_transport_locked(void* tp, grpc_error_handle /*error*/) {
|
|
555
686
|
static void destroy_transport(grpc_transport* gt) {
|
556
687
|
grpc_chttp2_transport* t = reinterpret_cast<grpc_chttp2_transport*>(gt);
|
557
688
|
t->combiner->Run(GRPC_CLOSURE_CREATE(destroy_transport_locked, t, nullptr),
|
558
|
-
|
689
|
+
absl::OkStatus());
|
559
690
|
}
|
560
691
|
|
561
692
|
static void close_transport_locked(grpc_chttp2_transport* t,
|
562
693
|
grpc_error_handle error) {
|
563
|
-
end_all_the_calls(t,
|
564
|
-
cancel_pings(t,
|
565
|
-
if (
|
694
|
+
end_all_the_calls(t, error);
|
695
|
+
cancel_pings(t, error);
|
696
|
+
if (t->closed_with_error.ok()) {
|
566
697
|
if (!grpc_error_has_clear_grpc_status(error)) {
|
567
|
-
error =
|
568
|
-
|
698
|
+
error =
|
699
|
+
grpc_error_set_int(error, grpc_core::StatusIntProperty::kRpcStatus,
|
700
|
+
GRPC_STATUS_UNAVAILABLE);
|
569
701
|
}
|
570
702
|
if (t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE) {
|
571
|
-
if (
|
703
|
+
if (t->close_transport_on_writes_finished.ok()) {
|
572
704
|
t->close_transport_on_writes_finished =
|
573
|
-
|
574
|
-
"Delayed close due to in-progress write");
|
705
|
+
GRPC_ERROR_CREATE("Delayed close due to in-progress write");
|
575
706
|
}
|
576
707
|
t->close_transport_on_writes_finished =
|
577
708
|
grpc_error_add_child(t->close_transport_on_writes_finished, error);
|
578
709
|
return;
|
579
710
|
}
|
580
|
-
GPR_ASSERT(!
|
581
|
-
t->closed_with_error =
|
711
|
+
GPR_ASSERT(!error.ok());
|
712
|
+
t->closed_with_error = error;
|
582
713
|
connectivity_state_set(t, GRPC_CHANNEL_SHUTDOWN, absl::Status(),
|
583
714
|
"close_transport");
|
584
|
-
if (t->ping_state.
|
585
|
-
|
715
|
+
if (t->ping_state.delayed_ping_timer_handle.has_value()) {
|
716
|
+
if (t->event_engine->Cancel(*t->ping_state.delayed_ping_timer_handle)) {
|
717
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "retry_initiate_ping_locked");
|
718
|
+
t->ping_state.delayed_ping_timer_handle.reset();
|
719
|
+
}
|
586
720
|
}
|
587
|
-
if (t->
|
588
|
-
|
721
|
+
if (t->next_bdp_ping_timer_handle.has_value()) {
|
722
|
+
if (t->event_engine->Cancel(*t->next_bdp_ping_timer_handle)) {
|
723
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "bdp_ping");
|
724
|
+
t->next_bdp_ping_timer_handle.reset();
|
725
|
+
}
|
589
726
|
}
|
590
727
|
switch (t->keepalive_state) {
|
591
728
|
case GRPC_CHTTP2_KEEPALIVE_STATE_WAITING:
|
592
|
-
|
729
|
+
if (t->keepalive_ping_timer_handle.has_value()) {
|
730
|
+
if (t->event_engine->Cancel(*t->keepalive_ping_timer_handle)) {
|
731
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "init keepalive ping");
|
732
|
+
t->keepalive_ping_timer_handle.reset();
|
733
|
+
}
|
734
|
+
}
|
593
735
|
break;
|
594
736
|
case GRPC_CHTTP2_KEEPALIVE_STATE_PINGING:
|
595
|
-
|
596
|
-
|
737
|
+
if (t->keepalive_ping_timer_handle.has_value()) {
|
738
|
+
if (t->event_engine->Cancel(*t->keepalive_ping_timer_handle)) {
|
739
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "init keepalive ping");
|
740
|
+
t->keepalive_ping_timer_handle.reset();
|
741
|
+
}
|
742
|
+
}
|
743
|
+
if (t->keepalive_watchdog_timer_handle.has_value()) {
|
744
|
+
if (t->event_engine->Cancel(*t->keepalive_watchdog_timer_handle)) {
|
745
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "keepalive watchdog");
|
746
|
+
t->keepalive_watchdog_timer_handle.reset();
|
747
|
+
}
|
748
|
+
}
|
597
749
|
break;
|
598
750
|
case GRPC_CHTTP2_KEEPALIVE_STATE_DYING:
|
599
751
|
case GRPC_CHTTP2_KEEPALIVE_STATE_DISABLED:
|
@@ -607,19 +759,17 @@ static void close_transport_locked(grpc_chttp2_transport* t,
|
|
607
759
|
GRPC_CHTTP2_STREAM_UNREF(s, "chttp2_writing:close");
|
608
760
|
}
|
609
761
|
GPR_ASSERT(t->write_state == GRPC_CHTTP2_WRITE_STATE_IDLE);
|
610
|
-
grpc_endpoint_shutdown(t->ep,
|
762
|
+
grpc_endpoint_shutdown(t->ep, error);
|
611
763
|
}
|
612
764
|
if (t->notify_on_receive_settings != nullptr) {
|
613
765
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, t->notify_on_receive_settings,
|
614
|
-
|
766
|
+
error);
|
615
767
|
t->notify_on_receive_settings = nullptr;
|
616
768
|
}
|
617
769
|
if (t->notify_on_close != nullptr) {
|
618
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, t->notify_on_close,
|
619
|
-
GRPC_ERROR_REF(error));
|
770
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, t->notify_on_close, error);
|
620
771
|
t->notify_on_close = nullptr;
|
621
772
|
}
|
622
|
-
GRPC_ERROR_UNREF(error);
|
623
773
|
}
|
624
774
|
|
625
775
|
#ifndef NDEBUG
|
@@ -658,6 +808,10 @@ grpc_chttp2_stream::grpc_chttp2_stream(grpc_chttp2_transport* t,
|
|
658
808
|
flow_control(&t->flow_control) {
|
659
809
|
if (server_data) {
|
660
810
|
id = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(server_data));
|
811
|
+
if (grpc_http_trace.enabled()) {
|
812
|
+
gpr_log(GPR_DEBUG, "HTTP:%p/%p creating accept stream %d [from %p]", t,
|
813
|
+
this, id, server_data);
|
814
|
+
}
|
661
815
|
*t->accepting_stream = this;
|
662
816
|
grpc_chttp2_stream_map_add(&t->stream_map, id, this);
|
663
817
|
post_destructive_reclaimer(t);
|
@@ -684,13 +838,13 @@ grpc_chttp2_stream::~grpc_chttp2_stream() {
|
|
684
838
|
GPR_ASSERT(grpc_chttp2_stream_map_find(&t->stream_map, id) == nullptr);
|
685
839
|
}
|
686
840
|
|
687
|
-
|
841
|
+
grpc_slice_buffer_destroy(&frame_storage);
|
688
842
|
|
689
843
|
for (int i = 0; i < STREAM_LIST_COUNT; i++) {
|
690
844
|
if (GPR_UNLIKELY(included.is_set(i))) {
|
691
|
-
|
692
|
-
|
693
|
-
|
845
|
+
grpc_core::Crash(absl::StrFormat("%s stream %d still included in list %d",
|
846
|
+
t->is_client ? "client" : "server", id,
|
847
|
+
i));
|
694
848
|
}
|
695
849
|
}
|
696
850
|
|
@@ -699,11 +853,9 @@ grpc_chttp2_stream::~grpc_chttp2_stream() {
|
|
699
853
|
GPR_ASSERT(recv_initial_metadata_ready == nullptr);
|
700
854
|
GPR_ASSERT(recv_message_ready == nullptr);
|
701
855
|
GPR_ASSERT(recv_trailing_metadata_finished == nullptr);
|
702
|
-
|
703
|
-
GRPC_ERROR_UNREF(read_closed_error);
|
704
|
-
GRPC_ERROR_UNREF(write_closed_error);
|
856
|
+
grpc_slice_buffer_destroy(&flow_controlled_buffer);
|
705
857
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "stream");
|
706
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, destroy_stream_arg,
|
858
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, destroy_stream_arg, absl::OkStatus());
|
707
859
|
}
|
708
860
|
|
709
861
|
static int init_stream(grpc_transport* gt, grpc_stream* gs,
|
@@ -727,7 +879,7 @@ static void destroy_stream(grpc_transport* gt, grpc_stream* gs,
|
|
727
879
|
s->destroy_stream_arg = then_schedule_closure;
|
728
880
|
t->combiner->Run(
|
729
881
|
GRPC_CLOSURE_INIT(&s->destroy_stream, destroy_stream_locked, s, nullptr),
|
730
|
-
|
882
|
+
absl::OkStatus());
|
731
883
|
}
|
732
884
|
|
733
885
|
grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(grpc_chttp2_transport* t,
|
@@ -764,7 +916,8 @@ static void set_write_state(grpc_chttp2_transport* t,
|
|
764
916
|
grpc_chttp2_write_state st, const char* reason) {
|
765
917
|
GRPC_CHTTP2_IF_TRACING(
|
766
918
|
gpr_log(GPR_INFO, "W:%p %s [%s] state %s -> %s [%s]", t,
|
767
|
-
t->is_client ? "CLIENT" : "SERVER",
|
919
|
+
t->is_client ? "CLIENT" : "SERVER",
|
920
|
+
std::string(t->peer_string.as_string_view()).c_str(),
|
768
921
|
write_state_name(t->write_state), write_state_name(st), reason));
|
769
922
|
t->write_state = st;
|
770
923
|
// If the state is being reset back to idle, it means a write was just
|
@@ -775,9 +928,9 @@ static void set_write_state(grpc_chttp2_transport* t,
|
|
775
928
|
// from peer while we had some pending writes)
|
776
929
|
if (st == GRPC_CHTTP2_WRITE_STATE_IDLE) {
|
777
930
|
grpc_core::ExecCtx::RunList(DEBUG_LOCATION, &t->run_after_write);
|
778
|
-
if (!
|
931
|
+
if (!t->close_transport_on_writes_finished.ok()) {
|
779
932
|
grpc_error_handle err = t->close_transport_on_writes_finished;
|
780
|
-
t->close_transport_on_writes_finished =
|
933
|
+
t->close_transport_on_writes_finished = absl::OkStatus();
|
781
934
|
close_transport_locked(t, err);
|
782
935
|
}
|
783
936
|
}
|
@@ -809,7 +962,7 @@ void grpc_chttp2_initiate_write(grpc_chttp2_transport* t,
|
|
809
962
|
t->combiner->FinallyRun(
|
810
963
|
GRPC_CLOSURE_INIT(&t->write_action_begin_locked,
|
811
964
|
write_action_begin_locked, t, nullptr),
|
812
|
-
|
965
|
+
absl::OkStatus());
|
813
966
|
break;
|
814
967
|
case GRPC_CHTTP2_WRITE_STATE_WRITING:
|
815
968
|
set_write_state(t, GRPC_CHTTP2_WRITE_STATE_WRITING_WITH_MORE,
|
@@ -822,8 +975,7 @@ void grpc_chttp2_initiate_write(grpc_chttp2_transport* t,
|
|
822
975
|
|
823
976
|
void grpc_chttp2_mark_stream_writable(grpc_chttp2_transport* t,
|
824
977
|
grpc_chttp2_stream* s) {
|
825
|
-
if (
|
826
|
-
grpc_chttp2_list_add_writable_stream(t, s)) {
|
978
|
+
if (t->closed_with_error.ok() && grpc_chttp2_list_add_writable_stream(t, s)) {
|
827
979
|
GRPC_CHTTP2_STREAM_REF(s, "chttp2_writing:become");
|
828
980
|
}
|
829
981
|
}
|
@@ -841,7 +993,7 @@ static void write_action_begin_locked(void* gt,
|
|
841
993
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
842
994
|
GPR_ASSERT(t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE);
|
843
995
|
grpc_chttp2_begin_write_result r;
|
844
|
-
if (!
|
996
|
+
if (!t->closed_with_error.ok()) {
|
845
997
|
r.writing = false;
|
846
998
|
} else {
|
847
999
|
r = grpc_chttp2_begin_write(t);
|
@@ -851,7 +1003,7 @@ static void write_action_begin_locked(void* gt,
|
|
851
1003
|
r.partial ? GRPC_CHTTP2_WRITE_STATE_WRITING_WITH_MORE
|
852
1004
|
: GRPC_CHTTP2_WRITE_STATE_WRITING,
|
853
1005
|
begin_writing_desc(r.partial));
|
854
|
-
write_action(t,
|
1006
|
+
write_action(t, absl::OkStatus());
|
855
1007
|
if (t->reading_paused_on_pending_induced_frames) {
|
856
1008
|
GPR_ASSERT(t->num_pending_induced_frames == 0);
|
857
1009
|
// We had paused reading, because we had many induced frames (SETTINGS
|
@@ -874,17 +1026,28 @@ static void write_action_begin_locked(void* gt,
|
|
874
1026
|
static void write_action(void* gt, grpc_error_handle /*error*/) {
|
875
1027
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
876
1028
|
void* cl = t->cl;
|
877
|
-
t->cl
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
1029
|
+
if (!t->cl->empty()) {
|
1030
|
+
// Transfer the ownership of the context list to the endpoint and create and
|
1031
|
+
// associate a new context list with the transport.
|
1032
|
+
// The old context list is stored in the cl local variable which is passed
|
1033
|
+
// to the endpoint. Its upto the endpoint to manage its lifetime.
|
1034
|
+
t->cl = new grpc_core::ContextList();
|
1035
|
+
} else {
|
1036
|
+
// t->cl is Empty. There is nothing to trace in this endpoint_write. set cl
|
1037
|
+
// to nullptr.
|
1038
|
+
cl = nullptr;
|
1039
|
+
}
|
1040
|
+
// Choose max_frame_size as the prefered rx crypto frame size indicated by the
|
1041
|
+
// peer.
|
883
1042
|
int max_frame_size =
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
1043
|
+
t->settings
|
1044
|
+
[GRPC_PEER_SETTINGS]
|
1045
|
+
[GRPC_CHTTP2_SETTINGS_GRPC_PREFERRED_RECEIVE_CRYPTO_FRAME_SIZE];
|
1046
|
+
// Note: max frame size is 0 if the remote peer does not support adjusting the
|
1047
|
+
// sending frame size.
|
1048
|
+
if (max_frame_size == 0) {
|
1049
|
+
max_frame_size = INT_MAX;
|
1050
|
+
}
|
888
1051
|
grpc_endpoint_write(
|
889
1052
|
t->ep, &t->outbuf,
|
890
1053
|
GRPC_CLOSURE_INIT(&t->write_action_end_locked, write_action_end, t,
|
@@ -896,7 +1059,7 @@ static void write_action_end(void* tp, grpc_error_handle error) {
|
|
896
1059
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
897
1060
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->write_action_end_locked,
|
898
1061
|
write_action_end_locked, t, nullptr),
|
899
|
-
|
1062
|
+
error);
|
900
1063
|
}
|
901
1064
|
|
902
1065
|
// Callback from the grpc_endpoint after bytes have been written by calling
|
@@ -905,8 +1068,8 @@ static void write_action_end_locked(void* tp, grpc_error_handle error) {
|
|
905
1068
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
906
1069
|
|
907
1070
|
bool closed = false;
|
908
|
-
if (!
|
909
|
-
close_transport_locked(t,
|
1071
|
+
if (!error.ok()) {
|
1072
|
+
close_transport_locked(t, error);
|
910
1073
|
closed = true;
|
911
1074
|
}
|
912
1075
|
|
@@ -914,8 +1077,7 @@ static void write_action_end_locked(void* tp, grpc_error_handle error) {
|
|
914
1077
|
t->sent_goaway_state = GRPC_CHTTP2_FINAL_GOAWAY_SENT;
|
915
1078
|
closed = true;
|
916
1079
|
if (grpc_chttp2_stream_map_size(&t->stream_map) == 0) {
|
917
|
-
close_transport_locked(
|
918
|
-
t, GRPC_ERROR_CREATE_FROM_STATIC_STRING("goaway sent"));
|
1080
|
+
close_transport_locked(t, GRPC_ERROR_CREATE("goaway sent"));
|
919
1081
|
}
|
920
1082
|
}
|
921
1083
|
|
@@ -939,11 +1101,11 @@ static void write_action_end_locked(void* tp, grpc_error_handle error) {
|
|
939
1101
|
t->combiner->FinallyRun(
|
940
1102
|
GRPC_CLOSURE_INIT(&t->write_action_begin_locked,
|
941
1103
|
write_action_begin_locked, t, nullptr),
|
942
|
-
|
1104
|
+
absl::OkStatus());
|
943
1105
|
break;
|
944
1106
|
}
|
945
1107
|
|
946
|
-
grpc_chttp2_end_write(t,
|
1108
|
+
grpc_chttp2_end_write(t, error);
|
947
1109
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "writing");
|
948
1110
|
}
|
949
1111
|
|
@@ -972,26 +1134,27 @@ static void cancel_unstarted_streams(grpc_chttp2_transport* t,
|
|
972
1134
|
s->trailing_metadata_buffer.Set(
|
973
1135
|
grpc_core::GrpcStreamNetworkState(),
|
974
1136
|
grpc_core::GrpcStreamNetworkState::kNotSentOnWire);
|
975
|
-
grpc_chttp2_cancel_stream(t, s,
|
1137
|
+
grpc_chttp2_cancel_stream(t, s, error);
|
976
1138
|
}
|
977
|
-
GRPC_ERROR_UNREF(error);
|
978
1139
|
}
|
979
1140
|
|
980
1141
|
void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
981
1142
|
uint32_t goaway_error,
|
982
1143
|
uint32_t last_stream_id,
|
983
1144
|
absl::string_view goaway_text) {
|
984
|
-
// Discard the error from a previous goaway frame (if any)
|
985
|
-
if (!GRPC_ERROR_IS_NONE(t->goaway_error)) {
|
986
|
-
GRPC_ERROR_UNREF(t->goaway_error);
|
987
|
-
}
|
988
1145
|
t->goaway_error = grpc_error_set_str(
|
989
1146
|
grpc_error_set_int(
|
990
1147
|
grpc_error_set_int(
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
|
1148
|
+
grpc_core::StatusCreate(
|
1149
|
+
absl::StatusCode::kUnavailable,
|
1150
|
+
absl::StrFormat(
|
1151
|
+
"GOAWAY received; Error code: %u; Debug Text: %s",
|
1152
|
+
goaway_error, goaway_text),
|
1153
|
+
DEBUG_LOCATION, {}),
|
1154
|
+
grpc_core::StatusIntProperty::kHttp2Error,
|
1155
|
+
static_cast<intptr_t>(goaway_error)),
|
1156
|
+
grpc_core::StatusIntProperty::kRpcStatus, GRPC_STATUS_UNAVAILABLE),
|
1157
|
+
grpc_core::StatusStrProperty::kRawBytes, goaway_text);
|
995
1158
|
|
996
1159
|
GRPC_CHTTP2_IF_TRACING(
|
997
1160
|
gpr_log(GPR_INFO, "transport %p got goaway with last stream id %d", t,
|
@@ -999,11 +1162,12 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
999
1162
|
// We want to log this irrespective of whether http tracing is enabled if we
|
1000
1163
|
// received a GOAWAY with a non NO_ERROR code.
|
1001
1164
|
if (goaway_error != GRPC_HTTP2_NO_ERROR) {
|
1002
|
-
gpr_log(GPR_INFO, "%s: Got goaway [%d] err=%s",
|
1003
|
-
|
1165
|
+
gpr_log(GPR_INFO, "%s: Got goaway [%d] err=%s",
|
1166
|
+
std::string(t->peer_string.as_string_view()).c_str(), goaway_error,
|
1167
|
+
grpc_core::StatusToString(t->goaway_error).c_str());
|
1004
1168
|
}
|
1005
1169
|
if (t->is_client) {
|
1006
|
-
cancel_unstarted_streams(t,
|
1170
|
+
cancel_unstarted_streams(t, t->goaway_error);
|
1007
1171
|
// Cancel all unseen streams
|
1008
1172
|
grpc_chttp2_stream_map_for_each(
|
1009
1173
|
&t->stream_map,
|
@@ -1014,8 +1178,7 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1014
1178
|
s->trailing_metadata_buffer.Set(
|
1015
1179
|
grpc_core::GrpcStreamNetworkState(),
|
1016
1180
|
grpc_core::GrpcStreamNetworkState::kNotSeenByServer);
|
1017
|
-
grpc_chttp2_cancel_stream(s->t, s,
|
1018
|
-
GRPC_ERROR_REF(s->t->goaway_error));
|
1181
|
+
grpc_chttp2_cancel_stream(s->t, s, s->t->goaway_error);
|
1019
1182
|
}
|
1020
1183
|
},
|
1021
1184
|
&last_stream_id);
|
@@ -1032,10 +1195,11 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1032
1195
|
"%s: Received a GOAWAY with error code ENHANCE_YOUR_CALM and debug "
|
1033
1196
|
"data equal to \"too_many_pings\". Current keepalive time (before "
|
1034
1197
|
"throttling): %s",
|
1035
|
-
t->peer_string.
|
1198
|
+
std::string(t->peer_string.as_string_view()).c_str(),
|
1199
|
+
t->keepalive_time.ToString().c_str());
|
1036
1200
|
constexpr int max_keepalive_time_millis =
|
1037
1201
|
INT_MAX / KEEPALIVE_TIME_BACKOFF_MULTIPLIER;
|
1038
|
-
|
1202
|
+
int64_t throttled_keepalive_time =
|
1039
1203
|
t->keepalive_time.millis() > max_keepalive_time_millis
|
1040
1204
|
? INT_MAX
|
1041
1205
|
: t->keepalive_time.millis() * KEEPALIVE_TIME_BACKOFF_MULTIPLIER;
|
@@ -1054,8 +1218,8 @@ static void maybe_start_some_streams(grpc_chttp2_transport* t) {
|
|
1054
1218
|
grpc_chttp2_stream* s;
|
1055
1219
|
// maybe cancel out streams that haven't yet started if we have received a
|
1056
1220
|
// GOAWAY
|
1057
|
-
if (!
|
1058
|
-
cancel_unstarted_streams(t,
|
1221
|
+
if (!t->goaway_error.ok()) {
|
1222
|
+
cancel_unstarted_streams(t, t->goaway_error);
|
1059
1223
|
return;
|
1060
1224
|
}
|
1061
1225
|
// start streams where we have free grpc_chttp2_stream ids and free
|
@@ -1095,21 +1259,13 @@ static void maybe_start_some_streams(grpc_chttp2_transport* t) {
|
|
1095
1259
|
grpc_core::GrpcStreamNetworkState::kNotSentOnWire);
|
1096
1260
|
grpc_chttp2_cancel_stream(
|
1097
1261
|
t, s,
|
1098
|
-
grpc_error_set_int(
|
1099
|
-
|
1100
|
-
|
1262
|
+
grpc_error_set_int(GRPC_ERROR_CREATE("Stream IDs exhausted"),
|
1263
|
+
grpc_core::StatusIntProperty::kRpcStatus,
|
1264
|
+
GRPC_STATUS_UNAVAILABLE));
|
1101
1265
|
}
|
1102
1266
|
}
|
1103
1267
|
}
|
1104
1268
|
|
1105
|
-
// Flag that this closure barrier may be covering a write in a pollset, and so
|
1106
|
-
// we should not complete this closure until we can prove that the write got
|
1107
|
-
// scheduled
|
1108
|
-
#define CLOSURE_BARRIER_MAY_COVER_WRITE (1 << 0)
|
1109
|
-
// First bit of the reference count, stored in the high order bits (with the low
|
1110
|
-
// bits being used for flags defined above)
|
1111
|
-
#define CLOSURE_BARRIER_FIRST_REF_BIT (1 << 16)
|
1112
|
-
|
1113
1269
|
static grpc_closure* add_closure_barrier(grpc_closure* closure) {
|
1114
1270
|
closure->next_data.scratch += CLOSURE_BARRIER_FIRST_REF_BIT;
|
1115
1271
|
return closure;
|
@@ -1124,18 +1280,18 @@ static void null_then_sched_closure(grpc_closure** closure) {
|
|
1124
1280
|
// completion, have the application see it, and make a new operation on the
|
1125
1281
|
// call which recycles the batch BEFORE the call to start_batch completes,
|
1126
1282
|
// forcing a race.
|
1127
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, c,
|
1283
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, c, absl::OkStatus());
|
1128
1284
|
}
|
1129
1285
|
|
1130
1286
|
void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
1131
|
-
grpc_chttp2_stream*
|
1287
|
+
grpc_chttp2_stream* s,
|
1132
1288
|
grpc_closure** pclosure,
|
1133
1289
|
grpc_error_handle error,
|
1134
|
-
const char* desc
|
1290
|
+
const char* desc,
|
1291
|
+
grpc_core::DebugLocation whence) {
|
1135
1292
|
grpc_closure* closure = *pclosure;
|
1136
1293
|
*pclosure = nullptr;
|
1137
1294
|
if (closure == nullptr) {
|
1138
|
-
GRPC_ERROR_UNREF(error);
|
1139
1295
|
return;
|
1140
1296
|
}
|
1141
1297
|
closure->next_data.scratch -= CLOSURE_BARRIER_FIRST_REF_BIT;
|
@@ -1143,26 +1299,35 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1143
1299
|
gpr_log(
|
1144
1300
|
GPR_INFO,
|
1145
1301
|
"complete_closure_step: t=%p %p refs=%d flags=0x%04x desc=%s err=%s "
|
1146
|
-
"write_state=%s",
|
1302
|
+
"write_state=%s whence=%s:%d",
|
1147
1303
|
t, closure,
|
1148
1304
|
static_cast<int>(closure->next_data.scratch /
|
1149
1305
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1150
1306
|
static_cast<int>(closure->next_data.scratch %
|
1151
1307
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1152
|
-
desc,
|
1153
|
-
write_state_name(t->write_state));
|
1308
|
+
desc, grpc_core::StatusToString(error).c_str(),
|
1309
|
+
write_state_name(t->write_state), whence.file(), whence.line());
|
1310
|
+
}
|
1311
|
+
|
1312
|
+
auto* tracer = CallTracerIfEnabled(s);
|
1313
|
+
if (tracer != nullptr) {
|
1314
|
+
tracer->RecordAnnotation(
|
1315
|
+
absl::StrFormat("on_complete: s=%p %p desc=%s err=%s", s, closure, desc,
|
1316
|
+
grpc_core::StatusToString(error).c_str()));
|
1154
1317
|
}
|
1155
|
-
|
1318
|
+
|
1319
|
+
if (!error.ok()) {
|
1156
1320
|
grpc_error_handle cl_err =
|
1157
1321
|
grpc_core::internal::StatusMoveFromHeapPtr(closure->error_data.error);
|
1158
|
-
if (
|
1159
|
-
cl_err =
|
1322
|
+
if (cl_err.ok()) {
|
1323
|
+
cl_err = GRPC_ERROR_CREATE(absl::StrCat(
|
1160
1324
|
"Error in HTTP transport completing operation: ", desc,
|
1161
1325
|
" write_state=", write_state_name(t->write_state), " refs=",
|
1162
1326
|
closure->next_data.scratch / CLOSURE_BARRIER_FIRST_REF_BIT, " flags=",
|
1163
1327
|
closure->next_data.scratch % CLOSURE_BARRIER_FIRST_REF_BIT));
|
1164
|
-
cl_err = grpc_error_set_str(cl_err,
|
1165
|
-
|
1328
|
+
cl_err = grpc_error_set_str(cl_err,
|
1329
|
+
grpc_core::StatusStrProperty::kTargetAddress,
|
1330
|
+
std::string(t->peer_string.as_string_view()));
|
1166
1331
|
}
|
1167
1332
|
cl_err = grpc_error_add_child(cl_err, error);
|
1168
1333
|
closure->error_data.error = grpc_core::internal::StatusAllocHeapPtr(cl_err);
|
@@ -1189,6 +1354,7 @@ static bool contains_non_ok_status(grpc_metadata_batch* batch) {
|
|
1189
1354
|
|
1190
1355
|
static void log_metadata(const grpc_metadata_batch* md_batch, uint32_t id,
|
1191
1356
|
bool is_client, bool is_initial) {
|
1357
|
+
gpr_log(GPR_INFO, "--metadata--");
|
1192
1358
|
const std::string prefix = absl::StrCat(
|
1193
1359
|
"HTTP:", id, is_initial ? ":HDR" : ":TRL", is_client ? ":CLI:" : ":SVR:");
|
1194
1360
|
md_batch->Log([&prefix](absl::string_view key, absl::string_view value) {
|
@@ -1210,7 +1376,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1210
1376
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1211
1377
|
gpr_log(GPR_INFO,
|
1212
1378
|
"perform_stream_op_locked[s=%p; op=%p]: %s; on_complete = %p", s,
|
1213
|
-
op, grpc_transport_stream_op_batch_string(op).c_str(),
|
1379
|
+
op, grpc_transport_stream_op_batch_string(op, false).c_str(),
|
1214
1380
|
op->on_complete);
|
1215
1381
|
if (op->send_initial_metadata) {
|
1216
1382
|
log_metadata(op_payload->send_initial_metadata.send_initial_metadata,
|
@@ -1222,6 +1388,14 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1222
1388
|
}
|
1223
1389
|
}
|
1224
1390
|
|
1391
|
+
auto* tracer = CallTracerIfEnabled(s);
|
1392
|
+
if (tracer != nullptr) {
|
1393
|
+
tracer->RecordAnnotation(absl::StrFormat(
|
1394
|
+
"perform_stream_op_locked[s=%p; op=%p]: %s; on_complete = %p", s, op,
|
1395
|
+
grpc_transport_stream_op_batch_string(op, true).c_str(),
|
1396
|
+
op->on_complete));
|
1397
|
+
}
|
1398
|
+
|
1225
1399
|
grpc_closure* on_complete = op->on_complete;
|
1226
1400
|
// on_complete will be null if and only if there are no send ops in the batch.
|
1227
1401
|
if (on_complete != nullptr) {
|
@@ -1240,7 +1414,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1240
1414
|
t->channelz_socket->RecordStreamStartedFromLocal();
|
1241
1415
|
}
|
1242
1416
|
GPR_ASSERT(s->send_initial_metadata_finished == nullptr);
|
1243
|
-
on_complete->next_data.scratch |=
|
1417
|
+
on_complete->next_data.scratch |= t->closure_barrier_may_cover_write;
|
1244
1418
|
|
1245
1419
|
s->send_initial_metadata_finished = add_closure_barrier(on_complete);
|
1246
1420
|
s->send_initial_metadata =
|
@@ -1256,7 +1430,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1256
1430
|
}
|
1257
1431
|
if (!s->write_closed) {
|
1258
1432
|
if (t->is_client) {
|
1259
|
-
if (
|
1433
|
+
if (t->closed_with_error.ok()) {
|
1260
1434
|
GPR_ASSERT(s->id == 0);
|
1261
1435
|
grpc_chttp2_list_add_waiting_for_concurrency(t, s);
|
1262
1436
|
maybe_start_some_streams(t);
|
@@ -1267,9 +1441,10 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1267
1441
|
grpc_chttp2_cancel_stream(
|
1268
1442
|
t, s,
|
1269
1443
|
grpc_error_set_int(
|
1270
|
-
|
1271
|
-
|
1272
|
-
|
1444
|
+
GRPC_ERROR_CREATE_REFERENCING("Transport closed",
|
1445
|
+
&t->closed_with_error, 1),
|
1446
|
+
grpc_core::StatusIntProperty::kRpcStatus,
|
1447
|
+
GRPC_STATUS_UNAVAILABLE));
|
1273
1448
|
}
|
1274
1449
|
} else {
|
1275
1450
|
GPR_ASSERT(s->id != 0);
|
@@ -1284,22 +1459,18 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1284
1459
|
s->send_initial_metadata = nullptr;
|
1285
1460
|
grpc_chttp2_complete_closure_step(
|
1286
1461
|
t, s, &s->send_initial_metadata_finished,
|
1287
|
-
|
1462
|
+
GRPC_ERROR_CREATE_REFERENCING(
|
1288
1463
|
"Attempt to send initial metadata after stream was closed",
|
1289
1464
|
&s->write_closed_error, 1),
|
1290
1465
|
"send_initial_metadata_finished");
|
1291
1466
|
}
|
1292
|
-
if (op_payload->send_initial_metadata.peer_string != nullptr) {
|
1293
|
-
gpr_atm_rel_store(op_payload->send_initial_metadata.peer_string,
|
1294
|
-
(gpr_atm)t->peer_string.c_str());
|
1295
|
-
}
|
1296
1467
|
}
|
1297
1468
|
|
1298
1469
|
if (op->send_message) {
|
1299
1470
|
t->num_messages_in_next_write++;
|
1300
|
-
|
1471
|
+
grpc_core::global_stats().IncrementHttp2SendMessageSize(
|
1301
1472
|
op->payload->send_message.send_message->Length());
|
1302
|
-
on_complete->next_data.scratch |=
|
1473
|
+
on_complete->next_data.scratch |= t->closure_barrier_may_cover_write;
|
1303
1474
|
s->send_message_finished = add_closure_barrier(op->on_complete);
|
1304
1475
|
const uint32_t flags = op_payload->send_message.flags;
|
1305
1476
|
if (s->write_closed) {
|
@@ -1308,7 +1479,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1308
1479
|
// started. The surface layer will notice that the stream has been closed
|
1309
1480
|
// for writes and fail the send message op.
|
1310
1481
|
grpc_chttp2_complete_closure_step(t, s, &s->send_message_finished,
|
1311
|
-
|
1482
|
+
absl::OkStatus(),
|
1312
1483
|
"fetching_send_message_finished");
|
1313
1484
|
} else {
|
1314
1485
|
uint8_t* frame_hdr = grpc_slice_buffer_tiny_add(
|
@@ -1337,13 +1508,13 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1337
1508
|
slices + op_payload->send_message.send_message->Count();
|
1338
1509
|
for (grpc_slice* slice = slices; slice != end; slice++) {
|
1339
1510
|
grpc_slice_buffer_add(&s->flow_controlled_buffer,
|
1340
|
-
|
1511
|
+
grpc_core::CSliceRef(*slice));
|
1341
1512
|
}
|
1342
1513
|
|
1343
1514
|
int64_t notify_offset = s->next_message_end_offset;
|
1344
1515
|
if (notify_offset <= s->flow_controlled_bytes_written) {
|
1345
1516
|
grpc_chttp2_complete_closure_step(t, s, &s->send_message_finished,
|
1346
|
-
|
1517
|
+
absl::OkStatus(),
|
1347
1518
|
"fetching_send_message_finished");
|
1348
1519
|
} else {
|
1349
1520
|
grpc_chttp2_write_cb* cb = t->write_cb_pool;
|
@@ -1373,7 +1544,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1373
1544
|
|
1374
1545
|
if (op->send_trailing_metadata) {
|
1375
1546
|
GPR_ASSERT(s->send_trailing_metadata_finished == nullptr);
|
1376
|
-
on_complete->next_data.scratch |=
|
1547
|
+
on_complete->next_data.scratch |= t->closure_barrier_may_cover_write;
|
1377
1548
|
s->send_trailing_metadata_finished = add_closure_barrier(on_complete);
|
1378
1549
|
s->send_trailing_metadata =
|
1379
1550
|
op_payload->send_trailing_metadata.send_trailing_metadata;
|
@@ -1388,10 +1559,9 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1388
1559
|
grpc_chttp2_complete_closure_step(
|
1389
1560
|
t, s, &s->send_trailing_metadata_finished,
|
1390
1561
|
op->payload->send_trailing_metadata.send_trailing_metadata->empty()
|
1391
|
-
?
|
1392
|
-
:
|
1393
|
-
|
1394
|
-
"stream was closed"),
|
1562
|
+
? absl::OkStatus()
|
1563
|
+
: GRPC_ERROR_CREATE("Attempt to send trailing metadata after "
|
1564
|
+
"stream was closed"),
|
1395
1565
|
"send_trailing_metadata_finished");
|
1396
1566
|
} else if (s->id != 0) {
|
1397
1567
|
// TODO(ctiller): check if there's flow control for any outstanding
|
@@ -1410,9 +1580,8 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1410
1580
|
op_payload->recv_initial_metadata.recv_initial_metadata;
|
1411
1581
|
s->trailing_metadata_available =
|
1412
1582
|
op_payload->recv_initial_metadata.trailing_metadata_available;
|
1413
|
-
if (
|
1414
|
-
|
1415
|
-
(gpr_atm)t->peer_string.c_str());
|
1583
|
+
if (s->parsed_trailers_only && s->trailing_metadata_available != nullptr) {
|
1584
|
+
*s->trailing_metadata_available = true;
|
1416
1585
|
}
|
1417
1586
|
grpc_chttp2_maybe_complete_recv_initial_metadata(t, s);
|
1418
1587
|
}
|
@@ -1441,7 +1610,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1441
1610
|
}
|
1442
1611
|
|
1443
1612
|
if (on_complete != nullptr) {
|
1444
|
-
grpc_chttp2_complete_closure_step(t, s, &on_complete,
|
1613
|
+
grpc_chttp2_complete_closure_step(t, s, &on_complete, absl::OkStatus(),
|
1445
1614
|
"op->on_complete");
|
1446
1615
|
}
|
1447
1616
|
|
@@ -1468,56 +1637,53 @@ static void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1468
1637
|
|
1469
1638
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1470
1639
|
gpr_log(GPR_INFO, "perform_stream_op[s=%p; op=%p]: %s", s, op,
|
1471
|
-
grpc_transport_stream_op_batch_string(op).c_str());
|
1640
|
+
grpc_transport_stream_op_batch_string(op, false).c_str());
|
1472
1641
|
}
|
1473
1642
|
|
1474
1643
|
GRPC_CHTTP2_STREAM_REF(s, "perform_stream_op");
|
1475
1644
|
op->handler_private.extra_arg = gs;
|
1476
1645
|
t->combiner->Run(GRPC_CLOSURE_INIT(&op->handler_private.closure,
|
1477
1646
|
perform_stream_op_locked, op, nullptr),
|
1478
|
-
|
1647
|
+
absl::OkStatus());
|
1479
1648
|
}
|
1480
1649
|
|
1481
1650
|
static void cancel_pings(grpc_chttp2_transport* t, grpc_error_handle error) {
|
1482
1651
|
// callback remaining pings: they're not allowed to call into the transport,
|
1483
1652
|
// and maybe they hold resources that need to be freed
|
1484
1653
|
grpc_chttp2_ping_queue* pq = &t->ping_queue;
|
1485
|
-
GPR_ASSERT(!
|
1654
|
+
GPR_ASSERT(!error.ok());
|
1486
1655
|
for (size_t j = 0; j < GRPC_CHTTP2_PCL_COUNT; j++) {
|
1487
|
-
grpc_closure_list_fail_all(&pq->lists[j],
|
1656
|
+
grpc_closure_list_fail_all(&pq->lists[j], error);
|
1488
1657
|
grpc_core::ExecCtx::RunList(DEBUG_LOCATION, &pq->lists[j]);
|
1489
1658
|
}
|
1490
|
-
GRPC_ERROR_UNREF(error);
|
1491
1659
|
}
|
1492
1660
|
|
1493
1661
|
static void send_ping_locked(grpc_chttp2_transport* t,
|
1494
1662
|
grpc_closure* on_initiate, grpc_closure* on_ack) {
|
1495
|
-
if (!
|
1496
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_initiate,
|
1497
|
-
|
1498
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_ack,
|
1499
|
-
GRPC_ERROR_REF(t->closed_with_error));
|
1663
|
+
if (!t->closed_with_error.ok()) {
|
1664
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_initiate, t->closed_with_error);
|
1665
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, on_ack, t->closed_with_error);
|
1500
1666
|
return;
|
1501
1667
|
}
|
1502
1668
|
grpc_chttp2_ping_queue* pq = &t->ping_queue;
|
1503
1669
|
grpc_closure_list_append(&pq->lists[GRPC_CHTTP2_PCL_INITIATE], on_initiate,
|
1504
|
-
|
1670
|
+
absl::OkStatus());
|
1505
1671
|
grpc_closure_list_append(&pq->lists[GRPC_CHTTP2_PCL_NEXT], on_ack,
|
1506
|
-
|
1672
|
+
absl::OkStatus());
|
1507
1673
|
}
|
1508
1674
|
|
1509
1675
|
// Specialized form of send_ping_locked for keepalive ping. If there is already
|
1510
1676
|
// a ping in progress, the keepalive ping would piggyback onto that ping,
|
1511
1677
|
// instead of waiting for that ping to complete and then starting a new ping.
|
1512
1678
|
static void send_keepalive_ping_locked(grpc_chttp2_transport* t) {
|
1513
|
-
if (!
|
1679
|
+
if (!t->closed_with_error.ok()) {
|
1514
1680
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_keepalive_ping_locked,
|
1515
1681
|
start_keepalive_ping_locked, t, nullptr),
|
1516
|
-
|
1682
|
+
t->closed_with_error);
|
1517
1683
|
t->combiner->Run(
|
1518
1684
|
GRPC_CLOSURE_INIT(&t->finish_keepalive_ping_locked,
|
1519
1685
|
finish_keepalive_ping_locked, t, nullptr),
|
1520
|
-
|
1686
|
+
t->closed_with_error);
|
1521
1687
|
return;
|
1522
1688
|
}
|
1523
1689
|
grpc_chttp2_ping_queue* pq = &t->ping_queue;
|
@@ -1525,39 +1691,39 @@ static void send_keepalive_ping_locked(grpc_chttp2_transport* t) {
|
|
1525
1691
|
// There is a ping in flight. Add yourself to the inflight closure list.
|
1526
1692
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_keepalive_ping_locked,
|
1527
1693
|
start_keepalive_ping_locked, t, nullptr),
|
1528
|
-
|
1694
|
+
t->closed_with_error);
|
1529
1695
|
grpc_closure_list_append(
|
1530
1696
|
&pq->lists[GRPC_CHTTP2_PCL_INFLIGHT],
|
1531
1697
|
GRPC_CLOSURE_INIT(&t->finish_keepalive_ping_locked,
|
1532
1698
|
finish_keepalive_ping, t, grpc_schedule_on_exec_ctx),
|
1533
|
-
|
1699
|
+
absl::OkStatus());
|
1534
1700
|
return;
|
1535
1701
|
}
|
1536
1702
|
grpc_closure_list_append(
|
1537
1703
|
&pq->lists[GRPC_CHTTP2_PCL_INITIATE],
|
1538
1704
|
GRPC_CLOSURE_INIT(&t->start_keepalive_ping_locked, start_keepalive_ping,
|
1539
1705
|
t, grpc_schedule_on_exec_ctx),
|
1540
|
-
|
1706
|
+
absl::OkStatus());
|
1541
1707
|
grpc_closure_list_append(
|
1542
1708
|
&pq->lists[GRPC_CHTTP2_PCL_NEXT],
|
1543
1709
|
GRPC_CLOSURE_INIT(&t->finish_keepalive_ping_locked, finish_keepalive_ping,
|
1544
1710
|
t, grpc_schedule_on_exec_ctx),
|
1545
|
-
|
1711
|
+
absl::OkStatus());
|
1546
1712
|
}
|
1547
1713
|
|
1548
|
-
void grpc_chttp2_retry_initiate_ping(
|
1549
|
-
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1714
|
+
void grpc_chttp2_retry_initiate_ping(grpc_chttp2_transport* t) {
|
1550
1715
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->retry_initiate_ping_locked,
|
1551
1716
|
retry_initiate_ping_locked, t, nullptr),
|
1552
|
-
|
1717
|
+
absl::OkStatus());
|
1553
1718
|
}
|
1554
1719
|
|
1555
|
-
static void retry_initiate_ping_locked(void* tp,
|
1720
|
+
static void retry_initiate_ping_locked(void* tp,
|
1721
|
+
GRPC_UNUSED grpc_error_handle error) {
|
1722
|
+
GPR_DEBUG_ASSERT(error.ok());
|
1556
1723
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1557
|
-
t->ping_state.
|
1558
|
-
|
1559
|
-
|
1560
|
-
}
|
1724
|
+
GPR_ASSERT(t->ping_state.delayed_ping_timer_handle.has_value());
|
1725
|
+
t->ping_state.delayed_ping_timer_handle.reset();
|
1726
|
+
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_RETRY_SEND_PING);
|
1561
1727
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "retry_initiate_ping_locked");
|
1562
1728
|
}
|
1563
1729
|
|
@@ -1565,7 +1731,7 @@ void grpc_chttp2_ack_ping(grpc_chttp2_transport* t, uint64_t id) {
|
|
1565
1731
|
grpc_chttp2_ping_queue* pq = &t->ping_queue;
|
1566
1732
|
if (pq->inflight_id != id) {
|
1567
1733
|
gpr_log(GPR_DEBUG, "Unknown ping response from %s: %" PRIx64,
|
1568
|
-
t->peer_string.c_str(), id);
|
1734
|
+
std::string(t->peer_string.as_string_view()).c_str(), id);
|
1569
1735
|
return;
|
1570
1736
|
}
|
1571
1737
|
grpc_core::ExecCtx::RunList(DEBUG_LOCATION,
|
@@ -1580,7 +1746,7 @@ namespace {
|
|
1580
1746
|
// Fire and forget (deletes itself on completion). Does a graceful shutdown by
|
1581
1747
|
// sending a GOAWAY frame with the last stream id set to 2^31-1, sending a ping
|
1582
1748
|
// and waiting for an ack (effective waiting for an RTT) and then sending a
|
1583
|
-
// final GOAWAY
|
1749
|
+
// final GOAWAY frame with an updated last stream identifier. This helps ensure
|
1584
1750
|
// that a connection can be cleanly shut down without losing requests.
|
1585
1751
|
// In the event, that the client does not respond to the ping for some reason,
|
1586
1752
|
// we add a 20 second deadline, after which we send the second goaway.
|
@@ -1593,6 +1759,8 @@ class GracefulGoaway : public grpc_core::RefCounted<GracefulGoaway> {
|
|
1593
1759
|
}
|
1594
1760
|
|
1595
1761
|
private:
|
1762
|
+
using TaskHandle = ::grpc_event_engine::experimental::EventEngine::TaskHandle;
|
1763
|
+
|
1596
1764
|
explicit GracefulGoaway(grpc_chttp2_transport* t) : t_(t) {
|
1597
1765
|
t->sent_goaway_state = GRPC_CHTTP2_GRACEFUL_GOAWAY;
|
1598
1766
|
GRPC_CHTTP2_REF_TRANSPORT(t_, "graceful goaway");
|
@@ -1600,10 +1768,17 @@ class GracefulGoaway : public grpc_core::RefCounted<GracefulGoaway> {
|
|
1600
1768
|
send_ping_locked(
|
1601
1769
|
t, nullptr, GRPC_CLOSURE_INIT(&on_ping_ack_, OnPingAck, this, nullptr));
|
1602
1770
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_GOAWAY_SENT);
|
1603
|
-
|
1604
|
-
|
1605
|
-
|
1606
|
-
|
1771
|
+
timer_handle_ = t_->event_engine->RunAfter(
|
1772
|
+
grpc_core::Duration::Seconds(20),
|
1773
|
+
[self = Ref(DEBUG_LOCATION, "GoawayTimer")]() mutable {
|
1774
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
1775
|
+
grpc_core::ExecCtx exec_ctx;
|
1776
|
+
// The ref will be unreffed in the combiner.
|
1777
|
+
auto* ptr = self.release();
|
1778
|
+
ptr->t_->combiner->Run(
|
1779
|
+
GRPC_CLOSURE_INIT(&ptr->on_timer_, OnTimerLocked, ptr, nullptr),
|
1780
|
+
absl::OkStatus());
|
1781
|
+
});
|
1607
1782
|
}
|
1608
1783
|
|
1609
1784
|
void MaybeSendFinalGoawayLocked() {
|
@@ -1611,12 +1786,13 @@ class GracefulGoaway : public grpc_core::RefCounted<GracefulGoaway> {
|
|
1611
1786
|
// We already sent the final GOAWAY.
|
1612
1787
|
return;
|
1613
1788
|
}
|
1614
|
-
if (t_->destroying || !
|
1615
|
-
GRPC_CHTTP2_IF_TRACING(
|
1616
|
-
GPR_INFO,
|
1617
|
-
|
1618
|
-
|
1619
|
-
|
1789
|
+
if (t_->destroying || !t_->closed_with_error.ok()) {
|
1790
|
+
GRPC_CHTTP2_IF_TRACING(
|
1791
|
+
gpr_log(GPR_INFO,
|
1792
|
+
"transport:%p %s peer:%s Transport already shutting down. "
|
1793
|
+
"Graceful GOAWAY abandoned.",
|
1794
|
+
t_, t_->is_client ? "CLIENT" : "SERVER",
|
1795
|
+
std::string(t_->peer_string.as_string_view()).c_str()));
|
1620
1796
|
return;
|
1621
1797
|
}
|
1622
1798
|
// Ping completed. Send final goaway.
|
@@ -1625,7 +1801,8 @@ class GracefulGoaway : public grpc_core::RefCounted<GracefulGoaway> {
|
|
1625
1801
|
"transport:%p %s peer:%s Graceful shutdown: Ping received. "
|
1626
1802
|
"Sending final GOAWAY with stream_id:%d",
|
1627
1803
|
t_, t_->is_client ? "CLIENT" : "SERVER",
|
1628
|
-
t_->peer_string.c_str(),
|
1804
|
+
std::string(t_->peer_string.as_string_view()).c_str(),
|
1805
|
+
t_->last_new_stream_id));
|
1629
1806
|
t_->sent_goaway_state = GRPC_CHTTP2_FINAL_GOAWAY_SEND_SCHEDULED;
|
1630
1807
|
grpc_chttp2_goaway_append(t_->last_new_stream_id, 0, grpc_empty_slice(),
|
1631
1808
|
&t_->qbuf);
|
@@ -1636,36 +1813,30 @@ class GracefulGoaway : public grpc_core::RefCounted<GracefulGoaway> {
|
|
1636
1813
|
auto* self = static_cast<GracefulGoaway*>(arg);
|
1637
1814
|
self->t_->combiner->Run(
|
1638
1815
|
GRPC_CLOSURE_INIT(&self->on_ping_ack_, OnPingAckLocked, self, nullptr),
|
1639
|
-
|
1816
|
+
absl::OkStatus());
|
1640
1817
|
}
|
1641
1818
|
|
1642
1819
|
static void OnPingAckLocked(void* arg, grpc_error_handle /* error */) {
|
1643
1820
|
auto* self = static_cast<GracefulGoaway*>(arg);
|
1644
|
-
|
1821
|
+
if (self->timer_handle_ != TaskHandle::kInvalid) {
|
1822
|
+
self->t_->event_engine->Cancel(
|
1823
|
+
std::exchange(self->timer_handle_, TaskHandle::kInvalid));
|
1824
|
+
}
|
1645
1825
|
self->MaybeSendFinalGoawayLocked();
|
1646
1826
|
self->Unref();
|
1647
1827
|
}
|
1648
1828
|
|
1649
|
-
static void OnTimer(void* arg, grpc_error_handle error) {
|
1650
|
-
auto* self = static_cast<GracefulGoaway*>(arg);
|
1651
|
-
if (!GRPC_ERROR_IS_NONE(error)) {
|
1652
|
-
self->Unref();
|
1653
|
-
return;
|
1654
|
-
}
|
1655
|
-
self->t_->combiner->Run(
|
1656
|
-
GRPC_CLOSURE_INIT(&self->on_timer_, OnTimerLocked, self, nullptr),
|
1657
|
-
GRPC_ERROR_NONE);
|
1658
|
-
}
|
1659
|
-
|
1660
1829
|
static void OnTimerLocked(void* arg, grpc_error_handle /* error */) {
|
1661
1830
|
auto* self = static_cast<GracefulGoaway*>(arg);
|
1831
|
+
// Clearing the handle since the timer has fired and the handle is invalid.
|
1832
|
+
self->timer_handle_ = TaskHandle::kInvalid;
|
1662
1833
|
self->MaybeSendFinalGoawayLocked();
|
1663
1834
|
self->Unref();
|
1664
1835
|
}
|
1665
1836
|
|
1666
1837
|
grpc_chttp2_transport* t_;
|
1667
1838
|
grpc_closure on_ping_ack_;
|
1668
|
-
|
1839
|
+
TaskHandle timer_handle_ = TaskHandle::kInvalid;
|
1669
1840
|
grpc_closure on_timer_;
|
1670
1841
|
};
|
1671
1842
|
|
@@ -1688,8 +1859,9 @@ static void send_goaway(grpc_chttp2_transport* t, grpc_error_handle error,
|
|
1688
1859
|
} else if (t->sent_goaway_state == GRPC_CHTTP2_NO_GOAWAY_SEND ||
|
1689
1860
|
t->sent_goaway_state == GRPC_CHTTP2_GRACEFUL_GOAWAY) {
|
1690
1861
|
// We want to log this irrespective of whether http tracing is enabled
|
1691
|
-
gpr_log(GPR_DEBUG, "%s: Sending goaway err=%s",
|
1692
|
-
|
1862
|
+
gpr_log(GPR_DEBUG, "%s: Sending goaway err=%s",
|
1863
|
+
std::string(t->peer_string.as_string_view()).c_str(),
|
1864
|
+
grpc_core::StatusToString(error).c_str());
|
1693
1865
|
t->sent_goaway_state = GRPC_CHTTP2_FINAL_GOAWAY_SEND_SCHEDULED;
|
1694
1866
|
grpc_chttp2_goaway_append(
|
1695
1867
|
t->last_new_stream_id, static_cast<uint32_t>(http_error),
|
@@ -1698,22 +1870,21 @@ static void send_goaway(grpc_chttp2_transport* t, grpc_error_handle error,
|
|
1698
1870
|
// Final GOAWAY has already been sent.
|
1699
1871
|
}
|
1700
1872
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_GOAWAY_SENT);
|
1701
|
-
GRPC_ERROR_UNREF(error);
|
1702
1873
|
}
|
1703
1874
|
|
1704
1875
|
void grpc_chttp2_add_ping_strike(grpc_chttp2_transport* t) {
|
1705
1876
|
if (++t->ping_recv_state.ping_strikes > t->ping_policy.max_ping_strikes &&
|
1706
1877
|
t->ping_policy.max_ping_strikes != 0) {
|
1707
1878
|
send_goaway(t,
|
1708
|
-
grpc_error_set_int(
|
1709
|
-
|
1710
|
-
|
1879
|
+
grpc_error_set_int(GRPC_ERROR_CREATE("too_many_pings"),
|
1880
|
+
grpc_core::StatusIntProperty::kHttp2Error,
|
1881
|
+
GRPC_HTTP2_ENHANCE_YOUR_CALM),
|
1711
1882
|
/*immediate_disconnect_hint=*/true);
|
1712
1883
|
// The transport will be closed after the write is done
|
1713
1884
|
close_transport_locked(
|
1714
|
-
t, grpc_error_set_int(
|
1715
|
-
|
1716
|
-
|
1885
|
+
t, grpc_error_set_int(GRPC_ERROR_CREATE("Too many pings"),
|
1886
|
+
grpc_core::StatusIntProperty::kRpcStatus,
|
1887
|
+
GRPC_STATUS_UNAVAILABLE));
|
1717
1888
|
}
|
1718
1889
|
}
|
1719
1890
|
|
@@ -1732,7 +1903,7 @@ static void perform_transport_op_locked(void* stream_op,
|
|
1732
1903
|
grpc_chttp2_transport* t =
|
1733
1904
|
static_cast<grpc_chttp2_transport*>(op->handler_private.extra_arg);
|
1734
1905
|
|
1735
|
-
if (!
|
1906
|
+
if (!op->goaway_error.ok()) {
|
1736
1907
|
send_goaway(t, op->goaway_error, /*immediate_disconnect_hint=*/false);
|
1737
1908
|
}
|
1738
1909
|
|
@@ -1762,13 +1933,13 @@ static void perform_transport_op_locked(void* stream_op,
|
|
1762
1933
|
t->state_tracker.RemoveWatcher(op->stop_connectivity_watch);
|
1763
1934
|
}
|
1764
1935
|
|
1765
|
-
if (!
|
1766
|
-
send_goaway(t,
|
1936
|
+
if (!op->disconnect_with_error.ok()) {
|
1937
|
+
send_goaway(t, op->disconnect_with_error,
|
1767
1938
|
/*immediate_disconnect_hint=*/true);
|
1768
1939
|
close_transport_locked(t, op->disconnect_with_error);
|
1769
1940
|
}
|
1770
1941
|
|
1771
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, op->on_consumed,
|
1942
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, op->on_consumed, absl::OkStatus());
|
1772
1943
|
|
1773
1944
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "transport_op");
|
1774
1945
|
}
|
@@ -1783,7 +1954,7 @@ static void perform_transport_op(grpc_transport* gt, grpc_transport_op* op) {
|
|
1783
1954
|
GRPC_CHTTP2_REF_TRANSPORT(t, "transport_op");
|
1784
1955
|
t->combiner->Run(GRPC_CLOSURE_INIT(&op->handler_private.closure,
|
1785
1956
|
perform_transport_op_locked, op, nullptr),
|
1786
|
-
|
1957
|
+
absl::OkStatus());
|
1787
1958
|
}
|
1788
1959
|
|
1789
1960
|
//
|
@@ -1795,10 +1966,11 @@ void grpc_chttp2_maybe_complete_recv_initial_metadata(grpc_chttp2_transport* t,
|
|
1795
1966
|
if (s->recv_initial_metadata_ready != nullptr &&
|
1796
1967
|
s->published_metadata[0] != GRPC_METADATA_NOT_PUBLISHED) {
|
1797
1968
|
if (s->seen_error) {
|
1798
|
-
|
1969
|
+
grpc_slice_buffer_reset_and_unref(&s->frame_storage);
|
1799
1970
|
}
|
1800
1971
|
*s->recv_initial_metadata = std::move(s->initial_metadata_buffer);
|
1801
|
-
s->recv_initial_metadata->Set(grpc_core::PeerString(),
|
1972
|
+
s->recv_initial_metadata->Set(grpc_core::PeerString(),
|
1973
|
+
t->peer_string.Ref());
|
1802
1974
|
// If we didn't receive initial metadata from the wire and instead faked a
|
1803
1975
|
// status (due to stream cancellations for example), let upper layers know
|
1804
1976
|
// that trailing metadata is immediately available.
|
@@ -1818,24 +1990,36 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* t,
|
|
1818
1990
|
|
1819
1991
|
grpc_core::chttp2::StreamFlowControl::IncomingUpdateContext upd(
|
1820
1992
|
&s->flow_control);
|
1821
|
-
grpc_error_handle error
|
1993
|
+
grpc_error_handle error;
|
1822
1994
|
|
1823
1995
|
// Lambda is immediately invoked as a big scoped section that can be
|
1824
1996
|
// exited out of at any point by returning.
|
1825
1997
|
[&]() {
|
1998
|
+
if (grpc_http_trace.enabled()) {
|
1999
|
+
gpr_log(GPR_DEBUG,
|
2000
|
+
"maybe_complete_recv_message %p final_metadata_requested=%d "
|
2001
|
+
"seen_error=%d",
|
2002
|
+
s, s->final_metadata_requested, s->seen_error);
|
2003
|
+
}
|
1826
2004
|
if (s->final_metadata_requested && s->seen_error) {
|
1827
|
-
|
2005
|
+
grpc_slice_buffer_reset_and_unref(&s->frame_storage);
|
1828
2006
|
s->recv_message->reset();
|
1829
2007
|
} else {
|
1830
2008
|
if (s->frame_storage.length != 0) {
|
1831
2009
|
while (true) {
|
1832
2010
|
GPR_ASSERT(s->frame_storage.length > 0);
|
1833
|
-
|
2011
|
+
int64_t min_progress_size;
|
1834
2012
|
auto r = grpc_deframe_unprocessed_incoming_frames(
|
1835
2013
|
s, &min_progress_size, &**s->recv_message, s->recv_message_flags);
|
1836
|
-
if (
|
2014
|
+
if (grpc_http_trace.enabled()) {
|
2015
|
+
gpr_log(GPR_DEBUG, "Deframe data frame: %s",
|
2016
|
+
grpc_core::PollToString(r, [](absl::Status r) {
|
2017
|
+
return r.ToString();
|
2018
|
+
}).c_str());
|
2019
|
+
}
|
2020
|
+
if (r.pending()) {
|
1837
2021
|
if (s->read_closed) {
|
1838
|
-
|
2022
|
+
grpc_slice_buffer_reset_and_unref(&s->frame_storage);
|
1839
2023
|
s->recv_message->reset();
|
1840
2024
|
break;
|
1841
2025
|
} else {
|
@@ -1843,10 +2027,10 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* t,
|
|
1843
2027
|
return; // Out of lambda to enclosing function
|
1844
2028
|
}
|
1845
2029
|
} else {
|
1846
|
-
error =
|
1847
|
-
if (!
|
2030
|
+
error = std::move(r.value());
|
2031
|
+
if (!error.ok()) {
|
1848
2032
|
s->seen_error = true;
|
1849
|
-
|
2033
|
+
grpc_slice_buffer_reset_and_unref(&s->frame_storage);
|
1850
2034
|
break;
|
1851
2035
|
} else {
|
1852
2036
|
if (t->channelz_socket != nullptr) {
|
@@ -1865,7 +2049,7 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* t,
|
|
1865
2049
|
}
|
1866
2050
|
// save the length of the buffer before handing control back to application
|
1867
2051
|
// threads. Needed to support correct flow control bookkeeping
|
1868
|
-
if (
|
2052
|
+
if (error.ok() && s->recv_message->has_value()) {
|
1869
2053
|
null_then_sched_closure(&s->recv_message_ready);
|
1870
2054
|
} else if (s->published_metadata[1] != GRPC_METADATA_NOT_PUBLISHED) {
|
1871
2055
|
if (s->call_failed_before_recv_message != nullptr) {
|
@@ -1874,7 +2058,6 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* t,
|
|
1874
2058
|
}
|
1875
2059
|
null_then_sched_closure(&s->recv_message_ready);
|
1876
2060
|
}
|
1877
|
-
GRPC_ERROR_UNREF(error);
|
1878
2061
|
}();
|
1879
2062
|
|
1880
2063
|
upd.SetPendingSize(s->frame_storage.length);
|
@@ -1884,17 +2067,24 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* t,
|
|
1884
2067
|
void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
|
1885
2068
|
grpc_chttp2_stream* s) {
|
1886
2069
|
grpc_chttp2_maybe_complete_recv_message(t, s);
|
2070
|
+
if (grpc_http_trace.enabled()) {
|
2071
|
+
gpr_log(GPR_DEBUG,
|
2072
|
+
"maybe_complete_recv_trailing_metadata cli=%d s=%p closure=%p "
|
2073
|
+
"read_closed=%d "
|
2074
|
+
"write_closed=%d %" PRIdPTR,
|
2075
|
+
t->is_client, s, s->recv_trailing_metadata_finished, s->read_closed,
|
2076
|
+
s->write_closed, s->frame_storage.length);
|
2077
|
+
}
|
1887
2078
|
if (s->recv_trailing_metadata_finished != nullptr && s->read_closed &&
|
1888
2079
|
s->write_closed) {
|
1889
2080
|
if (s->seen_error || !t->is_client) {
|
1890
|
-
|
2081
|
+
grpc_slice_buffer_reset_and_unref(&s->frame_storage);
|
1891
2082
|
}
|
1892
2083
|
if (s->read_closed && s->frame_storage.length == 0 &&
|
1893
2084
|
s->recv_trailing_metadata_finished != nullptr) {
|
1894
2085
|
grpc_transport_move_stats(&s->stats, s->collecting_stats);
|
1895
2086
|
s->collecting_stats = nullptr;
|
1896
2087
|
*s->recv_trailing_metadata = std::move(s->trailing_metadata_buffer);
|
1897
|
-
s->recv_trailing_metadata->Set(grpc_core::PeerString(), t->peer_string);
|
1898
2088
|
null_then_sched_closure(&s->recv_trailing_metadata_finished);
|
1899
2089
|
}
|
1900
2090
|
}
|
@@ -1914,7 +2104,7 @@ static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
|
1914
2104
|
post_benign_reclaimer(t);
|
1915
2105
|
if (t->sent_goaway_state == GRPC_CHTTP2_FINAL_GOAWAY_SENT) {
|
1916
2106
|
close_transport_locked(
|
1917
|
-
t,
|
2107
|
+
t, GRPC_ERROR_CREATE_REFERENCING(
|
1918
2108
|
"Last stream closed after sending GOAWAY", &error, 1));
|
1919
2109
|
}
|
1920
2110
|
}
|
@@ -1924,8 +2114,6 @@ static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
|
1924
2114
|
grpc_chttp2_list_remove_stalled_by_stream(t, s);
|
1925
2115
|
grpc_chttp2_list_remove_stalled_by_transport(t, s);
|
1926
2116
|
|
1927
|
-
GRPC_ERROR_UNREF(error);
|
1928
|
-
|
1929
2117
|
maybe_start_some_streams(t);
|
1930
2118
|
}
|
1931
2119
|
|
@@ -1947,7 +2135,7 @@ void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
1947
2135
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_RST_STREAM);
|
1948
2136
|
}
|
1949
2137
|
}
|
1950
|
-
if (!
|
2138
|
+
if (!due_to_error.ok() && !s->seen_error) {
|
1951
2139
|
s->seen_error = true;
|
1952
2140
|
}
|
1953
2141
|
grpc_chttp2_mark_stream_closed(t, s, 1, 1, due_to_error);
|
@@ -1969,7 +2157,8 @@ void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
1969
2157
|
// what we want - which is safe because we haven't told anyone
|
1970
2158
|
// about the metadata yet
|
1971
2159
|
if (s->published_metadata[1] == GRPC_METADATA_NOT_PUBLISHED ||
|
1972
|
-
s->recv_trailing_metadata_finished != nullptr
|
2160
|
+
s->recv_trailing_metadata_finished != nullptr ||
|
2161
|
+
!s->final_metadata_requested) {
|
1973
2162
|
s->trailing_metadata_buffer.Set(grpc_core::GrpcStatusMetadata(), status);
|
1974
2163
|
if (!message.empty()) {
|
1975
2164
|
s->trailing_metadata_buffer.Set(
|
@@ -1979,13 +2168,11 @@ void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
1979
2168
|
s->published_metadata[1] = GRPC_METADATA_SYNTHESIZED_FROM_FAKE;
|
1980
2169
|
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
|
1981
2170
|
}
|
1982
|
-
|
1983
|
-
GRPC_ERROR_UNREF(error);
|
1984
2171
|
}
|
1985
2172
|
|
1986
2173
|
static void add_error(grpc_error_handle error, grpc_error_handle* refs,
|
1987
2174
|
size_t* nrefs) {
|
1988
|
-
if (
|
2175
|
+
if (error.ok()) return;
|
1989
2176
|
for (size_t i = 0; i < *nrefs; i++) {
|
1990
2177
|
if (error == refs[i]) {
|
1991
2178
|
return;
|
@@ -2003,12 +2190,10 @@ static grpc_error_handle removal_error(grpc_error_handle extra_error,
|
|
2003
2190
|
add_error(s->read_closed_error, refs, &nrefs);
|
2004
2191
|
add_error(s->write_closed_error, refs, &nrefs);
|
2005
2192
|
add_error(extra_error, refs, &nrefs);
|
2006
|
-
grpc_error_handle error
|
2193
|
+
grpc_error_handle error;
|
2007
2194
|
if (nrefs > 0) {
|
2008
|
-
error =
|
2009
|
-
refs, nrefs);
|
2195
|
+
error = GRPC_ERROR_CREATE_REFERENCING(main_error_msg, refs, nrefs);
|
2010
2196
|
}
|
2011
|
-
GRPC_ERROR_UNREF(extra_error);
|
2012
2197
|
return error;
|
2013
2198
|
}
|
2014
2199
|
|
@@ -2018,12 +2203,11 @@ static void flush_write_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2018
2203
|
while (*list) {
|
2019
2204
|
grpc_chttp2_write_cb* cb = *list;
|
2020
2205
|
*list = cb->next;
|
2021
|
-
grpc_chttp2_complete_closure_step(t, s, &cb->closure,
|
2206
|
+
grpc_chttp2_complete_closure_step(t, s, &cb->closure, error,
|
2022
2207
|
"on_write_finished_cb");
|
2023
2208
|
cb->next = t->write_cb_pool;
|
2024
2209
|
t->write_cb_pool = cb;
|
2025
2210
|
}
|
2026
|
-
GRPC_ERROR_UNREF(error);
|
2027
2211
|
}
|
2028
2212
|
|
2029
2213
|
void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
@@ -2033,29 +2217,34 @@ void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
|
2033
2217
|
removal_error(error, s, "Pending writes failed due to stream closure");
|
2034
2218
|
s->send_initial_metadata = nullptr;
|
2035
2219
|
grpc_chttp2_complete_closure_step(t, s, &s->send_initial_metadata_finished,
|
2036
|
-
|
2037
|
-
"send_initial_metadata_finished");
|
2220
|
+
error, "send_initial_metadata_finished");
|
2038
2221
|
|
2039
2222
|
s->send_trailing_metadata = nullptr;
|
2040
2223
|
s->sent_trailing_metadata_op = nullptr;
|
2041
2224
|
grpc_chttp2_complete_closure_step(t, s, &s->send_trailing_metadata_finished,
|
2042
|
-
|
2043
|
-
"send_trailing_metadata_finished");
|
2225
|
+
error, "send_trailing_metadata_finished");
|
2044
2226
|
|
2045
|
-
grpc_chttp2_complete_closure_step(t, s, &s->send_message_finished,
|
2046
|
-
GRPC_ERROR_REF(error),
|
2227
|
+
grpc_chttp2_complete_closure_step(t, s, &s->send_message_finished, error,
|
2047
2228
|
"fetching_send_message_finished");
|
2048
|
-
flush_write_list(t, s, &s->on_write_finished_cbs,
|
2229
|
+
flush_write_list(t, s, &s->on_write_finished_cbs, error);
|
2049
2230
|
flush_write_list(t, s, &s->on_flow_controlled_cbs, error);
|
2050
2231
|
}
|
2051
2232
|
|
2052
2233
|
void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
2053
2234
|
grpc_chttp2_stream* s, int close_reads,
|
2054
2235
|
int close_writes, grpc_error_handle error) {
|
2236
|
+
if (grpc_http_trace.enabled()) {
|
2237
|
+
gpr_log(
|
2238
|
+
GPR_DEBUG, "MARK_STREAM_CLOSED: t=%p s=%p(id=%d) %s [%s]", t, s, s->id,
|
2239
|
+
(close_reads && close_writes)
|
2240
|
+
? "read+write"
|
2241
|
+
: (close_reads ? "read" : (close_writes ? "write" : "nothing??")),
|
2242
|
+
error.ToString().c_str());
|
2243
|
+
}
|
2055
2244
|
if (s->read_closed && s->write_closed) {
|
2056
2245
|
// already closed, but we should still fake the status if needed.
|
2057
2246
|
grpc_error_handle overall_error = removal_error(error, s, "Stream removed");
|
2058
|
-
if (!
|
2247
|
+
if (!overall_error.ok()) {
|
2059
2248
|
grpc_chttp2_fake_status(t, s, overall_error);
|
2060
2249
|
}
|
2061
2250
|
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
|
@@ -2064,26 +2253,25 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2064
2253
|
bool closed_read = false;
|
2065
2254
|
bool became_closed = false;
|
2066
2255
|
if (close_reads && !s->read_closed) {
|
2067
|
-
s->read_closed_error =
|
2256
|
+
s->read_closed_error = error;
|
2068
2257
|
s->read_closed = true;
|
2069
2258
|
closed_read = true;
|
2070
2259
|
}
|
2071
2260
|
if (close_writes && !s->write_closed) {
|
2072
|
-
s->write_closed_error =
|
2261
|
+
s->write_closed_error = error;
|
2073
2262
|
s->write_closed = true;
|
2074
|
-
grpc_chttp2_fail_pending_writes(t, s,
|
2263
|
+
grpc_chttp2_fail_pending_writes(t, s, error);
|
2075
2264
|
}
|
2076
2265
|
if (s->read_closed && s->write_closed) {
|
2077
2266
|
became_closed = true;
|
2078
|
-
grpc_error_handle overall_error =
|
2079
|
-
removal_error(GRPC_ERROR_REF(error), s, "Stream removed");
|
2267
|
+
grpc_error_handle overall_error = removal_error(error, s, "Stream removed");
|
2080
2268
|
if (s->id != 0) {
|
2081
|
-
remove_stream(t, s->id,
|
2269
|
+
remove_stream(t, s->id, overall_error);
|
2082
2270
|
} else {
|
2083
2271
|
// Purge streams waiting on concurrency still waiting for id assignment
|
2084
2272
|
grpc_chttp2_list_remove_waiting_for_concurrency(t, s);
|
2085
2273
|
}
|
2086
|
-
if (!
|
2274
|
+
if (!overall_error.ok()) {
|
2087
2275
|
grpc_chttp2_fake_status(t, s, overall_error);
|
2088
2276
|
}
|
2089
2277
|
}
|
@@ -2097,10 +2285,11 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2097
2285
|
grpc_chttp2_maybe_complete_recv_message(t, s);
|
2098
2286
|
}
|
2099
2287
|
if (became_closed) {
|
2288
|
+
s->stats.latency =
|
2289
|
+
gpr_time_sub(gpr_now(GPR_CLOCK_MONOTONIC), s->creation_time);
|
2100
2290
|
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
|
2101
2291
|
GRPC_CHTTP2_STREAM_UNREF(s, "chttp2");
|
2102
2292
|
}
|
2103
|
-
GRPC_ERROR_UNREF(error);
|
2104
2293
|
}
|
2105
2294
|
|
2106
2295
|
static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
@@ -2183,8 +2372,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2183
2372
|
|
2184
2373
|
status_hdr = GRPC_SLICE_MALLOC(15 + (grpc_status >= 10));
|
2185
2374
|
p = GRPC_SLICE_START_PTR(status_hdr);
|
2186
|
-
*p++ = 0x00;
|
2187
|
-
*p++ = 11;
|
2375
|
+
*p++ = 0x00; // literal header, not indexed
|
2376
|
+
*p++ = 11; // len(grpc-status)
|
2188
2377
|
*p++ = 'g';
|
2189
2378
|
*p++ = 'r';
|
2190
2379
|
*p++ = 'p';
|
@@ -2209,11 +2398,11 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2209
2398
|
|
2210
2399
|
size_t msg_len = message.length();
|
2211
2400
|
GPR_ASSERT(msg_len <= UINT32_MAX);
|
2212
|
-
grpc_core::VarintWriter<1> msg_len_writer(msg_len);
|
2401
|
+
grpc_core::VarintWriter<1> msg_len_writer(static_cast<uint32_t>(msg_len));
|
2213
2402
|
message_pfx = GRPC_SLICE_MALLOC(14 + msg_len_writer.length());
|
2214
2403
|
p = GRPC_SLICE_START_PTR(message_pfx);
|
2215
|
-
*p++ = 0x00;
|
2216
|
-
*p++ = 12;
|
2404
|
+
*p++ = 0x00; // literal header, not indexed
|
2405
|
+
*p++ = 12; // len(grpc-message)
|
2217
2406
|
*p++ = 'g';
|
2218
2407
|
*p++ = 'r';
|
2219
2408
|
*p++ = 'p';
|
@@ -2270,7 +2459,7 @@ struct cancel_stream_cb_args {
|
|
2270
2459
|
static void cancel_stream_cb(void* user_data, uint32_t /*key*/, void* stream) {
|
2271
2460
|
cancel_stream_cb_args* args = static_cast<cancel_stream_cb_args*>(user_data);
|
2272
2461
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(stream);
|
2273
|
-
grpc_chttp2_cancel_stream(args->t, s,
|
2462
|
+
grpc_chttp2_cancel_stream(args->t, s, args->error);
|
2274
2463
|
}
|
2275
2464
|
|
2276
2465
|
static void end_all_the_calls(grpc_chttp2_transport* t,
|
@@ -2278,14 +2467,14 @@ static void end_all_the_calls(grpc_chttp2_transport* t,
|
|
2278
2467
|
intptr_t http2_error;
|
2279
2468
|
// If there is no explicit grpc or HTTP/2 error, set to UNAVAILABLE on server.
|
2280
2469
|
if (!t->is_client && !grpc_error_has_clear_grpc_status(error) &&
|
2281
|
-
!grpc_error_get_int(error,
|
2282
|
-
|
2470
|
+
!grpc_error_get_int(error, grpc_core::StatusIntProperty::kHttp2Error,
|
2471
|
+
&http2_error)) {
|
2472
|
+
error = grpc_error_set_int(error, grpc_core::StatusIntProperty::kRpcStatus,
|
2283
2473
|
GRPC_STATUS_UNAVAILABLE);
|
2284
2474
|
}
|
2285
|
-
cancel_unstarted_streams(t,
|
2475
|
+
cancel_unstarted_streams(t, error);
|
2286
2476
|
cancel_stream_cb_args args = {error, t};
|
2287
2477
|
grpc_chttp2_stream_map_for_each(&t->stream_map, cancel_stream_cb, &args);
|
2288
|
-
GRPC_ERROR_UNREF(error);
|
2289
2478
|
}
|
2290
2479
|
|
2291
2480
|
//
|
@@ -2330,31 +2519,39 @@ void grpc_chttp2_act_on_flowctl_action(
|
|
2330
2519
|
queue_setting_update(t, GRPC_CHTTP2_SETTINGS_MAX_FRAME_SIZE,
|
2331
2520
|
action.max_frame_size());
|
2332
2521
|
});
|
2522
|
+
if (t->enable_preferred_rx_crypto_frame_advertisement) {
|
2523
|
+
WithUrgency(
|
2524
|
+
t, action.preferred_rx_crypto_frame_size_update(),
|
2525
|
+
GRPC_CHTTP2_INITIATE_WRITE_SEND_SETTINGS, [t, &action]() {
|
2526
|
+
queue_setting_update(
|
2527
|
+
t, GRPC_CHTTP2_SETTINGS_GRPC_PREFERRED_RECEIVE_CRYPTO_FRAME_SIZE,
|
2528
|
+
action.preferred_rx_crypto_frame_size());
|
2529
|
+
});
|
2530
|
+
}
|
2333
2531
|
}
|
2334
2532
|
|
2335
2533
|
static grpc_error_handle try_http_parsing(grpc_chttp2_transport* t) {
|
2336
2534
|
grpc_http_parser parser;
|
2337
2535
|
size_t i = 0;
|
2338
|
-
grpc_error_handle error
|
2536
|
+
grpc_error_handle error;
|
2339
2537
|
grpc_http_response response;
|
2340
2538
|
|
2341
2539
|
grpc_http_parser_init(&parser, GRPC_HTTP_RESPONSE, &response);
|
2342
2540
|
|
2343
|
-
grpc_error_handle parse_error
|
2344
|
-
for (; i < t->read_buffer.count &&
|
2541
|
+
grpc_error_handle parse_error;
|
2542
|
+
for (; i < t->read_buffer.count && parse_error.ok(); i++) {
|
2345
2543
|
parse_error =
|
2346
2544
|
grpc_http_parser_parse(&parser, t->read_buffer.slices[i], nullptr);
|
2347
2545
|
}
|
2348
|
-
if (
|
2349
|
-
(parse_error = grpc_http_parser_eof(&parser)) ==
|
2546
|
+
if (parse_error.ok() &&
|
2547
|
+
(parse_error = grpc_http_parser_eof(&parser)) == absl::OkStatus()) {
|
2350
2548
|
error = grpc_error_set_int(
|
2351
|
-
grpc_error_set_int(
|
2352
|
-
|
2353
|
-
|
2354
|
-
|
2549
|
+
grpc_error_set_int(
|
2550
|
+
GRPC_ERROR_CREATE("Trying to connect an http1.x server"),
|
2551
|
+
grpc_core::StatusIntProperty::kHttpStatus, response.status),
|
2552
|
+
grpc_core::StatusIntProperty::kRpcStatus,
|
2355
2553
|
grpc_http2_status_to_grpc_status(response.status));
|
2356
2554
|
}
|
2357
|
-
GRPC_ERROR_UNREF(parse_error);
|
2358
2555
|
|
2359
2556
|
grpc_http_parser_destroy(&parser);
|
2360
2557
|
grpc_http_response_destroy(&response);
|
@@ -2365,38 +2562,29 @@ static void read_action(void* tp, grpc_error_handle error) {
|
|
2365
2562
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2366
2563
|
t->combiner->Run(
|
2367
2564
|
GRPC_CLOSURE_INIT(&t->read_action_locked, read_action_locked, t, nullptr),
|
2368
|
-
|
2565
|
+
error);
|
2369
2566
|
}
|
2370
2567
|
|
2371
2568
|
static void read_action_locked(void* tp, grpc_error_handle error) {
|
2372
2569
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2373
2570
|
|
2374
|
-
(void)GRPC_ERROR_REF(error);
|
2375
|
-
|
2376
2571
|
grpc_error_handle err = error;
|
2377
|
-
if (!
|
2378
|
-
err = grpc_error_set_int(
|
2379
|
-
|
2380
|
-
|
2381
|
-
t->write_state);
|
2572
|
+
if (!err.ok()) {
|
2573
|
+
err = grpc_error_set_int(
|
2574
|
+
GRPC_ERROR_CREATE_REFERENCING("Endpoint read failed", &err, 1),
|
2575
|
+
grpc_core::StatusIntProperty::kOccurredDuringWrite, t->write_state);
|
2382
2576
|
}
|
2383
2577
|
std::swap(err, error);
|
2384
|
-
|
2385
|
-
if (GRPC_ERROR_IS_NONE(t->closed_with_error)) {
|
2578
|
+
if (t->closed_with_error.ok()) {
|
2386
2579
|
size_t i = 0;
|
2387
|
-
grpc_error_handle errors[3] = {
|
2388
|
-
|
2389
|
-
for (; i < t->read_buffer.count && errors[1] == GRPC_ERROR_NONE; i++) {
|
2580
|
+
grpc_error_handle errors[3] = {error, absl::OkStatus(), absl::OkStatus()};
|
2581
|
+
for (; i < t->read_buffer.count && errors[1] == absl::OkStatus(); i++) {
|
2390
2582
|
errors[1] = grpc_chttp2_perform_read(t, t->read_buffer.slices[i]);
|
2391
2583
|
}
|
2392
|
-
if (errors[1] !=
|
2584
|
+
if (errors[1] != absl::OkStatus()) {
|
2393
2585
|
errors[2] = try_http_parsing(t);
|
2394
|
-
|
2395
|
-
|
2396
|
-
"Failed parsing HTTP/2", errors, GPR_ARRAY_SIZE(errors));
|
2397
|
-
}
|
2398
|
-
for (i = 0; i < GPR_ARRAY_SIZE(errors); i++) {
|
2399
|
-
GRPC_ERROR_UNREF(errors[i]);
|
2586
|
+
error = GRPC_ERROR_CREATE_REFERENCING("Failed parsing HTTP/2", errors,
|
2587
|
+
GPR_ARRAY_SIZE(errors));
|
2400
2588
|
}
|
2401
2589
|
|
2402
2590
|
if (t->initial_window_update != 0) {
|
@@ -2413,27 +2601,27 @@ static void read_action_locked(void* tp, grpc_error_handle error) {
|
|
2413
2601
|
}
|
2414
2602
|
|
2415
2603
|
bool keep_reading = false;
|
2416
|
-
if (
|
2417
|
-
error =
|
2418
|
-
|
2604
|
+
if (error.ok() && !t->closed_with_error.ok()) {
|
2605
|
+
error = GRPC_ERROR_CREATE_REFERENCING("Transport closed",
|
2606
|
+
&t->closed_with_error, 1);
|
2419
2607
|
}
|
2420
|
-
if (!
|
2608
|
+
if (!error.ok()) {
|
2421
2609
|
// If a goaway frame was received, this might be the reason why the read
|
2422
2610
|
// failed. Add this info to the error
|
2423
|
-
if (!
|
2424
|
-
error = grpc_error_add_child(error,
|
2611
|
+
if (!t->goaway_error.ok()) {
|
2612
|
+
error = grpc_error_add_child(error, t->goaway_error);
|
2425
2613
|
}
|
2426
2614
|
|
2427
|
-
close_transport_locked(t,
|
2615
|
+
close_transport_locked(t, error);
|
2428
2616
|
t->endpoint_reading = 0;
|
2429
|
-
} else if (
|
2617
|
+
} else if (t->closed_with_error.ok()) {
|
2430
2618
|
keep_reading = true;
|
2431
2619
|
// Since we have read a byte, reset the keepalive timer
|
2432
2620
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_WAITING) {
|
2433
|
-
|
2621
|
+
maybe_reset_keepalive_ping_timer_locked(t);
|
2434
2622
|
}
|
2435
2623
|
}
|
2436
|
-
|
2624
|
+
grpc_slice_buffer_reset_and_unref(&t->read_buffer);
|
2437
2625
|
|
2438
2626
|
if (keep_reading) {
|
2439
2627
|
if (t->num_pending_induced_frames >= DEFAULT_MAX_PENDING_INDUCED_FRAMES) {
|
@@ -2449,12 +2637,10 @@ static void read_action_locked(void* tp, grpc_error_handle error) {
|
|
2449
2637
|
} else {
|
2450
2638
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "reading_action");
|
2451
2639
|
}
|
2452
|
-
|
2453
|
-
GRPC_ERROR_UNREF(error);
|
2454
2640
|
}
|
2455
2641
|
|
2456
2642
|
static void continue_read_action_locked(grpc_chttp2_transport* t) {
|
2457
|
-
const bool urgent = !
|
2643
|
+
const bool urgent = !t->goaway_error.ok();
|
2458
2644
|
GRPC_CLOSURE_INIT(&t->read_action_locked, read_action, t,
|
2459
2645
|
grpc_schedule_on_exec_ctx);
|
2460
2646
|
grpc_endpoint_read(t->ep, &t->read_buffer, &t->read_action_locked, urgent,
|
@@ -2478,21 +2664,22 @@ static void start_bdp_ping(void* tp, grpc_error_handle error) {
|
|
2478
2664
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2479
2665
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_bdp_ping_locked,
|
2480
2666
|
start_bdp_ping_locked, t, nullptr),
|
2481
|
-
|
2667
|
+
error);
|
2482
2668
|
}
|
2483
2669
|
|
2484
2670
|
static void start_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2485
2671
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2486
2672
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2487
|
-
gpr_log(GPR_INFO, "%s: Start BDP ping err=%s",
|
2488
|
-
|
2673
|
+
gpr_log(GPR_INFO, "%s: Start BDP ping err=%s",
|
2674
|
+
std::string(t->peer_string.as_string_view()).c_str(),
|
2675
|
+
grpc_core::StatusToString(error).c_str());
|
2489
2676
|
}
|
2490
|
-
if (!
|
2677
|
+
if (!error.ok() || !t->closed_with_error.ok()) {
|
2491
2678
|
return;
|
2492
2679
|
}
|
2493
2680
|
// Reset the keepalive ping timer
|
2494
2681
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_WAITING) {
|
2495
|
-
|
2682
|
+
maybe_reset_keepalive_ping_timer_locked(t);
|
2496
2683
|
}
|
2497
2684
|
t->flow_control.bdp_estimator()->StartPing();
|
2498
2685
|
t->bdp_ping_started = true;
|
@@ -2502,16 +2689,17 @@ static void finish_bdp_ping(void* tp, grpc_error_handle error) {
|
|
2502
2689
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2503
2690
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_bdp_ping_locked,
|
2504
2691
|
finish_bdp_ping_locked, t, nullptr),
|
2505
|
-
|
2692
|
+
error);
|
2506
2693
|
}
|
2507
2694
|
|
2508
2695
|
static void finish_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2509
2696
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2510
2697
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2511
|
-
gpr_log(GPR_INFO, "%s: Complete BDP ping err=%s",
|
2512
|
-
|
2698
|
+
gpr_log(GPR_INFO, "%s: Complete BDP ping err=%s",
|
2699
|
+
std::string(t->peer_string.as_string_view()).c_str(),
|
2700
|
+
grpc_core::StatusToString(error).c_str());
|
2513
2701
|
}
|
2514
|
-
if (!
|
2702
|
+
if (!error.ok() || !t->closed_with_error.ok()) {
|
2515
2703
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "bdp_ping");
|
2516
2704
|
return;
|
2517
2705
|
}
|
@@ -2520,7 +2708,7 @@ static void finish_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
|
2520
2708
|
// finish_bdp_ping_locked to be run later.
|
2521
2709
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_bdp_ping_locked,
|
2522
2710
|
finish_bdp_ping_locked, t, nullptr),
|
2523
|
-
|
2711
|
+
error);
|
2524
2712
|
return;
|
2525
2713
|
}
|
2526
2714
|
t->bdp_ping_started = false;
|
@@ -2528,31 +2716,28 @@ static void finish_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
|
2528
2716
|
t->flow_control.bdp_estimator()->CompletePing();
|
2529
2717
|
grpc_chttp2_act_on_flowctl_action(t->flow_control.PeriodicUpdate(), t,
|
2530
2718
|
nullptr);
|
2531
|
-
GPR_ASSERT(!t->
|
2532
|
-
t->
|
2533
|
-
|
2534
|
-
|
2535
|
-
|
2536
|
-
|
2719
|
+
GPR_ASSERT(!t->next_bdp_ping_timer_handle.has_value());
|
2720
|
+
t->next_bdp_ping_timer_handle =
|
2721
|
+
t->event_engine->RunAfter(next_ping - grpc_core::Timestamp::Now(), [t] {
|
2722
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
2723
|
+
grpc_core::ExecCtx exec_ctx;
|
2724
|
+
next_bdp_ping_timer_expired(t);
|
2725
|
+
});
|
2537
2726
|
}
|
2538
2727
|
|
2539
|
-
static void next_bdp_ping_timer_expired(
|
2540
|
-
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2728
|
+
static void next_bdp_ping_timer_expired(grpc_chttp2_transport* t) {
|
2541
2729
|
t->combiner->Run(
|
2542
2730
|
GRPC_CLOSURE_INIT(&t->next_bdp_ping_timer_expired_locked,
|
2543
2731
|
next_bdp_ping_timer_expired_locked, t, nullptr),
|
2544
|
-
|
2732
|
+
absl::OkStatus());
|
2545
2733
|
}
|
2546
2734
|
|
2547
|
-
static void next_bdp_ping_timer_expired_locked(
|
2548
|
-
|
2735
|
+
static void next_bdp_ping_timer_expired_locked(
|
2736
|
+
void* tp, GRPC_UNUSED grpc_error_handle error) {
|
2737
|
+
GPR_DEBUG_ASSERT(error.ok());
|
2549
2738
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2550
|
-
GPR_ASSERT(t->
|
2551
|
-
t->
|
2552
|
-
if (!GRPC_ERROR_IS_NONE(error)) {
|
2553
|
-
GRPC_CHTTP2_UNREF_TRANSPORT(t, "bdp_ping");
|
2554
|
-
return;
|
2555
|
-
}
|
2739
|
+
GPR_ASSERT(t->next_bdp_ping_timer_handle.has_value());
|
2740
|
+
t->next_bdp_ping_timer_handle.reset();
|
2556
2741
|
if (t->flow_control.bdp_estimator()->accumulator() == 0) {
|
2557
2742
|
// Block the bdp ping till we receive more data.
|
2558
2743
|
t->bdp_ping_blocked = true;
|
@@ -2621,47 +2806,37 @@ void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
|
|
2621
2806
|
}
|
2622
2807
|
}
|
2623
2808
|
|
2624
|
-
static void init_keepalive_ping(
|
2625
|
-
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2809
|
+
static void init_keepalive_ping(grpc_chttp2_transport* t) {
|
2626
2810
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->init_keepalive_ping_locked,
|
2627
2811
|
init_keepalive_ping_locked, t, nullptr),
|
2628
|
-
|
2812
|
+
absl::OkStatus());
|
2629
2813
|
}
|
2630
2814
|
|
2631
|
-
static void init_keepalive_ping_locked(void* arg,
|
2815
|
+
static void init_keepalive_ping_locked(void* arg,
|
2816
|
+
GRPC_UNUSED grpc_error_handle error) {
|
2817
|
+
GPR_DEBUG_ASSERT(error.ok());
|
2632
2818
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2633
2819
|
GPR_ASSERT(t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_WAITING);
|
2634
|
-
|
2820
|
+
GPR_ASSERT(t->keepalive_ping_timer_handle.has_value());
|
2821
|
+
t->keepalive_ping_timer_handle.reset();
|
2822
|
+
if (t->destroying || !t->closed_with_error.ok()) {
|
2635
2823
|
t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_DYING;
|
2636
|
-
} else
|
2824
|
+
} else {
|
2637
2825
|
if (t->keepalive_permit_without_calls ||
|
2638
2826
|
grpc_chttp2_stream_map_size(&t->stream_map) > 0) {
|
2639
2827
|
t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_PINGING;
|
2640
2828
|
GRPC_CHTTP2_REF_TRANSPORT(t, "keepalive ping end");
|
2641
|
-
grpc_timer_init_unset(&t->keepalive_watchdog_timer);
|
2642
2829
|
send_keepalive_ping_locked(t);
|
2643
2830
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_KEEPALIVE_PING);
|
2644
2831
|
} else {
|
2645
2832
|
GRPC_CHTTP2_REF_TRANSPORT(t, "init keepalive ping");
|
2646
|
-
|
2647
|
-
|
2648
|
-
|
2649
|
-
|
2650
|
-
|
2651
|
-
|
2652
|
-
} else if (error == GRPC_ERROR_CANCELLED) {
|
2653
|
-
// The keepalive ping timer may be cancelled by bdp
|
2654
|
-
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
|
2655
|
-
GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
|
2656
|
-
gpr_log(GPR_INFO, "%s: Keepalive ping cancelled. Resetting timer.",
|
2657
|
-
t->peer_string.c_str());
|
2833
|
+
t->keepalive_ping_timer_handle =
|
2834
|
+
t->event_engine->RunAfter(t->keepalive_time, [t] {
|
2835
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
2836
|
+
grpc_core::ExecCtx exec_ctx;
|
2837
|
+
init_keepalive_ping(t);
|
2838
|
+
});
|
2658
2839
|
}
|
2659
|
-
GRPC_CHTTP2_REF_TRANSPORT(t, "init keepalive ping");
|
2660
|
-
GRPC_CLOSURE_INIT(&t->init_keepalive_ping_locked, init_keepalive_ping, t,
|
2661
|
-
grpc_schedule_on_exec_ctx);
|
2662
|
-
grpc_timer_init(&t->keepalive_ping_timer,
|
2663
|
-
grpc_core::Timestamp::Now() + t->keepalive_time,
|
2664
|
-
&t->init_keepalive_ping_locked);
|
2665
2840
|
}
|
2666
2841
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "init keepalive ping");
|
2667
2842
|
}
|
@@ -2670,12 +2845,12 @@ static void start_keepalive_ping(void* arg, grpc_error_handle error) {
|
|
2670
2845
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2671
2846
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_keepalive_ping_locked,
|
2672
2847
|
start_keepalive_ping_locked, t, nullptr),
|
2673
|
-
|
2848
|
+
error);
|
2674
2849
|
}
|
2675
2850
|
|
2676
2851
|
static void start_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2677
2852
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2678
|
-
if (!
|
2853
|
+
if (!error.ok()) {
|
2679
2854
|
return;
|
2680
2855
|
}
|
2681
2856
|
if (t->channelz_socket != nullptr) {
|
@@ -2683,14 +2858,16 @@ static void start_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
|
2683
2858
|
}
|
2684
2859
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
|
2685
2860
|
GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
|
2686
|
-
gpr_log(GPR_INFO, "%s: Start keepalive ping",
|
2861
|
+
gpr_log(GPR_INFO, "%s: Start keepalive ping",
|
2862
|
+
std::string(t->peer_string.as_string_view()).c_str());
|
2687
2863
|
}
|
2688
2864
|
GRPC_CHTTP2_REF_TRANSPORT(t, "keepalive watchdog");
|
2689
|
-
|
2690
|
-
|
2691
|
-
|
2692
|
-
|
2693
|
-
|
2865
|
+
t->keepalive_watchdog_timer_handle =
|
2866
|
+
t->event_engine->RunAfter(t->keepalive_timeout, [t] {
|
2867
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
2868
|
+
grpc_core::ExecCtx exec_ctx;
|
2869
|
+
keepalive_watchdog_fired(t);
|
2870
|
+
});
|
2694
2871
|
t->keepalive_ping_started = true;
|
2695
2872
|
}
|
2696
2873
|
|
@@ -2698,16 +2875,17 @@ static void finish_keepalive_ping(void* arg, grpc_error_handle error) {
|
|
2698
2875
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2699
2876
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_keepalive_ping_locked,
|
2700
2877
|
finish_keepalive_ping_locked, t, nullptr),
|
2701
|
-
|
2878
|
+
error);
|
2702
2879
|
}
|
2703
2880
|
|
2704
2881
|
static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2705
2882
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2706
2883
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2707
|
-
if (
|
2884
|
+
if (error.ok()) {
|
2708
2885
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
|
2709
2886
|
GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
|
2710
|
-
gpr_log(GPR_INFO, "%s: Finish keepalive ping",
|
2887
|
+
gpr_log(GPR_INFO, "%s: Finish keepalive ping",
|
2888
|
+
std::string(t->peer_string.as_string_view()).c_str());
|
2711
2889
|
}
|
2712
2890
|
if (!t->keepalive_ping_started) {
|
2713
2891
|
// start_keepalive_ping_locked has not run yet. Reschedule
|
@@ -2715,56 +2893,81 @@ static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
|
2715
2893
|
t->combiner->Run(
|
2716
2894
|
GRPC_CLOSURE_INIT(&t->finish_keepalive_ping_locked,
|
2717
2895
|
finish_keepalive_ping_locked, t, nullptr),
|
2718
|
-
|
2896
|
+
error);
|
2719
2897
|
return;
|
2720
2898
|
}
|
2721
2899
|
t->keepalive_ping_started = false;
|
2722
2900
|
t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_WAITING;
|
2723
|
-
|
2901
|
+
if (t->keepalive_watchdog_timer_handle.has_value()) {
|
2902
|
+
if (t->event_engine->Cancel(*t->keepalive_watchdog_timer_handle)) {
|
2903
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "keepalive watchdog");
|
2904
|
+
t->keepalive_watchdog_timer_handle.reset();
|
2905
|
+
}
|
2906
|
+
}
|
2907
|
+
GPR_ASSERT(!t->keepalive_ping_timer_handle.has_value());
|
2724
2908
|
GRPC_CHTTP2_REF_TRANSPORT(t, "init keepalive ping");
|
2725
|
-
|
2726
|
-
|
2727
|
-
|
2728
|
-
|
2729
|
-
|
2909
|
+
t->keepalive_ping_timer_handle =
|
2910
|
+
t->event_engine->RunAfter(t->keepalive_time, [t] {
|
2911
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
2912
|
+
grpc_core::ExecCtx exec_ctx;
|
2913
|
+
init_keepalive_ping(t);
|
2914
|
+
});
|
2730
2915
|
}
|
2731
2916
|
}
|
2732
2917
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "keepalive ping end");
|
2733
2918
|
}
|
2734
2919
|
|
2735
|
-
static void keepalive_watchdog_fired(
|
2736
|
-
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2920
|
+
static void keepalive_watchdog_fired(grpc_chttp2_transport* t) {
|
2737
2921
|
t->combiner->Run(
|
2738
2922
|
GRPC_CLOSURE_INIT(&t->keepalive_watchdog_fired_locked,
|
2739
2923
|
keepalive_watchdog_fired_locked, t, nullptr),
|
2740
|
-
|
2924
|
+
absl::OkStatus());
|
2741
2925
|
}
|
2742
2926
|
|
2743
|
-
static void keepalive_watchdog_fired_locked(
|
2744
|
-
|
2927
|
+
static void keepalive_watchdog_fired_locked(
|
2928
|
+
void* arg, GRPC_UNUSED grpc_error_handle error) {
|
2929
|
+
GPR_DEBUG_ASSERT(error.ok());
|
2745
2930
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2931
|
+
GPR_ASSERT(t->keepalive_watchdog_timer_handle.has_value());
|
2932
|
+
t->keepalive_watchdog_timer_handle.reset();
|
2746
2933
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2747
|
-
|
2748
|
-
|
2749
|
-
|
2750
|
-
|
2751
|
-
|
2752
|
-
|
2753
|
-
|
2754
|
-
GRPC_ERROR_INT_GRPC_STATUS,
|
2755
|
-
GRPC_STATUS_UNAVAILABLE));
|
2756
|
-
}
|
2934
|
+
gpr_log(GPR_INFO, "%s: Keepalive watchdog fired. Closing transport.",
|
2935
|
+
std::string(t->peer_string.as_string_view()).c_str());
|
2936
|
+
t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_DYING;
|
2937
|
+
close_transport_locked(
|
2938
|
+
t, grpc_error_set_int(GRPC_ERROR_CREATE("keepalive watchdog timeout"),
|
2939
|
+
grpc_core::StatusIntProperty::kRpcStatus,
|
2940
|
+
GRPC_STATUS_UNAVAILABLE));
|
2757
2941
|
} else {
|
2758
|
-
//
|
2759
|
-
// finish_keepalive_ping_locked.
|
2760
|
-
|
2761
|
-
|
2762
|
-
|
2763
|
-
}
|
2942
|
+
// If keepalive_state is not PINGING, we consider it as an error. Maybe the
|
2943
|
+
// cancellation failed in finish_keepalive_ping_locked. Users have seen
|
2944
|
+
// other states: https://github.com/grpc/grpc/issues/32085.
|
2945
|
+
gpr_log(GPR_ERROR, "keepalive_ping_end state error: %d (expect: %d)",
|
2946
|
+
t->keepalive_state, GRPC_CHTTP2_KEEPALIVE_STATE_PINGING);
|
2764
2947
|
}
|
2765
2948
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "keepalive watchdog");
|
2766
2949
|
}
|
2767
2950
|
|
2951
|
+
static void maybe_reset_keepalive_ping_timer_locked(grpc_chttp2_transport* t) {
|
2952
|
+
if (t->keepalive_ping_timer_handle.has_value()) {
|
2953
|
+
if (t->event_engine->Cancel(*t->keepalive_ping_timer_handle)) {
|
2954
|
+
// Cancel succeeds, resets the keepalive ping timer. Note that we don't
|
2955
|
+
// need to Ref or Unref here since we still hold the Ref.
|
2956
|
+
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace) ||
|
2957
|
+
GRPC_TRACE_FLAG_ENABLED(grpc_keepalive_trace)) {
|
2958
|
+
gpr_log(GPR_INFO, "%s: Keepalive ping cancelled. Resetting timer.",
|
2959
|
+
std::string(t->peer_string.as_string_view()).c_str());
|
2960
|
+
}
|
2961
|
+
t->keepalive_ping_timer_handle =
|
2962
|
+
t->event_engine->RunAfter(t->keepalive_time, [t] {
|
2963
|
+
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
|
2964
|
+
grpc_core::ExecCtx exec_ctx;
|
2965
|
+
init_keepalive_ping(t);
|
2966
|
+
});
|
2967
|
+
}
|
2968
|
+
}
|
2969
|
+
}
|
2970
|
+
|
2768
2971
|
//
|
2769
2972
|
// CALLBACK LOOP
|
2770
2973
|
//
|
@@ -2810,7 +3013,7 @@ static void post_benign_reclaimer(grpc_chttp2_transport* t) {
|
|
2810
3013
|
benign_reclaimer_locked, t,
|
2811
3014
|
grpc_schedule_on_exec_ctx);
|
2812
3015
|
t->active_reclamation = std::move(*sweep);
|
2813
|
-
t->combiner->Run(&t->benign_reclaimer_locked,
|
3016
|
+
t->combiner->Run(&t->benign_reclaimer_locked, absl::OkStatus());
|
2814
3017
|
} else {
|
2815
3018
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
2816
3019
|
}
|
@@ -2830,9 +3033,10 @@ static void post_destructive_reclaimer(grpc_chttp2_transport* t) {
|
|
2830
3033
|
destructive_reclaimer_locked, t,
|
2831
3034
|
grpc_schedule_on_exec_ctx);
|
2832
3035
|
t->active_reclamation = std::move(*sweep);
|
2833
|
-
t->combiner->Run(&t->destructive_reclaimer_locked,
|
3036
|
+
t->combiner->Run(&t->destructive_reclaimer_locked,
|
3037
|
+
absl::OkStatus());
|
2834
3038
|
} else {
|
2835
|
-
GRPC_CHTTP2_UNREF_TRANSPORT(t, "
|
3039
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "destructive_reclaimer");
|
2836
3040
|
}
|
2837
3041
|
});
|
2838
3042
|
}
|
@@ -2840,29 +3044,27 @@ static void post_destructive_reclaimer(grpc_chttp2_transport* t) {
|
|
2840
3044
|
|
2841
3045
|
static void benign_reclaimer_locked(void* arg, grpc_error_handle error) {
|
2842
3046
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2843
|
-
if (
|
2844
|
-
grpc_chttp2_stream_map_size(&t->stream_map) == 0) {
|
3047
|
+
if (error.ok() && grpc_chttp2_stream_map_size(&t->stream_map) == 0) {
|
2845
3048
|
// Channel with no active streams: send a goaway to try and make it
|
2846
3049
|
// disconnect cleanly
|
2847
3050
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_resource_quota_trace)) {
|
2848
3051
|
gpr_log(GPR_INFO, "HTTP2: %s - send goaway to free memory",
|
2849
|
-
t->peer_string.c_str());
|
3052
|
+
std::string(t->peer_string.as_string_view()).c_str());
|
2850
3053
|
}
|
2851
3054
|
send_goaway(t,
|
2852
|
-
grpc_error_set_int(
|
2853
|
-
|
2854
|
-
|
3055
|
+
grpc_error_set_int(GRPC_ERROR_CREATE("Buffers full"),
|
3056
|
+
grpc_core::StatusIntProperty::kHttp2Error,
|
3057
|
+
GRPC_HTTP2_ENHANCE_YOUR_CALM),
|
2855
3058
|
/*immediate_disconnect_hint=*/true);
|
2856
|
-
} else if (
|
2857
|
-
GRPC_TRACE_FLAG_ENABLED(grpc_resource_quota_trace)) {
|
3059
|
+
} else if (error.ok() && GRPC_TRACE_FLAG_ENABLED(grpc_resource_quota_trace)) {
|
2858
3060
|
gpr_log(GPR_INFO,
|
2859
3061
|
"HTTP2: %s - skip benign reclamation, there are still %" PRIdPTR
|
2860
3062
|
" streams",
|
2861
|
-
t->peer_string.c_str(),
|
3063
|
+
std::string(t->peer_string.as_string_view()).c_str(),
|
2862
3064
|
grpc_chttp2_stream_map_size(&t->stream_map));
|
2863
3065
|
}
|
2864
3066
|
t->benign_reclaimer_registered = false;
|
2865
|
-
if (error !=
|
3067
|
+
if (error != absl::CancelledError()) {
|
2866
3068
|
t->active_reclamation.Finish();
|
2867
3069
|
}
|
2868
3070
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
@@ -2872,17 +3074,17 @@ static void destructive_reclaimer_locked(void* arg, grpc_error_handle error) {
|
|
2872
3074
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2873
3075
|
size_t n = grpc_chttp2_stream_map_size(&t->stream_map);
|
2874
3076
|
t->destructive_reclaimer_registered = false;
|
2875
|
-
if (
|
3077
|
+
if (error.ok() && n > 0) {
|
2876
3078
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(
|
2877
3079
|
grpc_chttp2_stream_map_rand(&t->stream_map));
|
2878
3080
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_resource_quota_trace)) {
|
2879
3081
|
gpr_log(GPR_INFO, "HTTP2: %s - abandon stream id %d",
|
2880
|
-
t->peer_string.c_str(), s->id);
|
3082
|
+
std::string(t->peer_string.as_string_view()).c_str(), s->id);
|
2881
3083
|
}
|
2882
3084
|
grpc_chttp2_cancel_stream(
|
2883
3085
|
t, s,
|
2884
|
-
grpc_error_set_int(
|
2885
|
-
|
3086
|
+
grpc_error_set_int(GRPC_ERROR_CREATE("Buffers full"),
|
3087
|
+
grpc_core::StatusIntProperty::kHttp2Error,
|
2886
3088
|
GRPC_HTTP2_ENHANCE_YOUR_CALM));
|
2887
3089
|
if (n > 1) {
|
2888
3090
|
// Since we cancel one stream per destructive reclamation, if
|
@@ -2892,7 +3094,7 @@ static void destructive_reclaimer_locked(void* arg, grpc_error_handle error) {
|
|
2892
3094
|
post_destructive_reclaimer(t);
|
2893
3095
|
}
|
2894
3096
|
}
|
2895
|
-
if (error !=
|
3097
|
+
if (error != absl::CancelledError()) {
|
2896
3098
|
t->active_reclamation.Finish();
|
2897
3099
|
}
|
2898
3100
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "destructive_reclaimer");
|
@@ -2958,6 +3160,7 @@ static grpc_endpoint* chttp2_get_endpoint(grpc_transport* t) {
|
|
2958
3160
|
}
|
2959
3161
|
|
2960
3162
|
static const grpc_transport_vtable vtable = {sizeof(grpc_chttp2_stream),
|
3163
|
+
false,
|
2961
3164
|
"chttp2",
|
2962
3165
|
init_stream,
|
2963
3166
|
nullptr,
|
@@ -2991,14 +3194,29 @@ void grpc_chttp2_transport_start_reading(
|
|
2991
3194
|
grpc_chttp2_transport* t =
|
2992
3195
|
reinterpret_cast<grpc_chttp2_transport*>(transport);
|
2993
3196
|
GRPC_CHTTP2_REF_TRANSPORT(
|
2994
|
-
t, "reading_action");
|
3197
|
+
t, "reading_action"); // matches unref inside reading_action
|
2995
3198
|
if (read_buffer != nullptr) {
|
2996
3199
|
grpc_slice_buffer_move_into(read_buffer, &t->read_buffer);
|
2997
3200
|
gpr_free(read_buffer);
|
2998
3201
|
}
|
2999
|
-
t->notify_on_receive_settings = notify_on_receive_settings;
|
3000
|
-
t->notify_on_close = notify_on_close;
|
3001
3202
|
t->combiner->Run(
|
3002
|
-
|
3003
|
-
|
3203
|
+
grpc_core::NewClosure([t, notify_on_receive_settings,
|
3204
|
+
notify_on_close](grpc_error_handle) {
|
3205
|
+
if (!t->closed_with_error.ok()) {
|
3206
|
+
if (notify_on_receive_settings != nullptr) {
|
3207
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, notify_on_receive_settings,
|
3208
|
+
t->closed_with_error);
|
3209
|
+
}
|
3210
|
+
if (notify_on_close != nullptr) {
|
3211
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, notify_on_close,
|
3212
|
+
t->closed_with_error);
|
3213
|
+
}
|
3214
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "reading_action");
|
3215
|
+
return;
|
3216
|
+
}
|
3217
|
+
t->notify_on_receive_settings = notify_on_receive_settings;
|
3218
|
+
t->notify_on_close = notify_on_close;
|
3219
|
+
read_action_locked(t, absl::OkStatus());
|
3220
|
+
}),
|
3221
|
+
absl::OkStatus());
|
3004
3222
|
}
|