grpc 1.35.0 → 1.47.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +617 -386
- data/etc/roots.pem +335 -326
- data/include/grpc/byte_buffer.h +1 -1
- data/include/grpc/byte_buffer_reader.h +1 -1
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +43 -0
- data/include/grpc/event_engine/event_engine.h +434 -0
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +68 -0
- data/include/grpc/event_engine/memory_allocator.h +211 -0
- data/include/grpc/event_engine/memory_request.h +57 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice.h +286 -0
- data/include/grpc/event_engine/slice_buffer.h +112 -0
- data/include/grpc/fork.h +1 -1
- data/include/grpc/grpc.h +76 -19
- data/include/grpc/grpc_posix.h +22 -18
- data/include/grpc/grpc_security.h +378 -195
- data/include/grpc/grpc_security_constants.h +17 -14
- data/include/grpc/impl/codegen/atm.h +5 -3
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
- data/include/grpc/impl/codegen/atm_windows.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
- data/include/grpc/impl/codegen/compression_types.h +2 -2
- data/include/grpc/impl/codegen/connectivity_state.h +2 -0
- data/include/grpc/impl/codegen/fork.h +2 -0
- data/include/grpc/impl/codegen/gpr_slice.h +2 -0
- data/include/grpc/impl/codegen/gpr_types.h +2 -0
- data/include/grpc/impl/codegen/grpc_types.h +68 -41
- data/include/grpc/impl/codegen/log.h +2 -0
- data/include/grpc/impl/codegen/port_platform.h +162 -35
- data/include/grpc/impl/codegen/propagation_bits.h +2 -0
- data/include/grpc/impl/codegen/slice.h +6 -1
- data/include/grpc/impl/codegen/status.h +2 -0
- data/include/grpc/impl/codegen/sync.h +8 -5
- data/include/grpc/impl/codegen/sync_abseil.h +2 -0
- data/include/grpc/impl/codegen/sync_custom.h +2 -0
- data/include/grpc/impl/codegen/sync_generic.h +3 -0
- data/include/grpc/impl/codegen/sync_posix.h +4 -2
- data/include/grpc/impl/codegen/sync_windows.h +2 -0
- data/include/grpc/module.modulemap +14 -14
- data/include/grpc/slice.h +1 -12
- data/include/grpc/status.h +1 -1
- data/include/grpc/support/atm.h +1 -1
- data/include/grpc/support/atm_gcc_atomic.h +1 -1
- data/include/grpc/support/atm_gcc_sync.h +1 -1
- data/include/grpc/support/atm_windows.h +1 -1
- data/include/grpc/support/log.h +1 -1
- data/include/grpc/support/port_platform.h +1 -1
- data/include/grpc/support/sync.h +1 -1
- data/include/grpc/support/sync_abseil.h +1 -1
- data/include/grpc/support/sync_custom.h +1 -1
- data/include/grpc/support/sync_generic.h +1 -1
- data/include/grpc/support/sync_posix.h +1 -1
- data/include/grpc/support/sync_windows.h +1 -1
- data/include/grpc/support/time.h +2 -2
- data/src/core/ext/filters/census/grpc_context.cc +1 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +297 -0
- data/src/core/ext/filters/channel_idle/channel_idle_filter.h +125 -0
- data/src/core/ext/filters/channel_idle/idle_filter_state.cc +96 -0
- data/src/core/ext/filters/channel_idle/idle_filter_state.h +66 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +32 -30
- data/src/core/ext/filters/client_channel/backend_metric.h +19 -8
- data/src/core/ext/filters/client_channel/backup_poller.cc +22 -17
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +181 -203
- data/src/core/ext/filters/client_channel/client_channel.cc +1429 -3634
- data/src/core/ext/filters/client_channel/client_channel.h +583 -56
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -7
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +14 -4
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +7 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.h +26 -19
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +19 -31
- data/src/core/ext/filters/client_channel/config_selector.cc +3 -1
- data/src/core/ext/filters/client_channel/config_selector.h +37 -15
- data/src/core/ext/filters/client_channel/connector.h +28 -22
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +35 -21
- data/src/core/ext/filters/client_channel/dynamic_filters.h +16 -6
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +27 -163
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +19 -24
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +141 -581
- data/src/core/ext/filters/client_channel/health/health_check_client.h +26 -158
- data/src/core/ext/filters/client_channel/http_proxy.cc +110 -109
- data/src/core/ext/filters/client_channel/http_proxy.h +20 -0
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +10 -5
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
- data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +18 -2
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +21 -27
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +350 -213
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +3 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +5 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +11 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +10 -7
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +408 -0
- data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1038 -0
- data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +54 -0
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +144 -111
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +334 -245
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +865 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +39 -0
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2577 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +205 -195
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +55 -47
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +146 -89
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +418 -275
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +7 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +219 -133
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +84 -76
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +532 -515
- data/src/core/ext/filters/client_channel/lb_policy.cc +21 -29
- data/src/core/ext/filters/client_channel/lb_policy.h +168 -141
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +4 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +16 -12
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +7 -2
- data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +31 -67
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +11 -9
- data/src/core/ext/filters/client_channel/proxy_mapper.h +1 -1
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +5 -0
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +151 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +396 -336
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +31 -13
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +33 -26
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +55 -71
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +220 -332
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +52 -30
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +4 -3
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
- data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +118 -245
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +70 -73
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +14 -8
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +446 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +213 -0
- data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +113 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +59 -54
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +786 -452
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +46 -263
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +43 -60
- data/src/core/ext/filters/client_channel/retry_filter.cc +2695 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +313 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +111 -0
- data/src/core/ext/filters/client_channel/retry_throttle.cc +14 -66
- data/src/core/ext/filters/client_channel/retry_throttle.h +18 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +72 -40
- data/src/core/ext/filters/client_channel/subchannel.cc +319 -464
- data/src/core/ext/filters/client_channel/subchannel.h +163 -154
- data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -23
- data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +48 -9
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +26 -12
- data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +558 -0
- data/src/core/ext/filters/client_channel/subchannel_stream_client.h +226 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +45 -43
- data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +255 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +62 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +179 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.h +91 -0
- data/src/core/ext/filters/http/client/http_client_filter.cc +92 -538
- data/src/core/ext/filters/http/client/http_client_filter.h +27 -4
- data/src/core/ext/filters/http/client_authority_filter.cc +42 -111
- data/src/core/ext/filters/http/client_authority_filter.h +24 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +54 -73
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +68 -157
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +45 -56
- data/src/core/ext/filters/http/server/http_server_filter.cc +91 -464
- data/src/core/ext/filters/http/server/http_server_filter.h +31 -2
- data/src/core/ext/filters/message_size/message_size_filter.cc +78 -90
- data/src/core/ext/filters/message_size/message_size_filter.h +13 -6
- data/src/core/ext/filters/rbac/rbac_filter.cc +163 -0
- data/src/core/ext/filters/rbac/rbac_filter.h +76 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +606 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +75 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +61 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +71 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +143 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +32 -0
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +285 -86
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +15 -13
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +778 -235
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +13 -2
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -5
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +604 -489
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +29 -5
- data/src/core/ext/transport/chttp2/transport/context_list.cc +8 -6
- data/src/core/ext/transport/chttp2/transport/context_list.h +7 -6
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +72 -49
- data/src/core/ext/transport/chttp2/transport/flow_control.h +33 -23
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -4
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -26
- data/src/core/ext/transport/chttp2/transport/frame_data.h +15 -11
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +24 -20
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +10 -7
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +22 -17
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +11 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +23 -17
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +10 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +63 -20
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +11 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +20 -14
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +8 -6
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +526 -757
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +198 -73
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +89 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +74 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +836 -1200
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +109 -84
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +257 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +132 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +80 -79
- data/src/core/ext/transport/chttp2/transport/parsing.cc +192 -299
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +15 -11
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/stream_map.h +1 -0
- data/src/core/ext/transport/chttp2/transport/varint.cc +13 -7
- data/src/core/ext/transport/chttp2/transport/varint.h +41 -28
- data/src/core/ext/transport/chttp2/transport/writing.cc +169 -173
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +190 -216
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +117 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +482 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +553 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +444 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +2156 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +151 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +160 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +124 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +102 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +97 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +106 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +605 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +103 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +44 -1
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +52 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +31 -5
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +57 -18
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +144 -118
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +761 -386
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +411 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +2161 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +50 -29
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +224 -95
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +341 -256
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1943 -800
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +50 -24
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +61 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +291 -95
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +299 -0
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1381 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +75 -54
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +398 -190
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +53 -25
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +252 -143
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1285 -493
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +107 -47
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +562 -172
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +46 -24
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +17 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +49 -95
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +151 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +146 -118
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +853 -415
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +142 -92
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +807 -340
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +65 -31
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +235 -89
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1244 -288
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +18 -6
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +36 -17
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +169 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +23 -10
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +83 -34
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +30 -10
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +118 -32
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +118 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +52 -37
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +214 -109
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +92 -39
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +449 -131
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +71 -54
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +389 -188
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +42 -21
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +105 -68
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +616 -242
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +106 -75
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +637 -287
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +234 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +27 -12
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +96 -49
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +136 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +165 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +716 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +174 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +721 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +131 -100
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +628 -282
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +63 -25
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +338 -115
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +688 -537
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +4135 -1819
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +39 -20
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +168 -72
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +222 -0
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +1052 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +103 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +28 -15
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +91 -46
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +134 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +250 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +94 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +213 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +32 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +42 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +218 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +146 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +85 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +96 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +375 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +94 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +433 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +64 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +183 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +55 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +168 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +301 -202
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1794 -663
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +10 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +7 -4
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +114 -49
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +652 -198
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +43 -31
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +176 -104
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +128 -84
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +673 -259
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +160 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +16 -3
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +29 -15
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +99 -73
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +550 -282
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +32 -19
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +121 -62
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +138 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +631 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +112 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +76 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +249 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +214 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +29 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +116 -56
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +49 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +117 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +56 -27
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +46 -24
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +37 -21
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +137 -69
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +32 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +137 -65
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +170 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +38 -23
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +170 -83
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +51 -32
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +273 -145
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +54 -37
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +268 -132
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +201 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +10 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +4 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +139 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +24 -10
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +76 -36
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +31 -16
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +118 -52
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +48 -19
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +127 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +23 -1
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +24 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +155 -126
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +791 -385
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +167 -118
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +886 -390
- data/src/core/ext/upb-generated/google/api/http.upb.c +44 -29
- data/src/core/ext/upb-generated/google/api/http.upb.h +236 -115
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +111 -0
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -6
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +46 -22
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +374 -283
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2263 -1053
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -6
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +44 -20
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +16 -3
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +29 -15
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +48 -32
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +197 -93
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -6
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +44 -20
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +58 -37
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +296 -149
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -9
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +60 -30
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +319 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +33 -19
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +111 -48
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +136 -108
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +753 -365
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +28 -13
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +90 -41
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +23 -9
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +70 -35
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +82 -62
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +448 -232
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +70 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +208 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +175 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +764 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +76 -14
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +213 -57
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +32 -8
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +62 -18
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +22 -1
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +17 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +32 -6
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +64 -20
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +31 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +57 -18
- data/src/core/ext/upb-generated/validate/validate.upb.c +407 -295
- data/src/core/ext/upb-generated/validate/validate.upb.h +3021 -1221
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +278 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +108 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +46 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +105 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +290 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +99 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +41 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +79 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +66 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +200 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +56 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +115 -0
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +103 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +49 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +127 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +68 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +240 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +49 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +121 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +73 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +187 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +47 -0
- data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +109 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +207 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +878 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +143 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +218 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +103 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +309 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +22 -12
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +10 -13
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +183 -215
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +46 -46
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +393 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +120 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +60 -62
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +497 -498
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +80 -70
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +28 -23
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +17 -32
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +225 -224
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +83 -58
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +140 -115
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +26 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +16 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +24 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +4 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +23 -51
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +43 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +182 -187
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +30 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +16 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +267 -197
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +61 -31
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +15 -20
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +46 -31
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +69 -80
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +98 -83
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +23 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +20 -30
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +157 -150
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +21 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +155 -150
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +88 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +40 -39
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +125 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +134 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +190 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +85 -67
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +12 -7
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +826 -845
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +166 -151
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +54 -48
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +188 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +32 -39
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +92 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +117 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +78 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +428 -388
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +67 -52
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +22 -22
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +174 -130
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +26 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +57 -71
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +217 -212
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +24 -19
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +99 -123
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +24 -19
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +19 -26
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +153 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +24 -27
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +45 -48
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +40 -47
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +18 -24
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +15 -29
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +16 -26
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +12 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +14 -19
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +13 -19
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +13 -16
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +7 -7
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +5 -14
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +107 -164
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +5 -16
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +5 -26
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +9 -14
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +10 -18
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +24 -33
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +10 -13
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +10 -14
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +189 -213
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +70 -70
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +45 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +61 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_registry.cc +3 -3
- data/src/core/ext/xds/certificate_provider_store.cc +10 -0
- data/src/core/ext/xds/certificate_provider_store.h +13 -4
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +7 -7
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +4 -4
- data/src/core/ext/xds/upb_utils.h +67 -0
- data/src/core/ext/xds/xds_api.cc +347 -1925
- data/src/core/ext/xds/xds_api.h +127 -405
- data/src/core/ext/xds/xds_bootstrap.cc +324 -274
- data/src/core/ext/xds/xds_bootstrap.h +61 -26
- data/src/core/ext/xds/xds_certificate_provider.cc +192 -81
- data/src/core/ext/xds/xds_certificate_provider.h +92 -45
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +109 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.h +53 -0
- data/src/core/ext/xds/xds_client.cc +1166 -867
- data/src/core/ext/xds/xds_client.h +172 -160
- data/src/core/ext/xds/xds_client_stats.cc +31 -29
- data/src/core/ext/xds/xds_client_stats.h +17 -15
- data/src/core/ext/xds/xds_cluster.cc +543 -0
- data/src/core/ext/xds/xds_cluster.h +111 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +142 -0
- data/src/core/ext/xds/xds_cluster_specifier_plugin.h +79 -0
- data/src/core/ext/xds/xds_common_types.cc +388 -0
- data/src/core/ext/xds/xds_common_types.h +95 -0
- data/src/core/ext/xds/xds_endpoint.cc +371 -0
- data/src/core/ext/xds/xds_endpoint.h +135 -0
- data/src/core/ext/xds/xds_http_fault_filter.cc +227 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +64 -0
- data/src/core/ext/xds/xds_http_filters.cc +122 -0
- data/src/core/ext/xds/xds_http_filters.h +133 -0
- data/src/core/ext/xds/xds_http_rbac_filter.cc +563 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +54 -0
- data/src/core/ext/xds/xds_listener.cc +1049 -0
- data/src/core/ext/xds/xds_listener.h +220 -0
- data/src/core/ext/xds/xds_resource_type.cc +33 -0
- data/src/core/ext/xds/xds_resource_type.h +98 -0
- data/src/core/ext/xds/xds_resource_type_impl.h +87 -0
- data/src/core/ext/xds/xds_route_config.cc +1122 -0
- data/src/core/ext/xds/xds_route_config.h +218 -0
- data/src/core/ext/xds/xds_routing.cc +250 -0
- data/src/core/ext/xds/xds_routing.h +101 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +1250 -66
- data/src/core/lib/address_utils/parse_address.cc +340 -0
- data/src/core/lib/address_utils/parse_address.h +82 -0
- data/src/core/lib/address_utils/sockaddr_utils.cc +442 -0
- data/src/core/lib/address_utils/sockaddr_utils.h +98 -0
- data/src/core/lib/avl/avl.h +454 -88
- data/src/core/lib/backoff/backoff.cc +9 -38
- data/src/core/lib/backoff/backoff.h +11 -11
- data/src/core/lib/channel/call_finalization.h +90 -0
- data/src/core/lib/channel/call_tracer.h +94 -0
- data/src/core/lib/channel/channel_args.cc +212 -36
- data/src/core/lib/channel/channel_args.h +246 -3
- data/src/core/lib/channel/channel_args_preconditioning.cc +42 -0
- data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
- data/src/core/lib/channel/channel_stack.cc +77 -17
- data/src/core/lib/channel/channel_stack.h +105 -18
- data/src/core/lib/channel/channel_stack_builder.cc +19 -288
- data/src/core/lib/channel/channel_stack_builder.h +107 -158
- data/src/core/lib/channel/channel_stack_builder_impl.cc +97 -0
- data/src/core/lib/channel/channel_stack_builder_impl.h +45 -0
- data/src/core/lib/channel/channel_trace.cc +13 -20
- data/src/core/lib/channel/channel_trace.h +8 -4
- data/src/core/lib/channel/channelz.cc +156 -60
- data/src/core/lib/channel/channelz.h +73 -32
- data/src/core/lib/channel/channelz_registry.cc +27 -19
- data/src/core/lib/channel/channelz_registry.h +11 -10
- data/src/core/lib/channel/connected_channel.cc +30 -36
- data/src/core/lib/channel/connected_channel.h +3 -2
- data/src/core/lib/channel/context.h +14 -0
- data/src/core/lib/channel/promise_based_filter.cc +1257 -0
- data/src/core/lib/channel/promise_based_filter.h +570 -0
- data/src/core/lib/channel/status_util.cc +14 -2
- data/src/core/lib/channel/status_util.h +9 -3
- data/src/core/lib/compression/compression.cc +22 -114
- data/src/core/lib/compression/compression_internal.cc +173 -206
- data/src/core/lib/compression/compression_internal.h +64 -69
- data/src/core/lib/compression/message_compress.cc +13 -13
- data/src/core/lib/compression/message_compress.h +2 -2
- data/src/core/lib/config/core_configuration.cc +107 -0
- data/src/core/lib/config/core_configuration.h +197 -0
- data/src/core/lib/debug/stats.cc +1 -1
- data/src/core/lib/debug/stats.h +2 -1
- data/src/core/lib/debug/stats_data.cc +17 -20
- data/src/core/lib/debug/stats_data.h +19 -21
- data/src/core/lib/debug/trace.cc +1 -0
- data/src/core/lib/debug/trace.h +4 -3
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +48 -0
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +43 -0
- data/src/core/lib/event_engine/default_event_engine_factory.cc +33 -0
- data/src/core/lib/event_engine/event_engine.cc +62 -0
- data/src/core/lib/event_engine/event_engine_factory.h +41 -0
- data/src/core/lib/event_engine/handle_containers.h +67 -0
- data/src/core/lib/event_engine/iomgr_engine.cc +206 -0
- data/src/core/lib/event_engine/iomgr_engine.h +118 -0
- data/src/core/lib/event_engine/memory_allocator.cc +74 -0
- data/src/core/lib/event_engine/resolved_address.cc +41 -0
- data/src/core/lib/event_engine/slice.cc +102 -0
- data/src/core/lib/event_engine/slice_buffer.cc +50 -0
- data/src/core/lib/event_engine/trace.cc +18 -0
- data/src/core/lib/event_engine/trace.h +30 -0
- data/src/core/lib/gpr/alloc.cc +4 -3
- data/src/core/lib/gpr/atm.cc +1 -1
- data/src/core/lib/gpr/cpu_posix.cc +1 -1
- data/src/core/lib/gpr/env_linux.cc +1 -2
- data/src/core/lib/gpr/env_posix.cc +2 -3
- data/src/core/lib/gpr/log.cc +13 -3
- data/src/core/lib/gpr/log_android.cc +3 -2
- data/src/core/lib/gpr/log_linux.cc +7 -4
- data/src/core/lib/gpr/log_posix.cc +6 -3
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/string.cc +2 -2
- data/src/core/lib/gpr/string.h +2 -2
- data/src/core/lib/gpr/sync.cc +2 -2
- data/src/core/lib/gpr/sync_abseil.cc +10 -12
- data/src/core/lib/gpr/sync_posix.cc +4 -3
- data/src/core/lib/gpr/sync_windows.cc +2 -2
- data/src/core/lib/gpr/time.cc +5 -3
- data/src/core/lib/gpr/time_windows.cc +3 -2
- data/src/core/lib/gpr/tls.h +124 -40
- data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
- data/src/core/lib/gpr/useful.h +97 -32
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/atomic_utils.h +47 -0
- data/src/core/lib/gprpp/bitset.h +211 -0
- data/src/core/lib/gprpp/chunked_vector.h +257 -0
- data/src/core/lib/gprpp/construct_destruct.h +40 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +49 -0
- data/src/core/lib/gprpp/debug_location.h +2 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +27 -31
- data/src/core/lib/gprpp/examine_stack.h +0 -1
- data/src/core/lib/gprpp/fork.cc +17 -18
- data/src/core/lib/gprpp/fork.h +4 -4
- data/src/core/lib/gprpp/global_config.h +2 -5
- data/src/core/lib/gprpp/global_config_env.cc +16 -15
- data/src/core/lib/gprpp/global_config_env.h +5 -3
- data/src/core/lib/gprpp/global_config_generic.h +0 -4
- data/src/core/lib/gprpp/host_port.cc +2 -0
- data/src/core/lib/gprpp/manual_constructor.h +11 -10
- data/src/core/lib/gprpp/match.h +75 -0
- data/src/core/lib/gprpp/memory.h +8 -6
- data/src/core/lib/gprpp/mpscq.cc +9 -9
- data/src/core/lib/gprpp/mpscq.h +6 -5
- data/src/core/lib/gprpp/orphanable.h +5 -8
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +49 -35
- data/src/core/lib/gprpp/ref_counted_ptr.h +5 -5
- data/src/core/lib/gprpp/single_set_ptr.h +87 -0
- data/src/core/lib/gprpp/stat.h +0 -2
- data/src/core/lib/gprpp/stat_posix.cc +7 -2
- data/src/core/lib/gprpp/status_helper.cc +439 -0
- data/src/core/lib/gprpp/status_helper.h +185 -0
- data/src/core/lib/gprpp/sync.h +109 -44
- data/src/core/lib/gprpp/table.h +444 -0
- data/src/core/lib/gprpp/thd.h +3 -6
- data/src/core/lib/gprpp/thd_posix.cc +9 -7
- data/src/core/lib/gprpp/thd_windows.cc +6 -11
- data/src/core/lib/gprpp/time.cc +206 -0
- data/src/core/lib/gprpp/time.h +297 -0
- data/src/core/lib/gprpp/time_util.cc +81 -0
- data/src/core/lib/gprpp/time_util.h +42 -0
- data/src/core/lib/gprpp/unique_type_name.h +104 -0
- data/src/core/lib/http/format_request.cc +58 -25
- data/src/core/lib/http/format_request.h +10 -6
- data/src/core/lib/http/httpcli.cc +306 -209
- data/src/core/lib/http/httpcli.h +215 -85
- data/src/core/lib/http/httpcli_security_connector.cc +72 -83
- data/src/core/lib/http/httpcli_ssl_credentials.h +37 -0
- data/src/core/lib/http/parser.cc +98 -27
- data/src/core/lib/http/parser.h +20 -6
- data/src/core/lib/iomgr/buffer_list.cc +16 -17
- data/src/core/lib/iomgr/buffer_list.h +23 -25
- data/src/core/lib/iomgr/call_combiner.cc +55 -23
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +6 -6
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +33 -12
- data/src/core/lib/iomgr/combiner.cc +46 -36
- data/src/core/lib/iomgr/combiner.h +3 -2
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +1 -0
- data/src/core/lib/iomgr/endpoint.cc +5 -9
- data/src/core/lib/iomgr/endpoint.h +9 -10
- data/src/core/lib/iomgr/endpoint_cfstream.cc +32 -58
- data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
- data/src/core/lib/iomgr/endpoint_pair.h +1 -0
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +12 -9
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
- data/src/core/lib/iomgr/error.cc +270 -99
- data/src/core/lib/iomgr/error.h +278 -114
- data/src/core/lib/iomgr/error_cfstream.cc +10 -4
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +6 -1
- data/src/core/lib/iomgr/ev_apple.cc +19 -15
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +45 -51
- data/src/core/lib/iomgr/ev_poll_posix.cc +73 -73
- data/src/core/lib/iomgr/ev_posix.cc +22 -26
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/exec_ctx.cc +29 -98
- data/src/core/lib/iomgr/exec_ctx.h +32 -58
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +15 -16
- data/src/core/lib/iomgr/executor/mpmcqueue.h +7 -11
- data/src/core/lib/iomgr/executor/threadpool.cc +4 -5
- data/src/core/lib/iomgr/executor/threadpool.h +4 -3
- data/src/core/lib/iomgr/executor.cc +37 -46
- data/src/core/lib/iomgr/executor.h +3 -3
- data/src/core/lib/iomgr/fork_posix.cc +2 -1
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
- data/src/core/lib/iomgr/internal_errqueue.cc +41 -49
- data/src/core/lib/iomgr/internal_errqueue.h +1 -6
- data/src/core/lib/iomgr/iocp_windows.cc +10 -9
- data/src/core/lib/iomgr/iocp_windows.h +1 -1
- data/src/core/lib/iomgr/iomgr.cc +5 -4
- data/src/core/lib/iomgr/iomgr.h +3 -3
- data/src/core/lib/iomgr/iomgr_fwd.h +25 -0
- data/src/core/lib/iomgr/iomgr_internal.cc +8 -12
- data/src/core/lib/iomgr/iomgr_internal.h +6 -5
- data/src/core/lib/iomgr/iomgr_posix.cc +5 -4
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +44 -15
- data/src/core/lib/iomgr/iomgr_windows.cc +4 -5
- data/src/core/lib/iomgr/load_file.cc +6 -6
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +23 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/polling_entity.cc +2 -2
- data/src/core/lib/iomgr/polling_entity.h +6 -0
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_set.h +1 -2
- data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
- data/src/core/lib/iomgr/pollset_windows.cc +6 -6
- data/src/core/lib/iomgr/port.h +28 -17
- data/src/core/lib/iomgr/python_util.h +3 -2
- data/src/core/lib/iomgr/resolve_address.cc +17 -23
- data/src/core/lib/iomgr/resolve_address.h +58 -46
- data/src/core/lib/iomgr/resolve_address_impl.h +58 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +84 -78
- data/src/core/lib/iomgr/resolve_address_posix.h +50 -0
- data/src/core/lib/iomgr/resolve_address_windows.cc +95 -85
- data/src/core/lib/iomgr/resolve_address_windows.h +50 -0
- data/src/core/lib/iomgr/resolved_address.h +39 -0
- data/src/core/lib/iomgr/sockaddr.h +3 -3
- data/src/core/lib/iomgr/sockaddr_posix.h +2 -0
- data/src/core/lib/iomgr/sockaddr_utils_posix.cc +62 -0
- data/src/core/lib/iomgr/sockaddr_windows.h +2 -0
- data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +17 -4
- data/src/core/lib/iomgr/socket_mutator.h +27 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +30 -44
- data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
- data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_utils_posix.h +22 -22
- data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
- data/src/core/lib/iomgr/tcp_client.cc +1 -1
- data/src/core/lib/iomgr/tcp_client.h +5 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +22 -30
- data/src/core/lib/iomgr/tcp_client_posix.cc +50 -50
- data/src/core/lib/iomgr/tcp_client_posix.h +7 -6
- data/src/core/lib/iomgr/tcp_client_windows.cc +26 -19
- data/src/core/lib/iomgr/tcp_posix.cc +211 -204
- data/src/core/lib/iomgr/tcp_posix.h +17 -12
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +16 -14
- data/src/core/lib/iomgr/tcp_server_posix.cc +91 -58
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +34 -29
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +53 -47
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +18 -15
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +37 -32
- data/src/core/lib/iomgr/tcp_windows.cc +42 -56
- data/src/core/lib/iomgr/tcp_windows.h +3 -3
- data/src/core/lib/iomgr/timer.cc +3 -2
- data/src/core/lib/iomgr/timer.h +17 -8
- data/src/core/lib/iomgr/timer_generic.cc +118 -129
- data/src/core/lib/iomgr/timer_generic.h +1 -0
- data/src/core/lib/iomgr/timer_heap.cc +2 -3
- data/src/core/lib/iomgr/timer_manager.cc +17 -16
- data/src/core/lib/iomgr/unix_sockets_posix.cc +25 -39
- data/src/core/lib/iomgr/unix_sockets_posix.h +6 -10
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +12 -18
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +2 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +6 -7
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +4 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.cc +120 -44
- data/src/core/lib/iomgr/work_serializer.h +33 -5
- data/src/core/lib/json/json.h +2 -3
- data/src/core/lib/json/json_reader.cc +106 -59
- data/src/core/lib/json/json_util.cc +78 -3
- data/src/core/lib/json/json_util.h +77 -118
- data/src/core/lib/json/json_writer.cc +6 -4
- data/src/core/lib/matchers/matchers.cc +327 -0
- data/src/core/lib/matchers/matchers.h +160 -0
- data/src/core/lib/profiling/basic_timers.cc +8 -6
- data/src/core/lib/profiling/stap_timers.cc +2 -2
- data/src/core/lib/promise/activity.cc +121 -0
- data/src/core/lib/promise/activity.h +540 -0
- data/src/core/lib/promise/arena_promise.h +198 -0
- data/src/core/lib/promise/call_push_pull.h +148 -0
- data/src/core/lib/promise/context.h +86 -0
- data/src/core/lib/promise/detail/basic_seq.h +496 -0
- data/src/core/lib/promise/detail/promise_factory.h +188 -0
- data/src/core/lib/promise/detail/promise_like.h +85 -0
- data/src/core/lib/promise/detail/status.h +50 -0
- data/src/core/lib/promise/detail/switch.h +1455 -0
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
- data/src/core/lib/promise/intra_activity_waiter.h +49 -0
- data/src/core/lib/promise/latch.h +103 -0
- data/src/core/lib/promise/loop.h +135 -0
- data/src/core/lib/promise/map.h +88 -0
- data/src/core/lib/promise/poll.h +66 -0
- data/src/core/lib/promise/promise.h +95 -0
- data/src/core/lib/promise/race.h +83 -0
- data/src/core/lib/promise/seq.h +87 -0
- data/src/core/lib/promise/sleep.cc +76 -0
- data/src/core/lib/promise/sleep.h +76 -0
- data/src/core/lib/promise/try_seq.h +157 -0
- data/src/core/lib/resolver/resolver.cc +79 -0
- data/src/core/lib/resolver/resolver.h +135 -0
- data/src/core/lib/resolver/resolver_factory.h +75 -0
- data/src/core/lib/resolver/resolver_registry.cc +156 -0
- data/src/core/lib/resolver/resolver_registry.h +113 -0
- data/src/core/lib/resolver/server_address.cc +176 -0
- data/src/core/lib/resolver/server_address.h +144 -0
- data/src/core/lib/resource_quota/api.cc +96 -0
- data/src/core/lib/resource_quota/api.h +43 -0
- data/src/core/lib/resource_quota/arena.cc +101 -0
- data/src/core/lib/resource_quota/arena.h +141 -0
- data/src/core/lib/resource_quota/memory_quota.cc +520 -0
- data/src/core/lib/resource_quota/memory_quota.h +476 -0
- data/src/core/lib/resource_quota/resource_quota.cc +33 -0
- data/src/core/lib/resource_quota/resource_quota.h +74 -0
- data/src/core/lib/resource_quota/thread_quota.cc +45 -0
- data/src/core/lib/resource_quota/thread_quota.h +61 -0
- data/src/core/lib/resource_quota/trace.cc +19 -0
- data/src/core/lib/resource_quota/trace.h +24 -0
- data/src/core/lib/security/authorization/authorization_engine.h +13 -53
- data/src/core/lib/security/authorization/authorization_policy_provider.h +40 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +143 -79
- data/src/core/lib/security/authorization/evaluate_args.h +50 -17
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +60 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +62 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +109 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +50 -0
- data/src/core/lib/security/authorization/matchers.cc +227 -0
- data/src/core/lib/security/authorization/matchers.h +211 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +442 -0
- data/src/core/lib/security/authorization/rbac_policy.h +171 -0
- data/src/core/lib/security/context/security_context.cc +15 -10
- data/src/core/lib/security/context/security_context.h +9 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +14 -6
- data/src/core/lib/security/credentials/alts/alts_credentials.h +11 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
- data/src/core/lib/security/credentials/call_creds_util.cc +89 -0
- data/src/core/lib/security/credentials/call_creds_util.h +42 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +98 -0
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +70 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +31 -85
- data/src/core/lib/security/credentials/composite/composite_credentials.h +25 -11
- data/src/core/lib/security/credentials/credentials.cc +11 -10
- data/src/core/lib/security/credentials/credentials.h +90 -83
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +160 -73
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +23 -13
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +5 -4
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +132 -82
- data/src/core/lib/security/credentials/external/external_account_credentials.h +15 -17
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +6 -6
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +46 -27
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +10 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +33 -27
- data/src/core/lib/security/credentials/fake/fake_credentials.h +22 -21
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +117 -47
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +10 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +25 -28
- data/src/core/lib/security/credentials/iam/iam_credentials.h +15 -9
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +31 -26
- data/src/core/lib/security/credentials/insecure/insecure_credentials.h +57 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +7 -12
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +58 -52
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +27 -15
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +66 -62
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -4
- data/src/core/lib/security/credentials/local/local_credentials.cc +14 -7
- data/src/core/lib/security/credentials/local/local_credentials.h +11 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +178 -193
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +62 -34
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +100 -155
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +56 -27
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +19 -19
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +15 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +11 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +19 -15
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +90 -25
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +67 -12
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +234 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +169 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +35 -85
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +75 -151
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +42 -17
- data/src/core/lib/security/credentials/tls/tls_credentials.h +7 -1
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +134 -63
- data/src/core/lib/security/credentials/xds/xds_credentials.h +40 -9
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +22 -18
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +3 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +25 -26
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +1 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +10 -20
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +21 -16
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +5 -6
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +34 -26
- data/src/core/lib/security/security_connector/security_connector.cc +9 -16
- data/src/core/lib/security/security_connector/security_connector.h +34 -25
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +29 -25
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +76 -43
- data/src/core/lib/security/security_connector/ssl_utils.h +17 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +440 -283
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +118 -79
- data/src/core/lib/security/transport/auth_filters.h +39 -5
- data/src/core/lib/security/transport/client_auth_filter.cc +96 -355
- data/src/core/lib/security/transport/secure_endpoint.cc +221 -151
- data/src/core/lib/security/transport/secure_endpoint.h +2 -1
- data/src/core/lib/security/transport/security_handshaker.cc +174 -96
- data/src/core/lib/security/transport/security_handshaker.h +3 -2
- data/src/core/lib/security/transport/server_auth_filter.cc +61 -50
- data/src/core/lib/security/transport/tsi_error.cc +5 -6
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +8 -10
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/service_config/service_config.h +78 -0
- data/src/core/lib/service_config/service_config_call_data.h +75 -0
- data/src/core/lib/service_config/service_config_impl.cc +237 -0
- data/src/core/lib/service_config/service_config_impl.h +132 -0
- data/src/core/lib/service_config/service_config_parser.cc +101 -0
- data/src/core/lib/service_config/service_config_parser.h +113 -0
- data/src/core/lib/slice/b64.cc +1 -1
- data/src/core/lib/slice/b64.h +2 -0
- data/src/core/lib/slice/percent_encoding.cc +87 -97
- data/src/core/lib/slice/percent_encoding.h +22 -33
- data/src/core/lib/slice/slice.cc +83 -192
- data/src/core/lib/slice/slice.h +389 -0
- data/src/core/lib/slice/slice_api.cc +39 -0
- data/src/core/lib/slice/slice_buffer.cc +59 -29
- data/src/core/lib/slice/slice_buffer.h +106 -0
- data/src/core/lib/slice/slice_buffer_api.cc +35 -0
- data/src/core/lib/slice/slice_internal.h +18 -278
- data/src/core/lib/slice/slice_refcount.cc +35 -0
- data/src/core/lib/slice/slice_refcount.h +45 -0
- data/src/core/lib/slice/slice_refcount_base.h +60 -0
- data/src/core/lib/slice/slice_split.cc +103 -0
- data/src/core/lib/slice/slice_split.h +36 -0
- data/src/core/lib/slice/slice_string_helpers.cc +2 -81
- data/src/core/lib/slice/slice_string_helpers.h +1 -15
- data/src/core/lib/surface/api_trace.cc +2 -1
- data/src/core/lib/surface/api_trace.h +1 -0
- data/src/core/lib/surface/builtins.cc +54 -0
- data/src/core/lib/surface/builtins.h +26 -0
- data/src/core/lib/surface/byte_buffer.cc +7 -1
- data/src/core/lib/surface/byte_buffer_reader.cc +5 -5
- data/src/core/lib/surface/call.cc +1186 -1256
- data/src/core/lib/surface/call.h +29 -24
- data/src/core/lib/surface/call_details.cc +4 -4
- data/src/core/lib/surface/call_log_batch.cc +9 -3
- data/src/core/lib/surface/call_test_only.h +4 -1
- data/src/core/lib/surface/channel.cc +221 -315
- data/src/core/lib/surface/channel.h +102 -72
- data/src/core/lib/surface/channel_init.cc +22 -76
- data/src/core/lib/surface/channel_init.h +45 -39
- data/src/core/lib/surface/channel_ping.cc +10 -5
- data/src/core/lib/surface/channel_stack_type.cc +0 -1
- data/src/core/lib/surface/channel_stack_type.h +0 -2
- data/src/core/lib/surface/completion_queue.cc +150 -151
- data/src/core/lib/surface/completion_queue.h +8 -3
- data/src/core/lib/surface/completion_queue_factory.cc +4 -3
- data/src/core/lib/surface/completion_queue_factory.h +1 -2
- data/src/core/lib/surface/event_string.cc +1 -6
- data/src/core/lib/surface/event_string.h +1 -1
- data/src/core/lib/surface/init.cc +82 -90
- data/src/core/lib/surface/init.h +2 -4
- data/src/core/lib/surface/lame_client.cc +80 -92
- data/src/core/lib/surface/lame_client.h +42 -3
- data/src/core/lib/surface/metadata_array.cc +4 -2
- data/src/core/lib/surface/server.cc +201 -220
- data/src/core/lib/surface/server.h +160 -64
- data/src/core/lib/surface/validate_metadata.cc +57 -29
- data/src/core/lib/surface/validate_metadata.h +6 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +14 -13
- data/src/core/lib/transport/bdp_estimator.h +4 -5
- data/src/core/lib/transport/byte_stream.cc +15 -8
- data/src/core/lib/transport/byte_stream.h +14 -9
- data/src/core/lib/transport/connectivity_state.cc +15 -10
- data/src/core/lib/transport/connectivity_state.h +4 -5
- data/src/core/lib/transport/error_utils.cc +71 -30
- data/src/core/lib/transport/error_utils.h +18 -7
- data/src/core/lib/transport/handshaker.cc +227 -0
- data/src/core/lib/transport/handshaker.h +168 -0
- data/src/core/lib/transport/handshaker_factory.h +49 -0
- data/src/core/lib/transport/handshaker_registry.cc +54 -0
- data/src/core/lib/transport/handshaker_registry.h +72 -0
- data/src/core/lib/transport/http_connect_handshaker.cc +401 -0
- data/src/core/lib/transport/http_connect_handshaker.h +42 -0
- data/src/core/lib/transport/metadata_batch.cc +213 -318
- data/src/core/lib/transport/metadata_batch.h +1230 -158
- data/src/core/lib/transport/parsed_metadata.cc +39 -0
- data/src/core/lib/transport/parsed_metadata.h +408 -0
- data/src/core/lib/transport/pid_controller.cc +4 -4
- data/src/core/lib/transport/status_conversion.cc +4 -2
- data/src/core/lib/transport/status_conversion.h +3 -3
- data/src/core/lib/transport/tcp_connect_handshaker.cc +253 -0
- data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
- data/src/core/lib/transport/timeout_encoding.cc +203 -70
- data/src/core/lib/transport/timeout_encoding.h +44 -10
- data/src/core/lib/transport/transport.cc +33 -52
- data/src/core/lib/transport/transport.h +137 -10
- data/src/core/lib/transport/transport_impl.h +24 -0
- data/src/core/lib/transport/transport_op_string.cc +21 -44
- data/src/core/lib/uri/uri_parser.cc +248 -66
- data/src/core/lib/uri/uri_parser.h +39 -25
- data/src/core/plugin_registry/grpc_plugin_registry.cc +84 -90
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +85 -0
- data/src/core/tsi/alts/crypt/aes_gcm.cc +6 -3
- data/src/core/tsi/alts/crypt/gsec.h +5 -0
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +10 -11
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +54 -55
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +9 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +56 -42
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +3 -5
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +2 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +2 -2
- data/src/core/tsi/fake_transport_security.cc +26 -9
- data/src/core/tsi/local_transport_security.cc +42 -87
- data/src/core/tsi/local_transport_security.h +1 -4
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +141 -0
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
- data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -6
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +20 -55
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +8 -11
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +4 -2
- data/src/core/tsi/ssl_transport_security.cc +261 -79
- data/src/core/tsi/ssl_transport_security.h +53 -16
- data/src/core/tsi/transport_security.cc +15 -3
- data/src/core/tsi/transport_security.h +16 -1
- data/src/core/tsi/transport_security_grpc.h +1 -0
- data/src/core/tsi/transport_security_interface.h +28 -0
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +31 -11
- data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
- data/src/ruby/ext/grpc/rb_call.c +5 -5
- data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
- data/src/ruby/ext/grpc/rb_channel.c +24 -10
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
- data/src/ruby/ext/grpc/rb_channel_credentials.c +15 -5
- data/src/ruby/ext/grpc/rb_channel_credentials.h +5 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
- data/src/ruby/ext/grpc/rb_compression_options.c +6 -5
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +4 -4
- data/src/ruby/ext/grpc/rb_grpc.c +9 -4
- data/src/ruby/ext/grpc/rb_grpc.h +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +38 -34
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +59 -53
- data/src/ruby/ext/grpc/rb_server.c +26 -10
- data/src/ruby/ext/grpc/rb_server_credentials.c +22 -6
- data/src/ruby/ext/grpc/rb_server_credentials.h +5 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +218 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +37 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +170 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +37 -0
- data/src/ruby/lib/grpc/generic/active_call.rb +7 -1
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
- data/src/ruby/lib/grpc/grpc.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -0
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +7 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/src/ruby/pb/test/client.rb +769 -0
- data/src/ruby/pb/test/server.rb +252 -0
- data/src/ruby/pb/test/xds_client.rb +415 -0
- data/src/ruby/spec/call_spec.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +32 -0
- data/src/ruby/spec/channel_spec.rb +17 -6
- data/src/ruby/spec/client_auth_spec.rb +27 -1
- data/src/ruby/spec/client_server_spec.rb +1 -1
- data/src/ruby/spec/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +2 -2
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +104 -94
- data/third_party/abseil-cpp/absl/base/attributes.h +88 -35
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +102 -44
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +25 -36
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +48 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +17 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +13 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +70 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +9 -6
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +58 -52
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +17 -3
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
- data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -7
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +1 -1
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +110 -100
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +23 -103
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +39 -79
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +469 -429
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +21 -2
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +374 -243
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +27 -13
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +15 -17
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +11 -7
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +16 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
- data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +27 -13
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +145 -45
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +123 -0
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +50 -0
- data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
- data/third_party/abseil-cpp/absl/meta/type_traits.h +47 -3
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +6 -13
- data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +93 -0
- data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.h +130 -0
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
- data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +92 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +268 -0
- data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +150 -0
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
- data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.h +102 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +221 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +239 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +167 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
- data/third_party/abseil-cpp/absl/random/internal/traits.h +101 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +111 -0
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +257 -0
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +258 -0
- data/third_party/abseil-cpp/absl/random/random.h +189 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +110 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +271 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +27 -28
- data/third_party/abseil-cpp/absl/status/status.h +98 -33
- data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +34 -24
- data/third_party/abseil-cpp/absl/strings/charconv.cc +8 -8
- data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +619 -570
- data/third_party/abseil-cpp/absl/strings/cord.h +346 -101
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +7 -7
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +89 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +478 -31
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +771 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +607 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +118 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +22 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +18 -5
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +20 -5
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +76 -73
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +38 -16
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +49 -74
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +133 -5
- data/third_party/abseil-cpp/absl/strings/numbers.h +44 -10
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
- data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
- data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
- data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +1 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +2 -66
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +82 -65
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +5 -5
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +93 -60
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/span.h +3 -3
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/address_sorting/address_sorting_posix.c +1 -0
- data/third_party/boringssl-with-bazel/err_data.c +760 -724
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +70 -57
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +22 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +6 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +16 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +67 -54
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +650 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +22 -10
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +3 -42
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +75 -63
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
- data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +224 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +79 -354
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +327 -281
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +15 -26
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +20 -75
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +24 -8
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +156 -0
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +11 -10
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +68 -45
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +49 -65
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +101 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +272 -0
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +31 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +28 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +15 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +44 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +35 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +456 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +105 -95
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +56 -72
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +56 -73
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +30 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +123 -44
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +30 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +50 -33
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +65 -41
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +168 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +93 -107
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +91 -113
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +50 -86
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +400 -325
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
- data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +125 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +46 -9
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +10 -6
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +38 -4
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +156 -15
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +96 -49
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +11 -8
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -22
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +34 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +351 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +20 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -179
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +7 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +24 -47
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +4 -31
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +12 -9
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +17 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +26 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +25 -69
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +54 -74
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +61 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -19
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +15 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +23 -21
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +50 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +5 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +239 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +5 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +27 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +29 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +6 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +26 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +10 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +7 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +40 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +48 -40
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +7 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +86 -44
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +69 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1794 -665
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +5 -179
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +63 -14
- data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +3 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +32 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +36 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +60 -38
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +10 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +41 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +67 -106
- data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +99 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +350 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +12 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +26 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +42 -18
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +15 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +128 -91
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +39 -16
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +435 -119
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +48 -36
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1397 -380
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -679
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +192 -52
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +16 -18
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1084 -0
- data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +4325 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +92 -44
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +314 -217
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +177 -35
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +493 -154
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -8
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +34 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +64 -112
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +136 -104
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +12 -17
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +11 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +28 -23
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +79 -34
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +235 -178
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +160 -91
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +269 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/cares/cares/include/ares.h +742 -0
- data/third_party/cares/cares/include/ares_dns.h +112 -0
- data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
- data/third_party/cares/cares/include/ares_version.h +24 -0
- data/third_party/cares/cares/src/lib/ares__close_sockets.c +61 -0
- data/third_party/cares/cares/src/lib/ares__get_hostent.c +260 -0
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
- data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
- data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_android.c +444 -0
- data/third_party/cares/cares/src/lib/ares_android.h +27 -0
- data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_create_query.c +197 -0
- data/third_party/cares/cares/src/lib/ares_data.c +240 -0
- data/third_party/cares/cares/src/lib/ares_data.h +74 -0
- data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_expand_name.c +300 -0
- data/third_party/cares/cares/src/lib/ares_expand_string.c +67 -0
- data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_free_hostent.c +43 -0
- data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
- data/third_party/cares/cares/src/lib/ares_getenv.c +28 -0
- data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
- data/third_party/cares/cares/src/lib/ares_gethostbyaddr.c +287 -0
- data/third_party/cares/cares/src/lib/ares_gethostbyname.c +534 -0
- data/third_party/cares/cares/src/lib/ares_getnameinfo.c +447 -0
- data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
- data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
- data/third_party/cares/cares/src/lib/ares_init.c +2654 -0
- data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
- data/third_party/cares/cares/src/lib/ares_ipv6.h +85 -0
- data/third_party/cares/cares/src/lib/ares_library_init.c +200 -0
- data/third_party/cares/cares/src/lib/ares_library_init.h +43 -0
- data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
- data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
- data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
- data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
- data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
- data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
- data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
- data/third_party/cares/cares/src/lib/ares_parse_mx_reply.c +164 -0
- data/third_party/cares/cares/src/lib/ares_parse_naptr_reply.c +183 -0
- data/third_party/cares/cares/src/lib/ares_parse_ns_reply.c +177 -0
- data/third_party/cares/cares/src/lib/ares_parse_ptr_reply.c +228 -0
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
- data/third_party/cares/cares/src/lib/ares_parse_srv_reply.c +168 -0
- data/third_party/cares/cares/src/lib/ares_parse_txt_reply.c +214 -0
- data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
- data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
- data/third_party/cares/cares/src/lib/ares_private.h +423 -0
- data/third_party/cares/cares/src/lib/ares_process.c +1548 -0
- data/third_party/cares/cares/src/lib/ares_query.c +180 -0
- data/third_party/cares/cares/src/lib/ares_search.c +321 -0
- data/third_party/cares/cares/src/lib/ares_send.c +131 -0
- data/third_party/cares/cares/src/lib/ares_setup.h +220 -0
- data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
- data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
- data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
- data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
- data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_strsplit.c +178 -0
- data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
- data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
- data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
- data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
- data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
- data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
- data/third_party/cares/cares/src/lib/config-dos.h +115 -0
- data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
- data/third_party/cares/cares/src/lib/inet_net_pton.c +444 -0
- data/third_party/cares/cares/src/lib/inet_ntop.c +201 -0
- data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
- data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
- data/third_party/re2/re2/compile.cc +91 -109
- data/third_party/re2/re2/dfa.cc +27 -39
- data/third_party/re2/re2/filtered_re2.cc +18 -2
- data/third_party/re2/re2/filtered_re2.h +10 -5
- data/third_party/re2/re2/nfa.cc +1 -1
- data/third_party/re2/re2/parse.cc +42 -23
- data/third_party/re2/re2/perl_groups.cc +34 -34
- data/third_party/re2/re2/prefilter.cc +3 -2
- data/third_party/re2/re2/prog.cc +182 -4
- data/third_party/re2/re2/prog.h +28 -9
- data/third_party/re2/re2/re2.cc +87 -118
- data/third_party/re2/re2/re2.h +156 -141
- data/third_party/re2/re2/regexp.cc +12 -5
- data/third_party/re2/re2/regexp.h +8 -2
- data/third_party/re2/re2/set.cc +31 -9
- data/third_party/re2/re2/set.h +9 -4
- data/third_party/re2/re2/simplify.cc +11 -3
- data/third_party/re2/re2/tostring.cc +1 -1
- data/third_party/re2/re2/walker-inl.h +1 -1
- data/third_party/re2/util/mutex.h +2 -2
- data/third_party/re2/util/pcre.h +3 -3
- data/third_party/upb/third_party/utf8_range/naive.c +92 -0
- data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
- data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
- data/third_party/upb/upb/decode.c +774 -351
- data/third_party/upb/upb/decode.h +66 -12
- data/third_party/upb/upb/decode_fast.c +596 -581
- data/third_party/upb/upb/decode_fast.h +40 -13
- data/third_party/upb/upb/decode_internal.h +211 -0
- data/third_party/upb/upb/def.c +2151 -1068
- data/third_party/upb/upb/def.h +352 -258
- data/third_party/upb/upb/def.hpp +160 -161
- data/third_party/upb/upb/encode.c +291 -165
- data/third_party/upb/upb/encode.h +38 -13
- data/third_party/upb/upb/json_encode.c +267 -204
- data/third_party/upb/upb/json_encode.h +33 -7
- data/third_party/upb/upb/msg.c +274 -102
- data/third_party/upb/upb/msg.h +83 -582
- data/third_party/upb/upb/msg_internal.h +831 -0
- data/third_party/upb/upb/port_def.inc +93 -24
- data/third_party/upb/upb/port_undef.inc +39 -1
- data/third_party/upb/upb/reflection.c +312 -240
- data/third_party/upb/upb/reflection.h +119 -67
- data/third_party/upb/upb/reflection.hpp +37 -0
- data/third_party/upb/upb/table.c +406 -197
- data/third_party/upb/upb/table_internal.h +385 -0
- data/third_party/upb/upb/text_encode.c +141 -90
- data/third_party/upb/upb/text_encode.h +31 -5
- data/third_party/upb/upb/upb.c +164 -66
- data/third_party/upb/upb/upb.h +182 -146
- data/third_party/upb/upb/upb.hpp +50 -23
- data/third_party/upb/upb/upb_internal.h +68 -0
- data/third_party/xxhash/xxhash.h +5580 -0
- data/third_party/zlib/crc32.c +966 -292
- data/third_party/zlib/crc32.h +9441 -436
- data/third_party/zlib/deflate.c +78 -30
- data/third_party/zlib/deflate.h +12 -15
- data/third_party/zlib/gzguts.h +3 -2
- data/third_party/zlib/gzlib.c +5 -3
- data/third_party/zlib/gzread.c +5 -7
- data/third_party/zlib/gzwrite.c +25 -13
- data/third_party/zlib/infback.c +2 -1
- data/third_party/zlib/inffast.c +14 -14
- data/third_party/zlib/inflate.c +39 -8
- data/third_party/zlib/inflate.h +3 -2
- data/third_party/zlib/inftrees.c +3 -3
- data/third_party/zlib/trees.c +27 -48
- data/third_party/zlib/zlib.h +123 -100
- data/third_party/zlib/zutil.c +2 -2
- data/third_party/zlib/zutil.h +12 -9
- metadata +734 -307
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +0 -388
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -34
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -45
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -85
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
- data/src/core/ext/filters/client_channel/resolver.cc +0 -87
- data/src/core/ext/filters/client_channel/resolver.h +0 -147
- data/src/core/ext/filters/client_channel/resolver_factory.h +0 -73
- data/src/core/ext/filters/client_channel/resolver_registry.cc +0 -197
- data/src/core/ext/filters/client_channel/resolver_registry.h +0 -89
- data/src/core/ext/filters/client_channel/server_address.cc +0 -161
- data/src/core/ext/filters/client_channel/server_address.h +0 -113
- data/src/core/ext/filters/client_channel/service_config.cc +0 -226
- data/src/core/ext/filters/client_channel/service_config.h +0 -126
- data/src/core/ext/filters/client_channel/service_config_call_data.h +0 -86
- data/src/core/ext/filters/client_channel/service_config_parser.cc +0 -89
- data/src/core/ext/filters/client_channel/service_config_parser.h +0 -92
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +0 -440
- data/src/core/ext/filters/max_age/max_age_filter.cc +0 -557
- data/src/core/ext/filters/max_age/max_age_filter.h +0 -26
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -210
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +0 -27
- data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
- data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
- data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
- data/src/core/ext/transport/chttp2/client/authority.h +0 -36
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -124
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -90
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -212
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -45
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -76
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -86
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -37
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -242
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -56
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -30
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -56
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -30
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -56
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -29
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -56
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -56
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.c +0 -28
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +0 -60
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +0 -52
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +0 -143
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +0 -42
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +0 -84
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +0 -36
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +0 -94
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +0 -54
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +0 -173
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +0 -36
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +0 -92
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -124
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -72
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -83
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -82
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -86
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -74
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +0 -42
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +0 -62
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +0 -45
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +0 -49
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +0 -68
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +0 -51
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +0 -35
- data/src/core/lib/avl/avl.cc +0 -306
- data/src/core/lib/channel/handshaker.cc +0 -262
- data/src/core/lib/channel/handshaker.h +0 -179
- data/src/core/lib/channel/handshaker_factory.h +0 -42
- data/src/core/lib/channel/handshaker_registry.cc +0 -105
- data/src/core/lib/channel/handshaker_registry.h +0 -54
- data/src/core/lib/compression/algorithm_metadata.h +0 -61
- data/src/core/lib/compression/compression_args.cc +0 -135
- data/src/core/lib/compression/compression_args.h +0 -56
- data/src/core/lib/compression/stream_compression.cc +0 -80
- data/src/core/lib/compression/stream_compression.h +0 -116
- data/src/core/lib/compression/stream_compression_gzip.cc +0 -230
- data/src/core/lib/compression/stream_compression_gzip.h +0 -28
- data/src/core/lib/compression/stream_compression_identity.cc +0 -90
- data/src/core/lib/compression/stream_compression_identity.h +0 -29
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/gpr/tls_gcc.h +0 -52
- data/src/core/lib/gpr/tls_msvc.h +0 -54
- data/src/core/lib/gpr/tls_pthread.cc +0 -30
- data/src/core/lib/gpr/tls_pthread.h +0 -56
- data/src/core/lib/gpr/tls_stdcpp.h +0 -48
- data/src/core/lib/gprpp/arena.cc +0 -103
- data/src/core/lib/gprpp/arena.h +0 -121
- data/src/core/lib/gprpp/atomic.h +0 -104
- data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
- data/src/core/lib/iomgr/ev_epollex_linux.cc +0 -1658
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -30
- data/src/core/lib/iomgr/iomgr_custom.cc +0 -79
- data/src/core/lib/iomgr/iomgr_custom.h +0 -49
- data/src/core/lib/iomgr/iomgr_posix.h +0 -26
- data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +0 -119
- data/src/core/lib/iomgr/is_epollexclusive_available.h +0 -36
- data/src/core/lib/iomgr/parse_address.cc +0 -322
- data/src/core/lib/iomgr/parse_address.h +0 -77
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/src/core/lib/iomgr/pollset_custom.cc +0 -106
- data/src/core/lib/iomgr/pollset_custom.h +0 -35
- data/src/core/lib/iomgr/pollset_set_custom.cc +0 -48
- data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
- data/src/core/lib/iomgr/pollset_uv.cc +0 -93
- data/src/core/lib/iomgr/pollset_uv.h +0 -32
- data/src/core/lib/iomgr/resolve_address_custom.cc +0 -168
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -45
- data/src/core/lib/iomgr/resource_quota.cc +0 -1016
- data/src/core/lib/iomgr/resource_quota.h +0 -177
- data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
- data/src/core/lib/iomgr/sockaddr_utils.cc +0 -296
- data/src/core/lib/iomgr/sockaddr_utils.h +0 -80
- data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +0 -30
- data/src/core/lib/iomgr/tcp_client_custom.cc +0 -161
- data/src/core/lib/iomgr/tcp_custom.cc +0 -391
- data/src/core/lib/iomgr/tcp_custom.h +0 -84
- data/src/core/lib/iomgr/tcp_server_custom.cc +0 -483
- data/src/core/lib/iomgr/tcp_uv.cc +0 -419
- data/src/core/lib/iomgr/timer_custom.cc +0 -95
- data/src/core/lib/iomgr/timer_custom.h +0 -43
- data/src/core/lib/iomgr/timer_uv.cc +0 -66
- data/src/core/lib/iomgr/udp_server.cc +0 -747
- data/src/core/lib/iomgr/udp_server.h +0 -103
- data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
- data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -97
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
- data/src/core/lib/security/credentials/credentials_metadata.cc +0 -62
- data/src/core/lib/slice/slice_intern.cc +0 -374
- data/src/core/lib/slice/slice_utils.h +0 -200
- data/src/core/lib/surface/init_secure.cc +0 -81
- data/src/core/lib/transport/authority_override.cc +0 -40
- data/src/core/lib/transport/authority_override.h +0 -37
- data/src/core/lib/transport/metadata.cc +0 -689
- data/src/core/lib/transport/metadata.h +0 -446
- data/src/core/lib/transport/static_metadata.cc +0 -1249
- data/src/core/lib/transport/static_metadata.h +0 -604
- data/src/core/lib/transport/status_metadata.cc +0 -62
- data/src/core/lib/transport/status_metadata.h +0 -48
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +0 -93
- data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +0 -130
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +0 -104
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
- data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +0 -533
- data/third_party/boringssl-with-bazel/src/crypto/dh/params.c +0 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -237
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +0 -653
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c +0 -116
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +0 -4100
- data/third_party/cares/cares/ares.h +0 -670
- data/third_party/cares/cares/ares__close_sockets.c +0 -61
- data/third_party/cares/cares/ares__get_hostent.c +0 -261
- data/third_party/cares/cares/ares_create_query.c +0 -206
- data/third_party/cares/cares/ares_data.c +0 -222
- data/third_party/cares/cares/ares_data.h +0 -72
- data/third_party/cares/cares/ares_dns.h +0 -103
- data/third_party/cares/cares/ares_expand_name.c +0 -209
- data/third_party/cares/cares/ares_expand_string.c +0 -70
- data/third_party/cares/cares/ares_free_hostent.c +0 -41
- data/third_party/cares/cares/ares_getenv.c +0 -30
- data/third_party/cares/cares/ares_gethostbyaddr.c +0 -294
- data/third_party/cares/cares/ares_gethostbyname.c +0 -529
- data/third_party/cares/cares/ares_getnameinfo.c +0 -453
- data/third_party/cares/cares/ares_getopt.c +0 -122
- data/third_party/cares/cares/ares_getopt.h +0 -53
- data/third_party/cares/cares/ares_init.c +0 -2615
- data/third_party/cares/cares/ares_ipv6.h +0 -78
- data/third_party/cares/cares/ares_library_init.c +0 -195
- data/third_party/cares/cares/ares_library_init.h +0 -43
- data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_mx_reply.c +0 -170
- data/third_party/cares/cares/ares_parse_naptr_reply.c +0 -194
- data/third_party/cares/cares/ares_parse_ns_reply.c +0 -183
- data/third_party/cares/cares/ares_parse_ptr_reply.c +0 -221
- data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
- data/third_party/cares/cares/ares_parse_srv_reply.c +0 -179
- data/third_party/cares/cares/ares_parse_txt_reply.c +0 -220
- data/third_party/cares/cares/ares_private.h +0 -382
- data/third_party/cares/cares/ares_process.c +0 -1473
- data/third_party/cares/cares/ares_query.c +0 -186
- data/third_party/cares/cares/ares_search.c +0 -323
- data/third_party/cares/cares/ares_send.c +0 -137
- data/third_party/cares/cares/ares_setup.h +0 -217
- data/third_party/cares/cares/ares_strsplit.c +0 -174
- data/third_party/cares/cares/ares_version.h +0 -24
- data/third_party/cares/cares/inet_net_pton.c +0 -450
- data/third_party/cares/cares/inet_ntop.c +0 -207
- data/third_party/upb/third_party/wyhash/wyhash.h +0 -145
- data/third_party/upb/upb/decode.int.h +0 -163
- data/third_party/upb/upb/json_decode.c +0 -1443
- data/third_party/upb/upb/json_decode.h +0 -23
- data/third_party/upb/upb/table.int.h +0 -475
- data/third_party/upb/upb/upb.int.h +0 -29
@@ -18,44 +18,86 @@
|
|
18
18
|
|
19
19
|
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
|
20
20
|
|
21
|
+
#include <inttypes.h>
|
22
|
+
#include <limits.h>
|
23
|
+
#include <stdio.h>
|
24
|
+
#include <stdlib.h>
|
25
|
+
#include <string.h>
|
26
|
+
|
27
|
+
#include <algorithm>
|
28
|
+
#include <memory>
|
29
|
+
#include <new>
|
30
|
+
#include <string>
|
31
|
+
#include <utility>
|
32
|
+
|
33
|
+
#include "absl/base/attributes.h"
|
34
|
+
#include "absl/status/status.h"
|
35
|
+
#include "absl/strings/cord.h"
|
36
|
+
#include "absl/strings/str_cat.h"
|
21
37
|
#include "absl/strings/str_format.h"
|
38
|
+
#include "absl/strings/string_view.h"
|
39
|
+
#include "absl/types/optional.h"
|
22
40
|
|
41
|
+
#include <grpc/impl/codegen/connectivity_state.h>
|
23
42
|
#include <grpc/slice_buffer.h>
|
43
|
+
#include <grpc/status.h>
|
24
44
|
#include <grpc/support/alloc.h>
|
45
|
+
#include <grpc/support/atm.h>
|
25
46
|
#include <grpc/support/log.h>
|
26
|
-
#include <grpc/support/port_platform.h>
|
27
|
-
#include <grpc/support/string_util.h>
|
28
|
-
#include <inttypes.h>
|
29
|
-
#include <limits.h>
|
30
|
-
#include <math.h>
|
31
|
-
#include <stdio.h>
|
32
|
-
#include <string.h>
|
33
47
|
|
34
48
|
#include "src/core/ext/transport/chttp2/transport/context_list.h"
|
49
|
+
#include "src/core/ext/transport/chttp2/transport/flow_control.h"
|
50
|
+
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
35
51
|
#include "src/core/ext/transport/chttp2/transport/frame_data.h"
|
52
|
+
#include "src/core/ext/transport/chttp2/transport/frame_goaway.h"
|
53
|
+
#include "src/core/ext/transport/chttp2/transport/frame_rst_stream.h"
|
54
|
+
#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
|
55
|
+
#include "src/core/ext/transport/chttp2/transport/http2_settings.h"
|
36
56
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
57
|
+
#include "src/core/ext/transport/chttp2/transport/stream_map.h"
|
37
58
|
#include "src/core/ext/transport/chttp2/transport/varint.h"
|
38
59
|
#include "src/core/lib/channel/channel_args.h"
|
39
|
-
#include "src/core/lib/
|
60
|
+
#include "src/core/lib/channel/channel_stack_builder.h"
|
40
61
|
#include "src/core/lib/debug/stats.h"
|
41
|
-
#include "src/core/lib/gpr/
|
42
|
-
#include "src/core/lib/
|
43
|
-
#include "src/core/lib/gprpp/
|
62
|
+
#include "src/core/lib/gpr/useful.h"
|
63
|
+
#include "src/core/lib/gprpp/bitset.h"
|
64
|
+
#include "src/core/lib/gprpp/debug_location.h"
|
65
|
+
#include "src/core/lib/gprpp/global_config_env.h"
|
66
|
+
#include "src/core/lib/gprpp/manual_constructor.h"
|
67
|
+
#include "src/core/lib/gprpp/orphanable.h"
|
68
|
+
#include "src/core/lib/gprpp/ref_counted.h"
|
69
|
+
#include "src/core/lib/gprpp/time.h"
|
44
70
|
#include "src/core/lib/http/parser.h"
|
45
|
-
#include "src/core/lib/iomgr/
|
46
|
-
#include "src/core/lib/iomgr/
|
71
|
+
#include "src/core/lib/iomgr/combiner.h"
|
72
|
+
#include "src/core/lib/iomgr/error.h"
|
73
|
+
#include "src/core/lib/iomgr/exec_ctx.h"
|
74
|
+
#include "src/core/lib/iomgr/iomgr_fwd.h"
|
75
|
+
#include "src/core/lib/iomgr/pollset.h"
|
47
76
|
#include "src/core/lib/iomgr/timer.h"
|
48
77
|
#include "src/core/lib/profiling/timers.h"
|
78
|
+
#include "src/core/lib/resource_quota/api.h"
|
79
|
+
#include "src/core/lib/resource_quota/arena.h"
|
80
|
+
#include "src/core/lib/resource_quota/memory_quota.h"
|
81
|
+
#include "src/core/lib/resource_quota/resource_quota.h"
|
82
|
+
#include "src/core/lib/resource_quota/trace.h"
|
83
|
+
#include "src/core/lib/slice/slice.h"
|
49
84
|
#include "src/core/lib/slice/slice_internal.h"
|
50
|
-
#include "src/core/lib/slice/
|
85
|
+
#include "src/core/lib/slice/slice_refcount.h"
|
86
|
+
#include "src/core/lib/transport/bdp_estimator.h"
|
87
|
+
#include "src/core/lib/transport/byte_stream.h"
|
88
|
+
#include "src/core/lib/transport/connectivity_state.h"
|
51
89
|
#include "src/core/lib/transport/error_utils.h"
|
52
90
|
#include "src/core/lib/transport/http2_errors.h"
|
53
|
-
#include "src/core/lib/transport/
|
91
|
+
#include "src/core/lib/transport/metadata_batch.h"
|
54
92
|
#include "src/core/lib/transport/status_conversion.h"
|
55
|
-
#include "src/core/lib/transport/timeout_encoding.h"
|
56
93
|
#include "src/core/lib/transport/transport.h"
|
57
94
|
#include "src/core/lib/transport/transport_impl.h"
|
58
|
-
|
95
|
+
|
96
|
+
GPR_GLOBAL_CONFIG_DEFINE_BOOL(
|
97
|
+
grpc_experimental_disable_flow_control, false,
|
98
|
+
"If set, flow control will be effectively disabled. Max out all values and "
|
99
|
+
"assume the remote peer does the same. Thus we can ignore any flow control "
|
100
|
+
"bookkeeping, error checking, and decision making");
|
59
101
|
|
60
102
|
#define DEFAULT_CONNECTION_WINDOW_TARGET (1024 * 1024)
|
61
103
|
#define MAX_WINDOW 0x7fffffffu
|
@@ -100,23 +142,23 @@ grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_refcount(false,
|
|
100
142
|
"chttp2_refcount");
|
101
143
|
|
102
144
|
// forward declarations of various callbacks that we'll build closures around
|
103
|
-
static void write_action_begin_locked(void* t,
|
104
|
-
static void write_action(void* t,
|
105
|
-
static void write_action_end(void* t,
|
106
|
-
static void write_action_end_locked(void* t,
|
145
|
+
static void write_action_begin_locked(void* t, grpc_error_handle error);
|
146
|
+
static void write_action(void* t, grpc_error_handle error);
|
147
|
+
static void write_action_end(void* t, grpc_error_handle error);
|
148
|
+
static void write_action_end_locked(void* t, grpc_error_handle error);
|
107
149
|
|
108
|
-
static void read_action(void* t,
|
109
|
-
static void read_action_locked(void* t,
|
150
|
+
static void read_action(void* t, grpc_error_handle error);
|
151
|
+
static void read_action_locked(void* t, grpc_error_handle error);
|
110
152
|
static void continue_read_action_locked(grpc_chttp2_transport* t);
|
111
153
|
|
112
|
-
static void complete_fetch(void* gs,
|
113
|
-
static void complete_fetch_locked(void* gs,
|
154
|
+
static void complete_fetch(void* gs, grpc_error_handle error);
|
155
|
+
static void complete_fetch_locked(void* gs, grpc_error_handle error);
|
114
156
|
// Set a transport level setting, and push it to our peer
|
115
157
|
static void queue_setting_update(grpc_chttp2_transport* t,
|
116
158
|
grpc_chttp2_setting_id id, uint32_t value);
|
117
159
|
|
118
160
|
static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
119
|
-
|
161
|
+
grpc_error_handle error);
|
120
162
|
|
121
163
|
// Start new streams that have been created if we can
|
122
164
|
static void maybe_start_some_streams(grpc_chttp2_transport* t);
|
@@ -126,44 +168,67 @@ static void connectivity_state_set(grpc_chttp2_transport* t,
|
|
126
168
|
const absl::Status& status,
|
127
169
|
const char* reason);
|
128
170
|
|
129
|
-
static void
|
130
|
-
static void
|
131
|
-
static void benign_reclaimer_locked(void* arg, grpc_error* error);
|
132
|
-
static void destructive_reclaimer_locked(void* arg, grpc_error* error);
|
171
|
+
static void benign_reclaimer_locked(void* arg, grpc_error_handle error);
|
172
|
+
static void destructive_reclaimer_locked(void* arg, grpc_error_handle error);
|
133
173
|
|
134
174
|
static void post_benign_reclaimer(grpc_chttp2_transport* t);
|
135
175
|
static void post_destructive_reclaimer(grpc_chttp2_transport* t);
|
136
176
|
|
137
|
-
static void close_transport_locked(grpc_chttp2_transport* t,
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
static void
|
143
|
-
static void
|
144
|
-
static void
|
145
|
-
static void
|
146
|
-
|
147
|
-
static void
|
177
|
+
static void close_transport_locked(grpc_chttp2_transport* t,
|
178
|
+
grpc_error_handle error);
|
179
|
+
static void end_all_the_calls(grpc_chttp2_transport* t,
|
180
|
+
grpc_error_handle error);
|
181
|
+
|
182
|
+
static void start_bdp_ping(void* tp, grpc_error_handle error);
|
183
|
+
static void finish_bdp_ping(void* tp, grpc_error_handle error);
|
184
|
+
static void start_bdp_ping_locked(void* tp, grpc_error_handle error);
|
185
|
+
static void finish_bdp_ping_locked(void* tp, grpc_error_handle error);
|
186
|
+
static void next_bdp_ping_timer_expired(void* tp, grpc_error_handle error);
|
187
|
+
static void next_bdp_ping_timer_expired_locked(void* tp,
|
188
|
+
grpc_error_handle error);
|
189
|
+
|
190
|
+
static void cancel_pings(grpc_chttp2_transport* t, grpc_error_handle error);
|
148
191
|
static void send_ping_locked(grpc_chttp2_transport* t,
|
149
192
|
grpc_closure* on_initiate, grpc_closure* on_ack);
|
150
|
-
static void retry_initiate_ping_locked(void* tp,
|
193
|
+
static void retry_initiate_ping_locked(void* tp, grpc_error_handle error);
|
151
194
|
|
152
195
|
// keepalive-relevant functions
|
153
|
-
static void init_keepalive_ping(void* arg,
|
154
|
-
static void init_keepalive_ping_locked(void* arg,
|
155
|
-
static void start_keepalive_ping(void* arg,
|
156
|
-
static void finish_keepalive_ping(void* arg,
|
157
|
-
static void start_keepalive_ping_locked(void* arg,
|
158
|
-
static void finish_keepalive_ping_locked(void* arg,
|
159
|
-
static void keepalive_watchdog_fired(void* arg,
|
160
|
-
static void keepalive_watchdog_fired_locked(void* arg,
|
196
|
+
static void init_keepalive_ping(void* arg, grpc_error_handle error);
|
197
|
+
static void init_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
198
|
+
static void start_keepalive_ping(void* arg, grpc_error_handle error);
|
199
|
+
static void finish_keepalive_ping(void* arg, grpc_error_handle error);
|
200
|
+
static void start_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
201
|
+
static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
202
|
+
static void keepalive_watchdog_fired(void* arg, grpc_error_handle error);
|
203
|
+
static void keepalive_watchdog_fired_locked(void* arg, grpc_error_handle error);
|
204
|
+
|
205
|
+
static void reset_byte_stream(void* arg, grpc_error_handle error);
|
161
206
|
|
162
|
-
|
207
|
+
namespace grpc_core {
|
163
208
|
|
164
|
-
|
165
|
-
|
166
|
-
|
209
|
+
namespace {
|
210
|
+
TestOnlyGlobalHttp2TransportInitCallback test_only_init_callback = nullptr;
|
211
|
+
TestOnlyGlobalHttp2TransportDestructCallback test_only_destruct_callback =
|
212
|
+
nullptr;
|
213
|
+
bool test_only_disable_transient_failure_state_notification = false;
|
214
|
+
} // namespace
|
215
|
+
|
216
|
+
void TestOnlySetGlobalHttp2TransportInitCallback(
|
217
|
+
TestOnlyGlobalHttp2TransportInitCallback callback) {
|
218
|
+
test_only_init_callback = callback;
|
219
|
+
}
|
220
|
+
|
221
|
+
void TestOnlySetGlobalHttp2TransportDestructCallback(
|
222
|
+
TestOnlyGlobalHttp2TransportDestructCallback callback) {
|
223
|
+
test_only_destruct_callback = callback;
|
224
|
+
}
|
225
|
+
|
226
|
+
void TestOnlyGlobalHttp2TransportDisableTransientFailureStateNotification(
|
227
|
+
bool disable) {
|
228
|
+
test_only_disable_transient_failure_state_notification = disable;
|
229
|
+
}
|
230
|
+
|
231
|
+
} // namespace grpc_core
|
167
232
|
|
168
233
|
//
|
169
234
|
// CONSTRUCTION/DESTRUCTION/REFCOUNTING
|
@@ -181,9 +246,8 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
181
246
|
grpc_slice_buffer_destroy_internal(&qbuf);
|
182
247
|
|
183
248
|
grpc_slice_buffer_destroy_internal(&outbuf);
|
184
|
-
grpc_chttp2_hpack_compressor_destroy(&hpack_compressor);
|
185
249
|
|
186
|
-
|
250
|
+
grpc_error_handle error =
|
187
251
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed");
|
188
252
|
// ContextList::Execute follows semantics of a callback function and does not
|
189
253
|
// take a ref on error
|
@@ -192,7 +256,6 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
192
256
|
cl = nullptr;
|
193
257
|
|
194
258
|
grpc_slice_buffer_destroy_internal(&read_buffer);
|
195
|
-
grpc_chttp2_hpack_parser_destroy(&hpack_parser);
|
196
259
|
grpc_chttp2_goaway_parser_destroy(&goaway_parser);
|
197
260
|
|
198
261
|
for (i = 0; i < STREAM_LIST_COUNT; i++) {
|
@@ -221,6 +284,9 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
221
284
|
|
222
285
|
GRPC_ERROR_UNREF(closed_with_error);
|
223
286
|
gpr_free(ping_acks);
|
287
|
+
if (grpc_core::test_only_destruct_callback != nullptr) {
|
288
|
+
grpc_core::test_only_destruct_callback();
|
289
|
+
}
|
224
290
|
}
|
225
291
|
|
226
292
|
static const grpc_transport_vtable* get_vtable(void);
|
@@ -255,8 +321,7 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
255
321
|
const int value =
|
256
322
|
grpc_channel_arg_get_integer(&channel_args->args[i], options);
|
257
323
|
if (value >= 0) {
|
258
|
-
|
259
|
-
&t->hpack_compressor, static_cast<uint32_t>(value));
|
324
|
+
t->hpack_compressor.SetMaxUsableSize(value);
|
260
325
|
}
|
261
326
|
} else if (0 == strcmp(channel_args->args[i].key,
|
262
327
|
GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA)) {
|
@@ -271,11 +336,11 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
271
336
|
strcmp(channel_args->args[i].key,
|
272
337
|
GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS)) {
|
273
338
|
t->ping_policy.min_recv_ping_interval_without_data =
|
274
|
-
grpc_channel_arg_get_integer(
|
339
|
+
grpc_core::Duration::Milliseconds(grpc_channel_arg_get_integer(
|
275
340
|
&channel_args->args[i],
|
276
341
|
grpc_integer_options{
|
277
342
|
g_default_min_recv_ping_interval_without_data_ms, 0,
|
278
|
-
INT_MAX});
|
343
|
+
INT_MAX}));
|
279
344
|
} else if (0 == strcmp(channel_args->args[i].key,
|
280
345
|
GRPC_ARG_HTTP2_WRITE_BUFFER_SIZE)) {
|
281
346
|
t->write_buffer_size = static_cast<uint32_t>(grpc_channel_arg_get_integer(
|
@@ -291,7 +356,9 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
291
356
|
? g_default_client_keepalive_time_ms
|
292
357
|
: g_default_server_keepalive_time_ms,
|
293
358
|
1, INT_MAX});
|
294
|
-
t->keepalive_time = value == INT_MAX
|
359
|
+
t->keepalive_time = value == INT_MAX
|
360
|
+
? grpc_core::Duration::Infinity()
|
361
|
+
: grpc_core::Duration::Milliseconds(value);
|
295
362
|
} else if (0 == strcmp(channel_args->args[i].key,
|
296
363
|
GRPC_ARG_KEEPALIVE_TIMEOUT_MS)) {
|
297
364
|
const int value = grpc_channel_arg_get_integer(
|
@@ -300,7 +367,9 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
300
367
|
? g_default_client_keepalive_timeout_ms
|
301
368
|
: g_default_server_keepalive_timeout_ms,
|
302
369
|
0, INT_MAX});
|
303
|
-
t->keepalive_timeout = value == INT_MAX
|
370
|
+
t->keepalive_timeout = value == INT_MAX
|
371
|
+
? grpc_core::Duration::Infinity()
|
372
|
+
: grpc_core::Duration::Milliseconds(value);
|
304
373
|
} else if (0 == strcmp(channel_args->args[i].key,
|
305
374
|
GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS)) {
|
306
375
|
t->keepalive_permit_without_calls = static_cast<uint32_t>(
|
@@ -366,7 +435,9 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
366
435
|
t->channelz_socket =
|
367
436
|
grpc_core::MakeRefCounted<grpc_core::channelz::SocketNode>(
|
368
437
|
std::string(grpc_endpoint_get_local_address(t->ep)), t->peer_string,
|
369
|
-
absl::StrFormat("%s %s", get_vtable()->name, t->peer_string)
|
438
|
+
absl::StrFormat("%s %s", get_vtable()->name, t->peer_string),
|
439
|
+
grpc_core::channelz::SocketNode::Security::GetFromChannelArgs(
|
440
|
+
channel_args));
|
370
441
|
}
|
371
442
|
return enable_bdp;
|
372
443
|
}
|
@@ -374,20 +445,24 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
374
445
|
static void init_transport_keepalive_settings(grpc_chttp2_transport* t) {
|
375
446
|
if (t->is_client) {
|
376
447
|
t->keepalive_time = g_default_client_keepalive_time_ms == INT_MAX
|
377
|
-
?
|
378
|
-
:
|
448
|
+
? grpc_core::Duration::Infinity()
|
449
|
+
: grpc_core::Duration::Milliseconds(
|
450
|
+
g_default_client_keepalive_time_ms);
|
379
451
|
t->keepalive_timeout = g_default_client_keepalive_timeout_ms == INT_MAX
|
380
|
-
?
|
381
|
-
:
|
452
|
+
? grpc_core::Duration::Infinity()
|
453
|
+
: grpc_core::Duration::Milliseconds(
|
454
|
+
g_default_client_keepalive_timeout_ms);
|
382
455
|
t->keepalive_permit_without_calls =
|
383
456
|
g_default_client_keepalive_permit_without_calls;
|
384
457
|
} else {
|
385
458
|
t->keepalive_time = g_default_server_keepalive_time_ms == INT_MAX
|
386
|
-
?
|
387
|
-
:
|
459
|
+
? grpc_core::Duration::Infinity()
|
460
|
+
: grpc_core::Duration::Milliseconds(
|
461
|
+
g_default_server_keepalive_time_ms);
|
388
462
|
t->keepalive_timeout = g_default_server_keepalive_timeout_ms == INT_MAX
|
389
|
-
?
|
390
|
-
:
|
463
|
+
? grpc_core::Duration::Infinity()
|
464
|
+
: grpc_core::Duration::Milliseconds(
|
465
|
+
g_default_server_keepalive_timeout_ms);
|
391
466
|
t->keepalive_permit_without_calls =
|
392
467
|
g_default_server_keepalive_permit_without_calls;
|
393
468
|
}
|
@@ -397,11 +472,12 @@ static void configure_transport_ping_policy(grpc_chttp2_transport* t) {
|
|
397
472
|
t->ping_policy.max_pings_without_data = g_default_max_pings_without_data;
|
398
473
|
t->ping_policy.max_ping_strikes = g_default_max_ping_strikes;
|
399
474
|
t->ping_policy.min_recv_ping_interval_without_data =
|
400
|
-
|
475
|
+
grpc_core::Duration::Milliseconds(
|
476
|
+
g_default_min_recv_ping_interval_without_data_ms);
|
401
477
|
}
|
402
478
|
|
403
479
|
static void init_keepalive_pings_if_enabled(grpc_chttp2_transport* t) {
|
404
|
-
if (t->keepalive_time !=
|
480
|
+
if (t->keepalive_time != grpc_core::Duration::Infinity()) {
|
405
481
|
t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_WAITING;
|
406
482
|
GRPC_CHTTP2_REF_TRANSPORT(t, "init keepalive ping");
|
407
483
|
GRPC_CLOSURE_INIT(&t->init_keepalive_ping_locked, init_keepalive_ping, t,
|
@@ -417,14 +493,18 @@ static void init_keepalive_pings_if_enabled(grpc_chttp2_transport* t) {
|
|
417
493
|
}
|
418
494
|
|
419
495
|
grpc_chttp2_transport::grpc_chttp2_transport(
|
420
|
-
const grpc_channel_args* channel_args, grpc_endpoint* ep, bool is_client
|
421
|
-
grpc_resource_user* resource_user)
|
496
|
+
const grpc_channel_args* channel_args, grpc_endpoint* ep, bool is_client)
|
422
497
|
: refs(1, GRPC_TRACE_FLAG_ENABLED(grpc_trace_chttp2_refcount)
|
423
498
|
? "chttp2_refcount"
|
424
499
|
: nullptr),
|
425
500
|
ep(ep),
|
426
501
|
peer_string(grpc_endpoint_get_peer(ep)),
|
427
|
-
|
502
|
+
memory_owner(grpc_core::ResourceQuotaFromChannelArgs(channel_args)
|
503
|
+
->memory_quota()
|
504
|
+
->CreateMemoryOwner(absl::StrCat(
|
505
|
+
grpc_endpoint_get_peer(ep), ":client_transport"))),
|
506
|
+
self_reservation(
|
507
|
+
memory_owner.MakeReservation(sizeof(grpc_chttp2_transport))),
|
428
508
|
combiner(grpc_combiner_create()),
|
429
509
|
state_tracker(is_client ? "client_transport" : "server_transport",
|
430
510
|
GRPC_CHANNEL_READY),
|
@@ -447,7 +527,6 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
447
527
|
grpc_slice_buffer_add(&outbuf, grpc_slice_from_copied_string(
|
448
528
|
GRPC_CHTTP2_CLIENT_CONNECT_STRING));
|
449
529
|
}
|
450
|
-
grpc_chttp2_hpack_compressor_init(&hpack_compressor);
|
451
530
|
grpc_slice_buffer_init(&qbuf);
|
452
531
|
// copy in initial settings to all setting sets
|
453
532
|
size_t i;
|
@@ -457,7 +536,6 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
457
536
|
settings[j][i] = grpc_chttp2_settings_parameters[i].default_value;
|
458
537
|
}
|
459
538
|
}
|
460
|
-
grpc_chttp2_hpack_parser_init(&hpack_parser);
|
461
539
|
grpc_chttp2_goaway_parser_init(&goaway_parser);
|
462
540
|
|
463
541
|
// configure http2 the way we like it
|
@@ -478,7 +556,9 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
478
556
|
enable_bdp = read_channel_args(this, channel_args, is_client);
|
479
557
|
}
|
480
558
|
|
481
|
-
|
559
|
+
static const bool kEnableFlowControl =
|
560
|
+
!GPR_GLOBAL_CONFIG_GET(grpc_experimental_disable_flow_control);
|
561
|
+
if (kEnableFlowControl) {
|
482
562
|
flow_control.Init<grpc_core::chttp2::TransportFlowControl>(this,
|
483
563
|
enable_bdp);
|
484
564
|
} else {
|
@@ -489,9 +569,9 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
489
569
|
// No pings allowed before receiving a header or data frame.
|
490
570
|
ping_state.pings_before_data_required = 0;
|
491
571
|
ping_state.is_delayed_ping_timer_set = false;
|
492
|
-
ping_state.last_ping_sent_time =
|
572
|
+
ping_state.last_ping_sent_time = grpc_core::Timestamp::InfPast();
|
493
573
|
|
494
|
-
ping_recv_state.last_ping_recv_time =
|
574
|
+
ping_recv_state.last_ping_recv_time = grpc_core::Timestamp::InfPast();
|
495
575
|
ping_recv_state.ping_strikes = 0;
|
496
576
|
|
497
577
|
init_keepalive_pings_if_enabled(this);
|
@@ -504,15 +584,19 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
504
584
|
|
505
585
|
grpc_chttp2_initiate_write(this, GRPC_CHTTP2_INITIATE_WRITE_INITIAL_WRITE);
|
506
586
|
post_benign_reclaimer(this);
|
587
|
+
if (grpc_core::test_only_init_callback != nullptr) {
|
588
|
+
grpc_core::test_only_init_callback();
|
589
|
+
}
|
507
590
|
}
|
508
591
|
|
509
|
-
static void destroy_transport_locked(void* tp,
|
592
|
+
static void destroy_transport_locked(void* tp, grpc_error_handle /*error*/) {
|
510
593
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
511
594
|
t->destroying = 1;
|
512
595
|
close_transport_locked(
|
513
596
|
t, grpc_error_set_int(
|
514
597
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed"),
|
515
598
|
GRPC_ERROR_INT_OCCURRED_DURING_WRITE, t->write_state));
|
599
|
+
t->memory_owner.Reset();
|
516
600
|
// Must be the last line.
|
517
601
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "destroy");
|
518
602
|
}
|
@@ -524,7 +608,7 @@ static void destroy_transport(grpc_transport* gt) {
|
|
524
608
|
}
|
525
609
|
|
526
610
|
static void close_transport_locked(grpc_chttp2_transport* t,
|
527
|
-
|
611
|
+
grpc_error_handle error) {
|
528
612
|
end_all_the_calls(t, GRPC_ERROR_REF(error));
|
529
613
|
cancel_pings(t, GRPC_ERROR_REF(error));
|
530
614
|
if (t->closed_with_error == GRPC_ERROR_NONE) {
|
@@ -533,7 +617,7 @@ static void close_transport_locked(grpc_chttp2_transport* t,
|
|
533
617
|
GRPC_STATUS_UNAVAILABLE);
|
534
618
|
}
|
535
619
|
if (t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE) {
|
536
|
-
if (t->close_transport_on_writes_finished ==
|
620
|
+
if (t->close_transport_on_writes_finished == GRPC_ERROR_NONE) {
|
537
621
|
t->close_transport_on_writes_finished =
|
538
622
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
539
623
|
"Delayed close due to in-progress write");
|
@@ -579,6 +663,11 @@ static void close_transport_locked(grpc_chttp2_transport* t,
|
|
579
663
|
GRPC_ERROR_REF(error));
|
580
664
|
t->notify_on_receive_settings = nullptr;
|
581
665
|
}
|
666
|
+
if (t->notify_on_close != nullptr) {
|
667
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, t->notify_on_close,
|
668
|
+
GRPC_ERROR_REF(error));
|
669
|
+
t->notify_on_close = nullptr;
|
670
|
+
}
|
582
671
|
GRPC_ERROR_UNREF(error);
|
583
672
|
}
|
584
673
|
|
@@ -613,8 +702,8 @@ grpc_chttp2_stream::grpc_chttp2_stream(grpc_chttp2_transport* t,
|
|
613
702
|
: t(t),
|
614
703
|
refcount(refcount),
|
615
704
|
reffer(this),
|
616
|
-
|
617
|
-
|
705
|
+
initial_metadata_buffer(arena),
|
706
|
+
trailing_metadata_buffer(arena) {
|
618
707
|
if (server_data) {
|
619
708
|
id = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(server_data));
|
620
709
|
*t->accepting_stream = this;
|
@@ -652,16 +741,9 @@ grpc_chttp2_stream::~grpc_chttp2_stream() {
|
|
652
741
|
|
653
742
|
grpc_slice_buffer_destroy_internal(&unprocessed_incoming_frames_buffer);
|
654
743
|
grpc_slice_buffer_destroy_internal(&frame_storage);
|
655
|
-
if (stream_compression_method != GRPC_STREAM_COMPRESSION_IDENTITY_COMPRESS) {
|
656
|
-
grpc_slice_buffer_destroy_internal(&compressed_data_buffer);
|
657
|
-
}
|
658
|
-
if (stream_decompression_method !=
|
659
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_DECOMPRESS) {
|
660
|
-
grpc_slice_buffer_destroy_internal(&decompressed_data_buffer);
|
661
|
-
}
|
662
744
|
|
663
745
|
for (int i = 0; i < STREAM_LIST_COUNT; i++) {
|
664
|
-
if (GPR_UNLIKELY(included
|
746
|
+
if (GPR_UNLIKELY(included.is_set(i))) {
|
665
747
|
gpr_log(GPR_ERROR, "%s stream %d still included in list %d",
|
666
748
|
t->is_client ? "client" : "server", id, i);
|
667
749
|
abort();
|
@@ -678,13 +760,7 @@ grpc_chttp2_stream::~grpc_chttp2_stream() {
|
|
678
760
|
GRPC_ERROR_UNREF(read_closed_error);
|
679
761
|
GRPC_ERROR_UNREF(write_closed_error);
|
680
762
|
GRPC_ERROR_UNREF(byte_stream_error);
|
681
|
-
|
682
763
|
flow_control.Destroy();
|
683
|
-
|
684
|
-
if (t->resource_user != nullptr) {
|
685
|
-
grpc_resource_user_free(t->resource_user, GRPC_RESOURCE_QUOTA_CALL_SIZE);
|
686
|
-
}
|
687
|
-
|
688
764
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "stream");
|
689
765
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, destroy_stream_arg, GRPC_ERROR_NONE);
|
690
766
|
}
|
@@ -698,7 +774,7 @@ static int init_stream(grpc_transport* gt, grpc_stream* gs,
|
|
698
774
|
return 0;
|
699
775
|
}
|
700
776
|
|
701
|
-
static void destroy_stream_locked(void* sp,
|
777
|
+
static void destroy_stream_locked(void* sp, grpc_error_handle /*error*/) {
|
702
778
|
GPR_TIMER_SCOPE("destroy_stream", 0);
|
703
779
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(sp);
|
704
780
|
s->~grpc_chttp2_stream();
|
@@ -709,18 +785,6 @@ static void destroy_stream(grpc_transport* gt, grpc_stream* gs,
|
|
709
785
|
GPR_TIMER_SCOPE("destroy_stream", 0);
|
710
786
|
grpc_chttp2_transport* t = reinterpret_cast<grpc_chttp2_transport*>(gt);
|
711
787
|
grpc_chttp2_stream* s = reinterpret_cast<grpc_chttp2_stream*>(gs);
|
712
|
-
if (s->stream_compression_method !=
|
713
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_COMPRESS &&
|
714
|
-
s->stream_compression_ctx != nullptr) {
|
715
|
-
grpc_stream_compression_context_destroy(s->stream_compression_ctx);
|
716
|
-
s->stream_compression_ctx = nullptr;
|
717
|
-
}
|
718
|
-
if (s->stream_decompression_method !=
|
719
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_DECOMPRESS &&
|
720
|
-
s->stream_decompression_ctx != nullptr) {
|
721
|
-
grpc_stream_compression_context_destroy(s->stream_decompression_ctx);
|
722
|
-
s->stream_decompression_ctx = nullptr;
|
723
|
-
}
|
724
788
|
|
725
789
|
s->destroy_stream_arg = then_schedule_closure;
|
726
790
|
t->combiner->Run(
|
@@ -733,18 +797,6 @@ grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(grpc_chttp2_transport* t,
|
|
733
797
|
if (t->accept_stream_cb == nullptr) {
|
734
798
|
return nullptr;
|
735
799
|
}
|
736
|
-
// Don't accept the stream if memory quota doesn't allow. Note that we should
|
737
|
-
// simply refuse the stream here instead of canceling the stream after it's
|
738
|
-
// accepted since the latter will create the call which costs much memory.
|
739
|
-
if (t->resource_user != nullptr &&
|
740
|
-
!grpc_resource_user_safe_alloc(t->resource_user,
|
741
|
-
GRPC_RESOURCE_QUOTA_CALL_SIZE)) {
|
742
|
-
gpr_log(GPR_ERROR, "Memory exhausted, rejecting the stream.");
|
743
|
-
grpc_chttp2_add_rst_stream_to_next_write(t, id, GRPC_HTTP2_REFUSED_STREAM,
|
744
|
-
nullptr);
|
745
|
-
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_RST_STREAM);
|
746
|
-
return nullptr;
|
747
|
-
}
|
748
800
|
grpc_chttp2_stream* accepting = nullptr;
|
749
801
|
GPR_ASSERT(t->accepting_stream == nullptr);
|
750
802
|
t->accepting_stream = &accepting;
|
@@ -785,9 +837,9 @@ static void set_write_state(grpc_chttp2_transport* t,
|
|
785
837
|
// from peer while we had some pending writes)
|
786
838
|
if (st == GRPC_CHTTP2_WRITE_STATE_IDLE) {
|
787
839
|
grpc_core::ExecCtx::RunList(DEBUG_LOCATION, &t->run_after_write);
|
788
|
-
if (t->close_transport_on_writes_finished !=
|
789
|
-
|
790
|
-
t->close_transport_on_writes_finished =
|
840
|
+
if (t->close_transport_on_writes_finished != GRPC_ERROR_NONE) {
|
841
|
+
grpc_error_handle err = t->close_transport_on_writes_finished;
|
842
|
+
t->close_transport_on_writes_finished = GRPC_ERROR_NONE;
|
791
843
|
close_transport_locked(t, err);
|
792
844
|
}
|
793
845
|
}
|
@@ -835,6 +887,9 @@ static void inc_initiate_write_reason(
|
|
835
887
|
case GRPC_CHTTP2_INITIATE_WRITE_SEND_SETTINGS:
|
836
888
|
GRPC_STATS_INC_HTTP2_INITIATE_WRITE_DUE_TO_SEND_SETTINGS();
|
837
889
|
break;
|
890
|
+
case GRPC_CHTTP2_INITIATE_WRITE_SETTINGS_ACK:
|
891
|
+
GRPC_STATS_INC_HTTP2_INITIATE_WRITE_DUE_TO_SETTINGS_ACK();
|
892
|
+
break;
|
838
893
|
case GRPC_CHTTP2_INITIATE_WRITE_FLOW_CONTROL_UNSTALLED_BY_SETTING:
|
839
894
|
GRPC_STATS_INC_HTTP2_INITIATE_WRITE_DUE_TO_FLOW_CONTROL_UNSTALLED_BY_SETTING();
|
840
895
|
break;
|
@@ -918,7 +973,8 @@ static const char* begin_writing_desc(bool partial) {
|
|
918
973
|
}
|
919
974
|
}
|
920
975
|
|
921
|
-
static void write_action_begin_locked(void* gt,
|
976
|
+
static void write_action_begin_locked(void* gt,
|
977
|
+
grpc_error_handle /*error_ignored*/) {
|
922
978
|
GPR_TIMER_SCOPE("write_action_begin_locked", 0);
|
923
979
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
924
980
|
GPR_ASSERT(t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE);
|
@@ -957,7 +1013,7 @@ static void write_action_begin_locked(void* gt, grpc_error* /*error_ignored*/) {
|
|
957
1013
|
}
|
958
1014
|
}
|
959
1015
|
|
960
|
-
static void write_action(void* gt,
|
1016
|
+
static void write_action(void* gt, grpc_error_handle /*error*/) {
|
961
1017
|
GPR_TIMER_SCOPE("write_action", 0);
|
962
1018
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
963
1019
|
void* cl = t->cl;
|
@@ -966,10 +1022,10 @@ static void write_action(void* gt, grpc_error* /*error*/) {
|
|
966
1022
|
t->ep, &t->outbuf,
|
967
1023
|
GRPC_CLOSURE_INIT(&t->write_action_end_locked, write_action_end, t,
|
968
1024
|
grpc_schedule_on_exec_ctx),
|
969
|
-
cl);
|
1025
|
+
cl, /*max_frame_size=*/INT_MAX);
|
970
1026
|
}
|
971
1027
|
|
972
|
-
static void write_action_end(void* tp,
|
1028
|
+
static void write_action_end(void* tp, grpc_error_handle error) {
|
973
1029
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
974
1030
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->write_action_end_locked,
|
975
1031
|
write_action_end_locked, t, nullptr),
|
@@ -978,7 +1034,7 @@ static void write_action_end(void* tp, grpc_error* error) {
|
|
978
1034
|
|
979
1035
|
// Callback from the grpc_endpoint after bytes have been written by calling
|
980
1036
|
// sendmsg
|
981
|
-
static void write_action_end_locked(void* tp,
|
1037
|
+
static void write_action_end_locked(void* tp, grpc_error_handle error) {
|
982
1038
|
GPR_TIMER_SCOPE("terminate_writing_with_lock", 0);
|
983
1039
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
984
1040
|
|
@@ -988,8 +1044,8 @@ static void write_action_end_locked(void* tp, grpc_error* error) {
|
|
988
1044
|
closed = true;
|
989
1045
|
}
|
990
1046
|
|
991
|
-
if (t->sent_goaway_state ==
|
992
|
-
t->sent_goaway_state =
|
1047
|
+
if (t->sent_goaway_state == GRPC_CHTTP2_FINAL_GOAWAY_SEND_SCHEDULED) {
|
1048
|
+
t->sent_goaway_state = GRPC_CHTTP2_FINAL_GOAWAY_SENT;
|
993
1049
|
closed = true;
|
994
1050
|
if (grpc_chttp2_stream_map_size(&t->stream_map) == 0) {
|
995
1051
|
close_transport_locked(
|
@@ -1033,7 +1089,7 @@ static void queue_setting_update(grpc_chttp2_transport* t,
|
|
1033
1089
|
grpc_chttp2_setting_id id, uint32_t value) {
|
1034
1090
|
const grpc_chttp2_setting_parameters* sp =
|
1035
1091
|
&grpc_chttp2_settings_parameters[id];
|
1036
|
-
uint32_t use_value =
|
1092
|
+
uint32_t use_value = grpc_core::Clamp(value, sp->min_value, sp->max_value);
|
1037
1093
|
if (use_value != value) {
|
1038
1094
|
gpr_log(GPR_INFO, "Requested parameter %s clamped from %d to %d", sp->name,
|
1039
1095
|
value, use_value);
|
@@ -1044,10 +1100,23 @@ static void queue_setting_update(grpc_chttp2_transport* t,
|
|
1044
1100
|
}
|
1045
1101
|
}
|
1046
1102
|
|
1103
|
+
// Cancel out streams that haven't yet started if we have received a GOAWAY
|
1104
|
+
static void cancel_unstarted_streams(grpc_chttp2_transport* t,
|
1105
|
+
grpc_error_handle error) {
|
1106
|
+
grpc_chttp2_stream* s;
|
1107
|
+
while (grpc_chttp2_list_pop_waiting_for_concurrency(t, &s)) {
|
1108
|
+
s->trailing_metadata_buffer.Set(
|
1109
|
+
grpc_core::GrpcStreamNetworkState(),
|
1110
|
+
grpc_core::GrpcStreamNetworkState::kNotSentOnWire);
|
1111
|
+
grpc_chttp2_cancel_stream(t, s, GRPC_ERROR_REF(error));
|
1112
|
+
}
|
1113
|
+
GRPC_ERROR_UNREF(error);
|
1114
|
+
}
|
1115
|
+
|
1047
1116
|
void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
1048
1117
|
uint32_t goaway_error,
|
1049
1118
|
uint32_t last_stream_id,
|
1050
|
-
|
1119
|
+
absl::string_view goaway_text) {
|
1051
1120
|
// Discard the error from a previous goaway frame (if any)
|
1052
1121
|
if (t->goaway_error != GRPC_ERROR_NONE) {
|
1053
1122
|
GRPC_ERROR_UNREF(t->goaway_error);
|
@@ -1067,7 +1136,25 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1067
1136
|
// received a GOAWAY with a non NO_ERROR code.
|
1068
1137
|
if (goaway_error != GRPC_HTTP2_NO_ERROR) {
|
1069
1138
|
gpr_log(GPR_INFO, "%s: Got goaway [%d] err=%s", t->peer_string.c_str(),
|
1070
|
-
goaway_error,
|
1139
|
+
goaway_error, grpc_error_std_string(t->goaway_error).c_str());
|
1140
|
+
}
|
1141
|
+
if (t->is_client) {
|
1142
|
+
cancel_unstarted_streams(t, GRPC_ERROR_REF(t->goaway_error));
|
1143
|
+
// Cancel all unseen streams
|
1144
|
+
grpc_chttp2_stream_map_for_each(
|
1145
|
+
&t->stream_map,
|
1146
|
+
[](void* user_data, uint32_t /* key */, void* stream) {
|
1147
|
+
uint32_t last_stream_id = *(static_cast<uint32_t*>(user_data));
|
1148
|
+
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(stream);
|
1149
|
+
if (s->id > last_stream_id) {
|
1150
|
+
s->trailing_metadata_buffer.Set(
|
1151
|
+
grpc_core::GrpcStreamNetworkState(),
|
1152
|
+
grpc_core::GrpcStreamNetworkState::kNotSeenByServer);
|
1153
|
+
grpc_chttp2_cancel_stream(s->t, s,
|
1154
|
+
GRPC_ERROR_REF(s->t->goaway_error));
|
1155
|
+
}
|
1156
|
+
},
|
1157
|
+
&last_stream_id);
|
1071
1158
|
}
|
1072
1159
|
absl::Status status = grpc_error_to_absl_status(t->goaway_error);
|
1073
1160
|
// When a client receives a GOAWAY with error code ENHANCE_YOUR_CALM and debug
|
@@ -1076,38 +1163,33 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1076
1163
|
// for new connections on that channel.
|
1077
1164
|
if (GPR_UNLIKELY(t->is_client &&
|
1078
1165
|
goaway_error == GRPC_HTTP2_ENHANCE_YOUR_CALM &&
|
1079
|
-
|
1166
|
+
goaway_text == "too_many_pings")) {
|
1080
1167
|
gpr_log(GPR_ERROR,
|
1081
1168
|
"Received a GOAWAY with error code ENHANCE_YOUR_CALM and debug "
|
1082
1169
|
"data equal to \"too_many_pings\"");
|
1083
|
-
|
1084
|
-
|
1085
|
-
INT_MAX / KEEPALIVE_TIME_BACKOFF_MULTIPLIER;
|
1170
|
+
constexpr auto max_keepalive_time = grpc_core::Duration::Milliseconds(
|
1171
|
+
INT_MAX / KEEPALIVE_TIME_BACKOFF_MULTIPLIER);
|
1086
1172
|
t->keepalive_time =
|
1087
|
-
|
1088
|
-
?
|
1089
|
-
:
|
1090
|
-
KEEPALIVE_TIME_BACKOFF_MULTIPLIER);
|
1173
|
+
t->keepalive_time > max_keepalive_time
|
1174
|
+
? grpc_core::Duration::Infinity()
|
1175
|
+
: t->keepalive_time * KEEPALIVE_TIME_BACKOFF_MULTIPLIER;
|
1091
1176
|
status.SetPayload(grpc_core::kKeepaliveThrottlingKey,
|
1092
|
-
absl::Cord(std::to_string(t->keepalive_time)));
|
1177
|
+
absl::Cord(std::to_string(t->keepalive_time.millis())));
|
1093
1178
|
}
|
1094
1179
|
// lie: use transient failure from the transport to indicate goaway has been
|
1095
1180
|
// received.
|
1096
|
-
|
1097
|
-
|
1181
|
+
if (!grpc_core::test_only_disable_transient_failure_state_notification) {
|
1182
|
+
connectivity_state_set(t, GRPC_CHANNEL_TRANSIENT_FAILURE, status,
|
1183
|
+
"got_goaway");
|
1184
|
+
}
|
1098
1185
|
}
|
1099
1186
|
|
1100
1187
|
static void maybe_start_some_streams(grpc_chttp2_transport* t) {
|
1101
1188
|
grpc_chttp2_stream* s;
|
1102
|
-
// cancel out streams that haven't yet started if we have received a
|
1189
|
+
// maybe cancel out streams that haven't yet started if we have received a
|
1190
|
+
// GOAWAY
|
1103
1191
|
if (t->goaway_error != GRPC_ERROR_NONE) {
|
1104
|
-
|
1105
|
-
grpc_chttp2_cancel_stream(
|
1106
|
-
t, s,
|
1107
|
-
grpc_error_set_int(
|
1108
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("GOAWAY received"),
|
1109
|
-
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE));
|
1110
|
-
}
|
1192
|
+
cancel_unstarted_streams(t, GRPC_ERROR_REF(t->goaway_error));
|
1111
1193
|
return;
|
1112
1194
|
}
|
1113
1195
|
// start streams where we have free grpc_chttp2_stream ids and free
|
@@ -1142,6 +1224,9 @@ static void maybe_start_some_streams(grpc_chttp2_transport* t) {
|
|
1142
1224
|
// cancel out streams that will never be started
|
1143
1225
|
if (t->next_stream_id >= MAX_CLIENT_STREAM_ID) {
|
1144
1226
|
while (grpc_chttp2_list_pop_waiting_for_concurrency(t, &s)) {
|
1227
|
+
s->trailing_metadata_buffer.Set(
|
1228
|
+
grpc_core::GrpcStreamNetworkState(),
|
1229
|
+
grpc_core::GrpcStreamNetworkState::kNotSentOnWire);
|
1145
1230
|
grpc_chttp2_cancel_stream(
|
1146
1231
|
t, s,
|
1147
1232
|
grpc_error_set_int(
|
@@ -1173,7 +1258,8 @@ static void null_then_sched_closure(grpc_closure** closure) {
|
|
1173
1258
|
void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
1174
1259
|
grpc_chttp2_stream* /*s*/,
|
1175
1260
|
grpc_closure** pclosure,
|
1176
|
-
|
1261
|
+
grpc_error_handle error,
|
1262
|
+
const char* desc) {
|
1177
1263
|
grpc_closure* closure = *pclosure;
|
1178
1264
|
*pclosure = nullptr;
|
1179
1265
|
if (closure == nullptr) {
|
@@ -1182,7 +1268,6 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1182
1268
|
}
|
1183
1269
|
closure->next_data.scratch -= CLOSURE_BARRIER_FIRST_REF_BIT;
|
1184
1270
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1185
|
-
const char* errstr = grpc_error_string(error);
|
1186
1271
|
gpr_log(
|
1187
1272
|
GPR_INFO,
|
1188
1273
|
"complete_closure_step: t=%p %p refs=%d flags=0x%04x desc=%s err=%s "
|
@@ -1192,39 +1277,53 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1192
1277
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1193
1278
|
static_cast<int>(closure->next_data.scratch %
|
1194
1279
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1195
|
-
desc,
|
1280
|
+
desc, grpc_error_std_string(error).c_str(),
|
1281
|
+
write_state_name(t->write_state));
|
1196
1282
|
}
|
1197
1283
|
if (error != GRPC_ERROR_NONE) {
|
1198
|
-
|
1199
|
-
|
1284
|
+
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
1285
|
+
grpc_error_handle cl_err =
|
1286
|
+
grpc_core::internal::StatusMoveFromHeapPtr(closure->error_data.error);
|
1287
|
+
#else
|
1288
|
+
grpc_error_handle cl_err =
|
1289
|
+
reinterpret_cast<grpc_error_handle>(closure->error_data.error);
|
1290
|
+
#endif
|
1291
|
+
if (cl_err == GRPC_ERROR_NONE) {
|
1292
|
+
cl_err = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1200
1293
|
"Error in HTTP transport completing operation");
|
1201
|
-
|
1202
|
-
|
1203
|
-
grpc_slice_from_copied_string(t->peer_string.c_str()));
|
1294
|
+
cl_err = grpc_error_set_str(cl_err, GRPC_ERROR_STR_TARGET_ADDRESS,
|
1295
|
+
t->peer_string);
|
1204
1296
|
}
|
1205
|
-
|
1206
|
-
|
1297
|
+
cl_err = grpc_error_add_child(cl_err, error);
|
1298
|
+
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
1299
|
+
closure->error_data.error = grpc_core::internal::StatusAllocHeapPtr(cl_err);
|
1300
|
+
#else
|
1301
|
+
closure->error_data.error = reinterpret_cast<intptr_t>(cl_err);
|
1302
|
+
#endif
|
1207
1303
|
}
|
1208
1304
|
if (closure->next_data.scratch < CLOSURE_BARRIER_FIRST_REF_BIT) {
|
1209
1305
|
if ((t->write_state == GRPC_CHTTP2_WRITE_STATE_IDLE) ||
|
1210
1306
|
!(closure->next_data.scratch & CLOSURE_BARRIER_MAY_COVER_WRITE)) {
|
1211
1307
|
// Using GRPC_CLOSURE_SCHED instead of GRPC_CLOSURE_RUN to avoid running
|
1212
1308
|
// closures earlier than when it is safe to do so.
|
1213
|
-
|
1214
|
-
|
1309
|
+
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
1310
|
+
grpc_error_handle run_error =
|
1311
|
+
grpc_core::internal::StatusMoveFromHeapPtr(closure->error_data.error);
|
1312
|
+
#else
|
1313
|
+
grpc_error_handle run_error =
|
1314
|
+
reinterpret_cast<grpc_error_handle>(closure->error_data.error);
|
1315
|
+
#endif
|
1316
|
+
closure->error_data.error = 0;
|
1317
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, run_error);
|
1215
1318
|
} else {
|
1216
|
-
grpc_closure_list_append(&t->run_after_write, closure
|
1217
|
-
closure->error_data.error);
|
1319
|
+
grpc_closure_list_append(&t->run_after_write, closure);
|
1218
1320
|
}
|
1219
1321
|
}
|
1220
1322
|
}
|
1221
1323
|
|
1222
1324
|
static bool contains_non_ok_status(grpc_metadata_batch* batch) {
|
1223
|
-
|
1224
|
-
|
1225
|
-
GRPC_MDELEM_GRPC_STATUS_0);
|
1226
|
-
}
|
1227
|
-
return false;
|
1325
|
+
return batch->get(grpc_core::GrpcStatusMetadata()).value_or(GRPC_STATUS_OK) !=
|
1326
|
+
GRPC_STATUS_OK;
|
1228
1327
|
}
|
1229
1328
|
|
1230
1329
|
static void maybe_become_writable_due_to_send_msg(grpc_chttp2_transport* t,
|
@@ -1250,7 +1349,6 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1250
1349
|
if (s->fetching_send_message == nullptr) {
|
1251
1350
|
// Stream was cancelled before message fetch completed
|
1252
1351
|
abort(); /* TODO(ctiller): what cleanup here? */
|
1253
|
-
return; /* early out */
|
1254
1352
|
}
|
1255
1353
|
if (s->fetched_send_message_length == s->fetching_send_message->length()) {
|
1256
1354
|
int64_t notify_offset = s->next_message_end_offset;
|
@@ -1281,7 +1379,8 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1281
1379
|
UINT32_MAX, GRPC_CLOSURE_INIT(&s->complete_fetch_locked,
|
1282
1380
|
::complete_fetch, s,
|
1283
1381
|
grpc_schedule_on_exec_ctx))) {
|
1284
|
-
|
1382
|
+
grpc_error_handle error =
|
1383
|
+
s->fetching_send_message->Pull(&s->fetching_slice);
|
1285
1384
|
if (error != GRPC_ERROR_NONE) {
|
1286
1385
|
s->fetching_send_message.reset();
|
1287
1386
|
grpc_chttp2_cancel_stream(t, s, error);
|
@@ -1292,14 +1391,14 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1292
1391
|
}
|
1293
1392
|
}
|
1294
1393
|
|
1295
|
-
static void complete_fetch(void* gs,
|
1394
|
+
static void complete_fetch(void* gs, grpc_error_handle error) {
|
1296
1395
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(gs);
|
1297
1396
|
s->t->combiner->Run(GRPC_CLOSURE_INIT(&s->complete_fetch_locked,
|
1298
1397
|
::complete_fetch_locked, s, nullptr),
|
1299
1398
|
GRPC_ERROR_REF(error));
|
1300
1399
|
}
|
1301
1400
|
|
1302
|
-
static void complete_fetch_locked(void* gs,
|
1401
|
+
static void complete_fetch_locked(void* gs, grpc_error_handle error) {
|
1303
1402
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(gs);
|
1304
1403
|
grpc_chttp2_transport* t = s->t;
|
1305
1404
|
if (error == GRPC_ERROR_NONE) {
|
@@ -1317,19 +1416,15 @@ static void complete_fetch_locked(void* gs, grpc_error* error) {
|
|
1317
1416
|
|
1318
1417
|
static void log_metadata(const grpc_metadata_batch* md_batch, uint32_t id,
|
1319
1418
|
bool is_client, bool is_initial) {
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
is_client ? "CLI" : "SVR", key, value);
|
1326
|
-
gpr_free(key);
|
1327
|
-
gpr_free(value);
|
1328
|
-
}
|
1419
|
+
const std::string prefix = absl::StrCat(
|
1420
|
+
"HTTP:", id, is_initial ? ":HDR" : ":TRL", is_client ? ":CLI:" : ":SVR:");
|
1421
|
+
md_batch->Log([&prefix](absl::string_view key, absl::string_view value) {
|
1422
|
+
gpr_log(GPR_INFO, "%s", absl::StrCat(prefix, key, ": ", value).c_str());
|
1423
|
+
});
|
1329
1424
|
}
|
1330
1425
|
|
1331
1426
|
static void perform_stream_op_locked(void* stream_op,
|
1332
|
-
|
1427
|
+
grpc_error_handle /*error_ignored*/) {
|
1333
1428
|
GPR_TIMER_SCOPE("perform_stream_op_locked", 0);
|
1334
1429
|
|
1335
1430
|
grpc_transport_stream_op_batch* op =
|
@@ -1344,8 +1439,10 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1344
1439
|
s->context = op->payload->context;
|
1345
1440
|
s->traced = op->is_traced;
|
1346
1441
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1347
|
-
gpr_log(GPR_INFO,
|
1348
|
-
|
1442
|
+
gpr_log(GPR_INFO,
|
1443
|
+
"perform_stream_op_locked[s=%p; op=%p]: %s; on_complete = %p", s,
|
1444
|
+
op, grpc_transport_stream_op_batch_string(op).c_str(),
|
1445
|
+
op->on_complete);
|
1349
1446
|
if (op->send_initial_metadata) {
|
1350
1447
|
log_metadata(op_payload->send_initial_metadata.send_initial_metadata,
|
1351
1448
|
s->id, t->is_client, true);
|
@@ -1362,7 +1459,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1362
1459
|
// This batch has send ops. Use final_data as a barrier until enqueue time;
|
1363
1460
|
// the initial counter is dropped at the end of this function.
|
1364
1461
|
on_complete->next_data.scratch = CLOSURE_BARRIER_FIRST_REF_BIT;
|
1365
|
-
on_complete->error_data.error =
|
1462
|
+
on_complete->error_data.error = 0;
|
1366
1463
|
}
|
1367
1464
|
|
1368
1465
|
if (op->cancel_stream) {
|
@@ -1378,27 +1475,14 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1378
1475
|
GPR_ASSERT(s->send_initial_metadata_finished == nullptr);
|
1379
1476
|
on_complete->next_data.scratch |= CLOSURE_BARRIER_MAY_COVER_WRITE;
|
1380
1477
|
|
1381
|
-
// Identify stream compression
|
1382
|
-
if (op_payload->send_initial_metadata.send_initial_metadata->idx.named
|
1383
|
-
.content_encoding == nullptr ||
|
1384
|
-
grpc_stream_compression_method_parse(
|
1385
|
-
GRPC_MDVALUE(
|
1386
|
-
op_payload->send_initial_metadata.send_initial_metadata->idx
|
1387
|
-
.named.content_encoding->md),
|
1388
|
-
true, &s->stream_compression_method) == 0) {
|
1389
|
-
s->stream_compression_method = GRPC_STREAM_COMPRESSION_IDENTITY_COMPRESS;
|
1390
|
-
}
|
1391
|
-
if (s->stream_compression_method !=
|
1392
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_COMPRESS) {
|
1393
|
-
s->uncompressed_data_size = 0;
|
1394
|
-
s->stream_compression_ctx = nullptr;
|
1395
|
-
grpc_slice_buffer_init(&s->compressed_data_buffer);
|
1396
|
-
}
|
1397
1478
|
s->send_initial_metadata_finished = add_closure_barrier(on_complete);
|
1398
1479
|
s->send_initial_metadata =
|
1399
1480
|
op_payload->send_initial_metadata.send_initial_metadata;
|
1400
1481
|
if (t->is_client) {
|
1401
|
-
s->deadline =
|
1482
|
+
s->deadline = std::min(
|
1483
|
+
s->deadline,
|
1484
|
+
s->send_initial_metadata->get(grpc_core::GrpcTimeoutMetadata())
|
1485
|
+
.value_or(grpc_core::Timestamp::InfFuture()));
|
1402
1486
|
}
|
1403
1487
|
if (contains_non_ok_status(s->send_initial_metadata)) {
|
1404
1488
|
s->seen_error = true;
|
@@ -1410,6 +1494,9 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1410
1494
|
grpc_chttp2_list_add_waiting_for_concurrency(t, s);
|
1411
1495
|
maybe_start_some_streams(t);
|
1412
1496
|
} else {
|
1497
|
+
s->trailing_metadata_buffer.Set(
|
1498
|
+
grpc_core::GrpcStreamNetworkState(),
|
1499
|
+
grpc_core::GrpcStreamNetworkState::kNotSentOnWire);
|
1413
1500
|
grpc_chttp2_cancel_stream(
|
1414
1501
|
t, s,
|
1415
1502
|
grpc_error_set_int(
|
@@ -1504,8 +1591,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1504
1591
|
s->sent_trailing_metadata_op = nullptr;
|
1505
1592
|
grpc_chttp2_complete_closure_step(
|
1506
1593
|
t, s, &s->send_trailing_metadata_finished,
|
1507
|
-
|
1508
|
-
op->payload->send_trailing_metadata.send_trailing_metadata)
|
1594
|
+
op->payload->send_trailing_metadata.send_trailing_metadata->empty()
|
1509
1595
|
? GRPC_ERROR_NONE
|
1510
1596
|
: GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1511
1597
|
"Attempt to send trailing metadata after "
|
@@ -1543,6 +1629,8 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1543
1629
|
GPR_ASSERT(!s->pending_byte_stream);
|
1544
1630
|
s->recv_message_ready = op_payload->recv_message.recv_message_ready;
|
1545
1631
|
s->recv_message = op_payload->recv_message.recv_message;
|
1632
|
+
s->call_failed_before_recv_message =
|
1633
|
+
op_payload->recv_message.call_failed_before_recv_message;
|
1546
1634
|
if (s->id != 0) {
|
1547
1635
|
if (!s->read_closed) {
|
1548
1636
|
before = s->frame_storage.length +
|
@@ -1552,8 +1640,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1552
1640
|
grpc_chttp2_maybe_complete_recv_message(t, s);
|
1553
1641
|
if (s->id != 0) {
|
1554
1642
|
if (!s->read_closed && s->frame_storage.length == 0) {
|
1555
|
-
size_t after = s->
|
1556
|
-
s->unprocessed_incoming_frames_buffer_cached_length;
|
1643
|
+
size_t after = s->unprocessed_incoming_frames_buffer_cached_length;
|
1557
1644
|
s->flow_control->IncomingByteStreamUpdate(GRPC_HEADER_SIZE_IN_BYTES,
|
1558
1645
|
before - after);
|
1559
1646
|
grpc_chttp2_act_on_flowctl_action(s->flow_control->MakeAction(), t, s);
|
@@ -1590,19 +1677,19 @@ static void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1590
1677
|
|
1591
1678
|
if (!t->is_client) {
|
1592
1679
|
if (op->send_initial_metadata) {
|
1593
|
-
|
1594
|
-
|
1595
|
-
|
1680
|
+
GPR_ASSERT(!op->payload->send_initial_metadata.send_initial_metadata
|
1681
|
+
->get(grpc_core::GrpcTimeoutMetadata())
|
1682
|
+
.has_value());
|
1596
1683
|
}
|
1597
1684
|
if (op->send_trailing_metadata) {
|
1598
|
-
|
1599
|
-
|
1600
|
-
|
1685
|
+
GPR_ASSERT(!op->payload->send_trailing_metadata.send_trailing_metadata
|
1686
|
+
->get(grpc_core::GrpcTimeoutMetadata())
|
1687
|
+
.has_value());
|
1601
1688
|
}
|
1602
1689
|
}
|
1603
1690
|
|
1604
1691
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1605
|
-
gpr_log(GPR_INFO, "perform_stream_op[s=%p]: %s", s,
|
1692
|
+
gpr_log(GPR_INFO, "perform_stream_op[s=%p; op=%p]: %s", s, op,
|
1606
1693
|
grpc_transport_stream_op_batch_string(op).c_str());
|
1607
1694
|
}
|
1608
1695
|
|
@@ -1613,7 +1700,7 @@ static void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1613
1700
|
GRPC_ERROR_NONE);
|
1614
1701
|
}
|
1615
1702
|
|
1616
|
-
static void cancel_pings(grpc_chttp2_transport* t,
|
1703
|
+
static void cancel_pings(grpc_chttp2_transport* t, grpc_error_handle error) {
|
1617
1704
|
// callback remaining pings: they're not allowed to call into the transport,
|
1618
1705
|
// and maybe they hold resources that need to be freed
|
1619
1706
|
grpc_chttp2_ping_queue* pq = &t->ping_queue;
|
@@ -1680,14 +1767,14 @@ static void send_keepalive_ping_locked(grpc_chttp2_transport* t) {
|
|
1680
1767
|
GRPC_ERROR_NONE);
|
1681
1768
|
}
|
1682
1769
|
|
1683
|
-
void grpc_chttp2_retry_initiate_ping(void* tp,
|
1770
|
+
void grpc_chttp2_retry_initiate_ping(void* tp, grpc_error_handle error) {
|
1684
1771
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1685
1772
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->retry_initiate_ping_locked,
|
1686
1773
|
retry_initiate_ping_locked, t, nullptr),
|
1687
1774
|
GRPC_ERROR_REF(error));
|
1688
1775
|
}
|
1689
1776
|
|
1690
|
-
static void retry_initiate_ping_locked(void* tp,
|
1777
|
+
static void retry_initiate_ping_locked(void* tp, grpc_error_handle error) {
|
1691
1778
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1692
1779
|
t->ping_state.is_delayed_ping_timer_set = false;
|
1693
1780
|
if (error == GRPC_ERROR_NONE) {
|
@@ -1710,18 +1797,129 @@ void grpc_chttp2_ack_ping(grpc_chttp2_transport* t, uint64_t id) {
|
|
1710
1797
|
}
|
1711
1798
|
}
|
1712
1799
|
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
1800
|
+
namespace {
|
1801
|
+
|
1802
|
+
// Fire and forget (deletes itself on completion). Does a graceful shutdown by
|
1803
|
+
// sending a GOAWAY frame with the last stream id set to 2^31-1, sending a ping
|
1804
|
+
// and waiting for an ack (effective waiting for an RTT) and then sending a
|
1805
|
+
// final GOAWAY freame with an updated last stream identifier. This helps ensure
|
1806
|
+
// that a connection can be cleanly shut down without losing requests.
|
1807
|
+
// In the event, that the client does not respond to the ping for some reason,
|
1808
|
+
// we add a 20 second deadline, after which we send the second goaway.
|
1809
|
+
class GracefulGoaway : public grpc_core::RefCounted<GracefulGoaway> {
|
1810
|
+
public:
|
1811
|
+
static void Start(grpc_chttp2_transport* t) { new GracefulGoaway(t); }
|
1812
|
+
|
1813
|
+
~GracefulGoaway() override {
|
1814
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t_, "graceful goaway");
|
1815
|
+
}
|
1816
|
+
|
1817
|
+
private:
|
1818
|
+
explicit GracefulGoaway(grpc_chttp2_transport* t) : t_(t) {
|
1819
|
+
t->sent_goaway_state = GRPC_CHTTP2_GRACEFUL_GOAWAY;
|
1820
|
+
GRPC_CHTTP2_REF_TRANSPORT(t_, "graceful goaway");
|
1821
|
+
grpc_chttp2_goaway_append((1u << 31) - 1, 0, grpc_empty_slice(), &t->qbuf);
|
1822
|
+
send_ping_locked(
|
1823
|
+
t, nullptr, GRPC_CLOSURE_INIT(&on_ping_ack_, OnPingAck, this, nullptr));
|
1824
|
+
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_GOAWAY_SENT);
|
1825
|
+
Ref().release(); // Ref for the timer
|
1826
|
+
grpc_timer_init(
|
1827
|
+
&timer_,
|
1828
|
+
grpc_core::ExecCtx::Get()->Now() + grpc_core::Duration::Seconds(20),
|
1829
|
+
GRPC_CLOSURE_INIT(&on_timer_, OnTimer, this, nullptr));
|
1830
|
+
}
|
1831
|
+
|
1832
|
+
void MaybeSendFinalGoawayLocked() {
|
1833
|
+
if (t_->sent_goaway_state != GRPC_CHTTP2_GRACEFUL_GOAWAY) {
|
1834
|
+
// We already sent the final GOAWAY.
|
1835
|
+
return;
|
1836
|
+
}
|
1837
|
+
if (t_->destroying || t_->closed_with_error != GRPC_ERROR_NONE) {
|
1838
|
+
GRPC_CHTTP2_IF_TRACING(gpr_log(
|
1839
|
+
GPR_INFO,
|
1840
|
+
"transport:%p %s peer:%s Transport already shutting down. "
|
1841
|
+
"Graceful GOAWAY abandoned.",
|
1842
|
+
t_, t_->is_client ? "CLIENT" : "SERVER", t_->peer_string.c_str()));
|
1843
|
+
return;
|
1844
|
+
}
|
1845
|
+
// Ping completed. Send final goaway.
|
1846
|
+
GRPC_CHTTP2_IF_TRACING(
|
1847
|
+
gpr_log(GPR_INFO,
|
1848
|
+
"transport:%p %s peer:%s Graceful shutdown: Ping received. "
|
1849
|
+
"Sending final GOAWAY with stream_id:%d",
|
1850
|
+
t_, t_->is_client ? "CLIENT" : "SERVER",
|
1851
|
+
t_->peer_string.c_str(), t_->last_new_stream_id));
|
1852
|
+
t_->sent_goaway_state = GRPC_CHTTP2_FINAL_GOAWAY_SEND_SCHEDULED;
|
1853
|
+
grpc_chttp2_goaway_append(t_->last_new_stream_id, 0, grpc_empty_slice(),
|
1854
|
+
&t_->qbuf);
|
1855
|
+
grpc_chttp2_initiate_write(t_, GRPC_CHTTP2_INITIATE_WRITE_GOAWAY_SENT);
|
1856
|
+
}
|
1857
|
+
|
1858
|
+
static void OnPingAck(void* arg, grpc_error_handle /* error */) {
|
1859
|
+
auto* self = static_cast<GracefulGoaway*>(arg);
|
1860
|
+
self->t_->combiner->Run(
|
1861
|
+
GRPC_CLOSURE_INIT(&self->on_ping_ack_, OnPingAckLocked, self, nullptr),
|
1862
|
+
GRPC_ERROR_NONE);
|
1863
|
+
}
|
1864
|
+
|
1865
|
+
static void OnPingAckLocked(void* arg, grpc_error_handle /* error */) {
|
1866
|
+
auto* self = static_cast<GracefulGoaway*>(arg);
|
1867
|
+
grpc_timer_cancel(&self->timer_);
|
1868
|
+
self->MaybeSendFinalGoawayLocked();
|
1869
|
+
self->Unref();
|
1870
|
+
}
|
1871
|
+
|
1872
|
+
static void OnTimer(void* arg, grpc_error_handle error) {
|
1873
|
+
auto* self = static_cast<GracefulGoaway*>(arg);
|
1874
|
+
if (error != GRPC_ERROR_NONE) {
|
1875
|
+
self->Unref();
|
1876
|
+
return;
|
1877
|
+
}
|
1878
|
+
self->t_->combiner->Run(
|
1879
|
+
GRPC_CLOSURE_INIT(&self->on_timer_, OnTimerLocked, self, nullptr),
|
1880
|
+
GRPC_ERROR_NONE);
|
1881
|
+
}
|
1882
|
+
|
1883
|
+
static void OnTimerLocked(void* arg, grpc_error_handle /* error */) {
|
1884
|
+
auto* self = static_cast<GracefulGoaway*>(arg);
|
1885
|
+
self->MaybeSendFinalGoawayLocked();
|
1886
|
+
self->Unref();
|
1887
|
+
}
|
1888
|
+
|
1889
|
+
grpc_chttp2_transport* t_;
|
1890
|
+
grpc_closure on_ping_ack_;
|
1891
|
+
grpc_timer timer_;
|
1892
|
+
grpc_closure on_timer_;
|
1893
|
+
};
|
1894
|
+
|
1895
|
+
} // namespace
|
1896
|
+
|
1897
|
+
static void send_goaway(grpc_chttp2_transport* t, grpc_error_handle error,
|
1898
|
+
bool immediate_disconnect_hint) {
|
1718
1899
|
grpc_http2_error_code http_error;
|
1719
|
-
|
1720
|
-
grpc_error_get_status(error,
|
1721
|
-
&http_error, nullptr);
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1900
|
+
std::string message;
|
1901
|
+
grpc_error_get_status(error, grpc_core::Timestamp::InfFuture(), nullptr,
|
1902
|
+
&message, &http_error, nullptr);
|
1903
|
+
if (!t->is_client && http_error == GRPC_HTTP2_NO_ERROR &&
|
1904
|
+
!immediate_disconnect_hint) {
|
1905
|
+
// Do a graceful shutdown.
|
1906
|
+
if (t->sent_goaway_state == GRPC_CHTTP2_NO_GOAWAY_SEND) {
|
1907
|
+
GracefulGoaway::Start(t);
|
1908
|
+
} else {
|
1909
|
+
// Graceful GOAWAY is already in progress.
|
1910
|
+
}
|
1911
|
+
} else if (t->sent_goaway_state == GRPC_CHTTP2_NO_GOAWAY_SEND ||
|
1912
|
+
t->sent_goaway_state == GRPC_CHTTP2_GRACEFUL_GOAWAY) {
|
1913
|
+
// We want to log this irrespective of whether http tracing is enabled
|
1914
|
+
gpr_log(GPR_DEBUG, "%s: Sending goaway err=%s", t->peer_string.c_str(),
|
1915
|
+
grpc_error_std_string(error).c_str());
|
1916
|
+
t->sent_goaway_state = GRPC_CHTTP2_FINAL_GOAWAY_SEND_SCHEDULED;
|
1917
|
+
grpc_chttp2_goaway_append(
|
1918
|
+
t->last_new_stream_id, static_cast<uint32_t>(http_error),
|
1919
|
+
grpc_slice_from_cpp_string(std::move(message)), &t->qbuf);
|
1920
|
+
} else {
|
1921
|
+
// Final GOAWAY has already been sent.
|
1922
|
+
}
|
1725
1923
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_GOAWAY_SENT);
|
1726
1924
|
GRPC_ERROR_UNREF(error);
|
1727
1925
|
}
|
@@ -1732,7 +1930,8 @@ void grpc_chttp2_add_ping_strike(grpc_chttp2_transport* t) {
|
|
1732
1930
|
send_goaway(t,
|
1733
1931
|
grpc_error_set_int(
|
1734
1932
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("too_many_pings"),
|
1735
|
-
GRPC_ERROR_INT_HTTP2_ERROR, GRPC_HTTP2_ENHANCE_YOUR_CALM)
|
1933
|
+
GRPC_ERROR_INT_HTTP2_ERROR, GRPC_HTTP2_ENHANCE_YOUR_CALM),
|
1934
|
+
/*immediate_disconnect_hint=*/true);
|
1736
1935
|
// The transport will be closed after the write is done
|
1737
1936
|
close_transport_locked(
|
1738
1937
|
t, grpc_error_set_int(
|
@@ -1743,7 +1942,7 @@ void grpc_chttp2_add_ping_strike(grpc_chttp2_transport* t) {
|
|
1743
1942
|
|
1744
1943
|
void grpc_chttp2_reset_ping_clock(grpc_chttp2_transport* t) {
|
1745
1944
|
if (!t->is_client) {
|
1746
|
-
t->ping_recv_state.last_ping_recv_time =
|
1945
|
+
t->ping_recv_state.last_ping_recv_time = grpc_core::Timestamp::InfPast();
|
1747
1946
|
t->ping_recv_state.ping_strikes = 0;
|
1748
1947
|
}
|
1749
1948
|
t->ping_state.pings_before_data_required =
|
@@ -1751,13 +1950,13 @@ void grpc_chttp2_reset_ping_clock(grpc_chttp2_transport* t) {
|
|
1751
1950
|
}
|
1752
1951
|
|
1753
1952
|
static void perform_transport_op_locked(void* stream_op,
|
1754
|
-
|
1953
|
+
grpc_error_handle /*error_ignored*/) {
|
1755
1954
|
grpc_transport_op* op = static_cast<grpc_transport_op*>(stream_op);
|
1756
1955
|
grpc_chttp2_transport* t =
|
1757
1956
|
static_cast<grpc_chttp2_transport*>(op->handler_private.extra_arg);
|
1758
1957
|
|
1759
|
-
if (op->goaway_error) {
|
1760
|
-
send_goaway(t, op->goaway_error);
|
1958
|
+
if (op->goaway_error != GRPC_ERROR_NONE) {
|
1959
|
+
send_goaway(t, op->goaway_error, /*immediate_disconnect_hint=*/false);
|
1761
1960
|
}
|
1762
1961
|
|
1763
1962
|
if (op->set_accept_stream) {
|
@@ -1787,6 +1986,8 @@ static void perform_transport_op_locked(void* stream_op,
|
|
1787
1986
|
}
|
1788
1987
|
|
1789
1988
|
if (op->disconnect_with_error != GRPC_ERROR_NONE) {
|
1989
|
+
send_goaway(t, GRPC_ERROR_REF(op->disconnect_with_error),
|
1990
|
+
/*immediate_disconnect_hint=*/true);
|
1790
1991
|
close_transport_locked(t, op->disconnect_with_error);
|
1791
1992
|
}
|
1792
1993
|
|
@@ -1812,8 +2013,8 @@ static void perform_transport_op(grpc_transport* gt, grpc_transport_op* op) {
|
|
1812
2013
|
// INPUT PROCESSING - GENERAL
|
1813
2014
|
//
|
1814
2015
|
|
1815
|
-
void grpc_chttp2_maybe_complete_recv_initial_metadata(
|
1816
|
-
|
2016
|
+
void grpc_chttp2_maybe_complete_recv_initial_metadata(grpc_chttp2_transport* t,
|
2017
|
+
grpc_chttp2_stream* s) {
|
1817
2018
|
if (s->recv_initial_metadata_ready != nullptr &&
|
1818
2019
|
s->published_metadata[0] != GRPC_METADATA_NOT_PUBLISHED) {
|
1819
2020
|
if (s->seen_error) {
|
@@ -1823,15 +2024,24 @@ void grpc_chttp2_maybe_complete_recv_initial_metadata(
|
|
1823
2024
|
&s->unprocessed_incoming_frames_buffer);
|
1824
2025
|
}
|
1825
2026
|
}
|
1826
|
-
|
1827
|
-
|
2027
|
+
*s->recv_initial_metadata = std::move(s->initial_metadata_buffer);
|
2028
|
+
s->recv_initial_metadata->Set(grpc_core::PeerString(), t->peer_string);
|
2029
|
+
// If we didn't receive initial metadata from the wire and instead faked a
|
2030
|
+
// status (due to stream cancellations for example), let upper layers know
|
2031
|
+
// that trailing metadata is immediately available.
|
2032
|
+
if (s->trailing_metadata_available != nullptr &&
|
2033
|
+
s->published_metadata[0] != GRPC_METADATA_PUBLISHED_FROM_WIRE &&
|
2034
|
+
s->published_metadata[1] == GRPC_METADATA_SYNTHESIZED_FROM_FAKE) {
|
2035
|
+
*s->trailing_metadata_available = true;
|
2036
|
+
s->trailing_metadata_available = nullptr;
|
2037
|
+
}
|
1828
2038
|
null_then_sched_closure(&s->recv_initial_metadata_ready);
|
1829
2039
|
}
|
1830
2040
|
}
|
1831
2041
|
|
1832
2042
|
void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* /*t*/,
|
1833
2043
|
grpc_chttp2_stream* s) {
|
1834
|
-
|
2044
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
1835
2045
|
if (s->recv_message_ready != nullptr) {
|
1836
2046
|
*s->recv_message = nullptr;
|
1837
2047
|
if (s->final_metadata_requested && s->seen_error) {
|
@@ -1847,48 +2057,10 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* /*t*/,
|
|
1847
2057
|
if (s->unprocessed_incoming_frames_buffer.length == 0) {
|
1848
2058
|
grpc_slice_buffer_swap(&s->unprocessed_incoming_frames_buffer,
|
1849
2059
|
&s->frame_storage);
|
1850
|
-
s->unprocessed_incoming_frames_decompressed = false;
|
1851
|
-
}
|
1852
|
-
if (!s->unprocessed_incoming_frames_decompressed &&
|
1853
|
-
s->stream_decompression_method !=
|
1854
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_DECOMPRESS) {
|
1855
|
-
GPR_ASSERT(s->decompressed_data_buffer.length == 0);
|
1856
|
-
bool end_of_context;
|
1857
|
-
if (!s->stream_decompression_ctx) {
|
1858
|
-
s->stream_decompression_ctx =
|
1859
|
-
grpc_stream_compression_context_create(
|
1860
|
-
s->stream_decompression_method);
|
1861
|
-
}
|
1862
|
-
if (!grpc_stream_decompress(
|
1863
|
-
s->stream_decompression_ctx,
|
1864
|
-
&s->unprocessed_incoming_frames_buffer,
|
1865
|
-
&s->decompressed_data_buffer, nullptr,
|
1866
|
-
GRPC_HEADER_SIZE_IN_BYTES - s->decompressed_header_bytes,
|
1867
|
-
&end_of_context)) {
|
1868
|
-
grpc_slice_buffer_reset_and_unref_internal(&s->frame_storage);
|
1869
|
-
grpc_slice_buffer_reset_and_unref_internal(
|
1870
|
-
&s->unprocessed_incoming_frames_buffer);
|
1871
|
-
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1872
|
-
"Stream decompression error.");
|
1873
|
-
} else {
|
1874
|
-
s->decompressed_header_bytes += s->decompressed_data_buffer.length;
|
1875
|
-
if (s->decompressed_header_bytes == GRPC_HEADER_SIZE_IN_BYTES) {
|
1876
|
-
s->decompressed_header_bytes = 0;
|
1877
|
-
}
|
1878
|
-
error = grpc_deframe_unprocessed_incoming_frames(
|
1879
|
-
&s->data_parser, s, &s->decompressed_data_buffer, nullptr,
|
1880
|
-
s->recv_message);
|
1881
|
-
if (end_of_context) {
|
1882
|
-
grpc_stream_compression_context_destroy(
|
1883
|
-
s->stream_decompression_ctx);
|
1884
|
-
s->stream_decompression_ctx = nullptr;
|
1885
|
-
}
|
1886
|
-
}
|
1887
|
-
} else {
|
1888
|
-
error = grpc_deframe_unprocessed_incoming_frames(
|
1889
|
-
&s->data_parser, s, &s->unprocessed_incoming_frames_buffer,
|
1890
|
-
nullptr, s->recv_message);
|
1891
2060
|
}
|
2061
|
+
error = grpc_deframe_unprocessed_incoming_frames(
|
2062
|
+
&s->data_parser, s, &s->unprocessed_incoming_frames_buffer, nullptr,
|
2063
|
+
s->recv_message);
|
1892
2064
|
if (error != GRPC_ERROR_NONE) {
|
1893
2065
|
s->seen_error = true;
|
1894
2066
|
grpc_slice_buffer_reset_and_unref_internal(&s->frame_storage);
|
@@ -1908,6 +2080,10 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* /*t*/,
|
|
1908
2080
|
null_then_sched_closure(&s->recv_message_ready);
|
1909
2081
|
} else if (s->published_metadata[1] != GRPC_METADATA_NOT_PUBLISHED) {
|
1910
2082
|
*s->recv_message = nullptr;
|
2083
|
+
if (s->call_failed_before_recv_message != nullptr) {
|
2084
|
+
*s->call_failed_before_recv_message =
|
2085
|
+
(s->published_metadata[1] != GRPC_METADATA_PUBLISHED_AT_CLOSE);
|
2086
|
+
}
|
1911
2087
|
null_then_sched_closure(&s->recv_message_ready);
|
1912
2088
|
}
|
1913
2089
|
GRPC_ERROR_UNREF(error);
|
@@ -1932,56 +2108,27 @@ void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
|
|
1932
2108
|
!s->seen_error && s->recv_trailing_metadata_finished != nullptr) {
|
1933
2109
|
// Maybe some SYNC_FLUSH data is left in frame_storage. Consume them and
|
1934
2110
|
// maybe decompress the next 5 bytes in the stream.
|
1935
|
-
|
1936
|
-
|
1937
|
-
|
1938
|
-
|
1939
|
-
|
1940
|
-
|
1941
|
-
if (s->unprocessed_incoming_frames_buffer.length > 0) {
|
1942
|
-
s->unprocessed_incoming_frames_decompressed = true;
|
1943
|
-
pending_data = true;
|
1944
|
-
}
|
1945
|
-
} else {
|
1946
|
-
bool end_of_context;
|
1947
|
-
if (!s->stream_decompression_ctx) {
|
1948
|
-
s->stream_decompression_ctx = grpc_stream_compression_context_create(
|
1949
|
-
s->stream_decompression_method);
|
1950
|
-
}
|
1951
|
-
if (!grpc_stream_decompress(
|
1952
|
-
s->stream_decompression_ctx, &s->frame_storage,
|
1953
|
-
&s->unprocessed_incoming_frames_buffer, nullptr,
|
1954
|
-
GRPC_HEADER_SIZE_IN_BYTES, &end_of_context)) {
|
1955
|
-
grpc_slice_buffer_reset_and_unref_internal(&s->frame_storage);
|
1956
|
-
grpc_slice_buffer_reset_and_unref_internal(
|
1957
|
-
&s->unprocessed_incoming_frames_buffer);
|
1958
|
-
s->seen_error = true;
|
1959
|
-
} else {
|
1960
|
-
if (s->unprocessed_incoming_frames_buffer.length > 0) {
|
1961
|
-
s->unprocessed_incoming_frames_decompressed = true;
|
1962
|
-
pending_data = true;
|
1963
|
-
}
|
1964
|
-
if (end_of_context) {
|
1965
|
-
grpc_stream_compression_context_destroy(
|
1966
|
-
s->stream_decompression_ctx);
|
1967
|
-
s->stream_decompression_ctx = nullptr;
|
1968
|
-
}
|
1969
|
-
}
|
2111
|
+
grpc_slice_buffer_move_first(
|
2112
|
+
&s->frame_storage,
|
2113
|
+
std::min(s->frame_storage.length, size_t(GRPC_HEADER_SIZE_IN_BYTES)),
|
2114
|
+
&s->unprocessed_incoming_frames_buffer);
|
2115
|
+
if (s->unprocessed_incoming_frames_buffer.length > 0) {
|
2116
|
+
pending_data = true;
|
1970
2117
|
}
|
1971
2118
|
}
|
1972
2119
|
if (s->read_closed && s->frame_storage.length == 0 && !pending_data &&
|
1973
2120
|
s->recv_trailing_metadata_finished != nullptr) {
|
1974
2121
|
grpc_transport_move_stats(&s->stats, s->collecting_stats);
|
1975
2122
|
s->collecting_stats = nullptr;
|
1976
|
-
|
1977
|
-
|
2123
|
+
*s->recv_trailing_metadata = std::move(s->trailing_metadata_buffer);
|
2124
|
+
s->recv_trailing_metadata->Set(grpc_core::PeerString(), t->peer_string);
|
1978
2125
|
null_then_sched_closure(&s->recv_trailing_metadata_finished);
|
1979
2126
|
}
|
1980
2127
|
}
|
1981
2128
|
}
|
1982
2129
|
|
1983
2130
|
static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
1984
|
-
|
2131
|
+
grpc_error_handle error) {
|
1985
2132
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(
|
1986
2133
|
grpc_chttp2_stream_map_delete(&t->stream_map, id));
|
1987
2134
|
GPR_DEBUG_ASSERT(s);
|
@@ -2006,7 +2153,7 @@ static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
|
2006
2153
|
|
2007
2154
|
if (grpc_chttp2_stream_map_size(&t->stream_map) == 0) {
|
2008
2155
|
post_benign_reclaimer(t);
|
2009
|
-
if (t->sent_goaway_state ==
|
2156
|
+
if (t->sent_goaway_state == GRPC_CHTTP2_FINAL_GOAWAY_SENT) {
|
2010
2157
|
close_transport_locked(
|
2011
2158
|
t, GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
2012
2159
|
"Last stream closed after sending GOAWAY", &error, 1));
|
@@ -2024,7 +2171,7 @@ static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
|
2024
2171
|
}
|
2025
2172
|
|
2026
2173
|
void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2027
|
-
|
2174
|
+
grpc_error_handle due_to_error) {
|
2028
2175
|
if (!t->is_client && !s->sent_trailing_metadata &&
|
2029
2176
|
grpc_error_has_clear_grpc_status(due_to_error)) {
|
2030
2177
|
close_from_api(t, s, due_to_error);
|
@@ -2048,10 +2195,11 @@ void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2048
2195
|
}
|
2049
2196
|
|
2050
2197
|
void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2051
|
-
|
2198
|
+
grpc_error_handle error) {
|
2052
2199
|
grpc_status_code status;
|
2053
|
-
|
2054
|
-
grpc_error_get_status(error, s->deadline, &status, &
|
2200
|
+
std::string message;
|
2201
|
+
grpc_error_get_status(error, s->deadline, &status, &message, nullptr,
|
2202
|
+
nullptr);
|
2055
2203
|
if (status != GRPC_STATUS_OK) {
|
2056
2204
|
s->seen_error = true;
|
2057
2205
|
}
|
@@ -2063,20 +2211,11 @@ void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2063
2211
|
// about the metadata yet
|
2064
2212
|
if (s->published_metadata[1] == GRPC_METADATA_NOT_PUBLISHED ||
|
2065
2213
|
s->recv_trailing_metadata_finished != nullptr) {
|
2066
|
-
|
2067
|
-
|
2068
|
-
|
2069
|
-
|
2070
|
-
|
2071
|
-
grpc_mdelem_from_slices(
|
2072
|
-
GRPC_MDSTR_GRPC_STATUS,
|
2073
|
-
grpc_core::UnmanagedMemorySlice(status_string))));
|
2074
|
-
if (!GRPC_SLICE_IS_EMPTY(slice)) {
|
2075
|
-
GRPC_LOG_IF_ERROR(
|
2076
|
-
"add_status_message",
|
2077
|
-
grpc_chttp2_incoming_metadata_buffer_replace_or_add(
|
2078
|
-
&s->metadata_buffer[1],
|
2079
|
-
grpc_mdelem_create(GRPC_MDSTR_GRPC_MESSAGE, slice, nullptr)));
|
2214
|
+
s->trailing_metadata_buffer.Set(grpc_core::GrpcStatusMetadata(), status);
|
2215
|
+
if (!message.empty()) {
|
2216
|
+
s->trailing_metadata_buffer.Set(
|
2217
|
+
grpc_core::GrpcMessageMetadata(),
|
2218
|
+
grpc_core::Slice::FromCopiedBuffer(message));
|
2080
2219
|
}
|
2081
2220
|
s->published_metadata[1] = GRPC_METADATA_SYNTHESIZED_FROM_FAKE;
|
2082
2221
|
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
|
@@ -2085,7 +2224,8 @@ void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2085
2224
|
GRPC_ERROR_UNREF(error);
|
2086
2225
|
}
|
2087
2226
|
|
2088
|
-
static void add_error(
|
2227
|
+
static void add_error(grpc_error_handle error, grpc_error_handle* refs,
|
2228
|
+
size_t* nrefs) {
|
2089
2229
|
if (error == GRPC_ERROR_NONE) return;
|
2090
2230
|
for (size_t i = 0; i < *nrefs; i++) {
|
2091
2231
|
if (error == refs[i]) {
|
@@ -2096,16 +2236,17 @@ static void add_error(grpc_error* error, grpc_error** refs, size_t* nrefs) {
|
|
2096
2236
|
++*nrefs;
|
2097
2237
|
}
|
2098
2238
|
|
2099
|
-
static
|
2100
|
-
|
2101
|
-
|
2239
|
+
static grpc_error_handle removal_error(grpc_error_handle extra_error,
|
2240
|
+
grpc_chttp2_stream* s,
|
2241
|
+
const char* main_error_msg) {
|
2242
|
+
grpc_error_handle refs[3];
|
2102
2243
|
size_t nrefs = 0;
|
2103
2244
|
add_error(s->read_closed_error, refs, &nrefs);
|
2104
2245
|
add_error(s->write_closed_error, refs, &nrefs);
|
2105
2246
|
add_error(extra_error, refs, &nrefs);
|
2106
|
-
|
2247
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
2107
2248
|
if (nrefs > 0) {
|
2108
|
-
error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
2249
|
+
error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(main_error_msg,
|
2109
2250
|
refs, nrefs);
|
2110
2251
|
}
|
2111
2252
|
GRPC_ERROR_UNREF(extra_error);
|
@@ -2113,7 +2254,8 @@ static grpc_error* removal_error(grpc_error* extra_error, grpc_chttp2_stream* s,
|
|
2113
2254
|
}
|
2114
2255
|
|
2115
2256
|
static void flush_write_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2116
|
-
grpc_chttp2_write_cb** list,
|
2257
|
+
grpc_chttp2_write_cb** list,
|
2258
|
+
grpc_error_handle error) {
|
2117
2259
|
while (*list) {
|
2118
2260
|
grpc_chttp2_write_cb* cb = *list;
|
2119
2261
|
*list = cb->next;
|
@@ -2126,7 +2268,8 @@ static void flush_write_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2126
2268
|
}
|
2127
2269
|
|
2128
2270
|
void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
2129
|
-
grpc_chttp2_stream* s,
|
2271
|
+
grpc_chttp2_stream* s,
|
2272
|
+
grpc_error_handle error) {
|
2130
2273
|
error =
|
2131
2274
|
removal_error(error, s, "Pending writes failed due to stream closure");
|
2132
2275
|
s->send_initial_metadata = nullptr;
|
@@ -2150,10 +2293,10 @@ void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
|
2150
2293
|
|
2151
2294
|
void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
2152
2295
|
grpc_chttp2_stream* s, int close_reads,
|
2153
|
-
int close_writes,
|
2296
|
+
int close_writes, grpc_error_handle error) {
|
2154
2297
|
if (s->read_closed && s->write_closed) {
|
2155
2298
|
// already closed, but we should still fake the status if needed.
|
2156
|
-
|
2299
|
+
grpc_error_handle overall_error = removal_error(error, s, "Stream removed");
|
2157
2300
|
if (overall_error != GRPC_ERROR_NONE) {
|
2158
2301
|
grpc_chttp2_fake_status(t, s, overall_error);
|
2159
2302
|
}
|
@@ -2174,7 +2317,7 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2174
2317
|
}
|
2175
2318
|
if (s->read_closed && s->write_closed) {
|
2176
2319
|
became_closed = true;
|
2177
|
-
|
2320
|
+
grpc_error_handle overall_error =
|
2178
2321
|
removal_error(GRPC_ERROR_REF(error), s, "Stream removed");
|
2179
2322
|
if (s->id != 0) {
|
2180
2323
|
remove_stream(t, s->id, GRPC_ERROR_REF(overall_error));
|
@@ -2203,7 +2346,7 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2203
2346
|
}
|
2204
2347
|
|
2205
2348
|
static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2206
|
-
|
2349
|
+
grpc_error_handle error) {
|
2207
2350
|
grpc_slice hdr;
|
2208
2351
|
grpc_slice status_hdr;
|
2209
2352
|
grpc_slice http_status_hdr;
|
@@ -2212,8 +2355,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2212
2355
|
uint8_t* p;
|
2213
2356
|
uint32_t len = 0;
|
2214
2357
|
grpc_status_code grpc_status;
|
2215
|
-
|
2216
|
-
grpc_error_get_status(error, s->deadline, &grpc_status, &
|
2358
|
+
std::string message;
|
2359
|
+
grpc_error_get_status(error, s->deadline, &grpc_status, &message, nullptr,
|
2217
2360
|
nullptr);
|
2218
2361
|
|
2219
2362
|
GPR_ASSERT(grpc_status >= 0 && (int)grpc_status < 100);
|
@@ -2306,10 +2449,10 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2306
2449
|
GPR_ASSERT(p == GRPC_SLICE_END_PTR(status_hdr));
|
2307
2450
|
len += static_cast<uint32_t> GRPC_SLICE_LENGTH(status_hdr);
|
2308
2451
|
|
2309
|
-
size_t msg_len =
|
2452
|
+
size_t msg_len = message.length();
|
2310
2453
|
GPR_ASSERT(msg_len <= UINT32_MAX);
|
2311
|
-
|
2312
|
-
message_pfx = GRPC_SLICE_MALLOC(14 +
|
2454
|
+
grpc_core::VarintWriter<1> msg_len_writer(msg_len);
|
2455
|
+
message_pfx = GRPC_SLICE_MALLOC(14 + msg_len_writer.length());
|
2313
2456
|
p = GRPC_SLICE_START_PTR(message_pfx);
|
2314
2457
|
*p++ = 0x00; /* literal header, not indexed */
|
2315
2458
|
*p++ = 12; /* len(grpc-message) */
|
@@ -2325,8 +2468,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2325
2468
|
*p++ = 'a';
|
2326
2469
|
*p++ = 'g';
|
2327
2470
|
*p++ = 'e';
|
2328
|
-
|
2329
|
-
p +=
|
2471
|
+
msg_len_writer.Write(0, p);
|
2472
|
+
p += msg_len_writer.length();
|
2330
2473
|
GPR_ASSERT(p == GRPC_SLICE_END_PTR(message_pfx));
|
2331
2474
|
len += static_cast<uint32_t> GRPC_SLICE_LENGTH(message_pfx);
|
2332
2475
|
len += static_cast<uint32_t>(msg_len);
|
@@ -2351,7 +2494,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2351
2494
|
}
|
2352
2495
|
grpc_slice_buffer_add(&t->qbuf, status_hdr);
|
2353
2496
|
grpc_slice_buffer_add(&t->qbuf, message_pfx);
|
2354
|
-
grpc_slice_buffer_add(&t->qbuf,
|
2497
|
+
grpc_slice_buffer_add(&t->qbuf,
|
2498
|
+
grpc_slice_from_cpp_string(std::move(message)));
|
2355
2499
|
grpc_chttp2_reset_ping_clock(t);
|
2356
2500
|
grpc_chttp2_add_rst_stream_to_next_write(t, s->id, GRPC_HTTP2_NO_ERROR,
|
2357
2501
|
&s->stats.outgoing);
|
@@ -2361,7 +2505,7 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2361
2505
|
}
|
2362
2506
|
|
2363
2507
|
struct cancel_stream_cb_args {
|
2364
|
-
|
2508
|
+
grpc_error_handle error;
|
2365
2509
|
grpc_chttp2_transport* t;
|
2366
2510
|
};
|
2367
2511
|
|
@@ -2371,7 +2515,8 @@ static void cancel_stream_cb(void* user_data, uint32_t /*key*/, void* stream) {
|
|
2371
2515
|
grpc_chttp2_cancel_stream(args->t, s, GRPC_ERROR_REF(args->error));
|
2372
2516
|
}
|
2373
2517
|
|
2374
|
-
static void end_all_the_calls(grpc_chttp2_transport* t,
|
2518
|
+
static void end_all_the_calls(grpc_chttp2_transport* t,
|
2519
|
+
grpc_error_handle error) {
|
2375
2520
|
intptr_t http2_error;
|
2376
2521
|
// If there is no explicit grpc or HTTP/2 error, set to UNAVAILABLE on server.
|
2377
2522
|
if (!t->is_client && !grpc_error_has_clear_grpc_status(error) &&
|
@@ -2379,6 +2524,7 @@ static void end_all_the_calls(grpc_chttp2_transport* t, grpc_error* error) {
|
|
2379
2524
|
error = grpc_error_set_int(error, GRPC_ERROR_INT_GRPC_STATUS,
|
2380
2525
|
GRPC_STATUS_UNAVAILABLE);
|
2381
2526
|
}
|
2527
|
+
cancel_unstarted_streams(t, GRPC_ERROR_REF(error));
|
2382
2528
|
cancel_stream_cb_args args = {error, t};
|
2383
2529
|
grpc_chttp2_stream_map_for_each(&t->stream_map, cancel_stream_cb, &args);
|
2384
2530
|
GRPC_ERROR_UNREF(error);
|
@@ -2397,7 +2543,7 @@ static void WithUrgency(grpc_chttp2_transport* t,
|
|
2397
2543
|
break;
|
2398
2544
|
case grpc_core::chttp2::FlowControlAction::Urgency::UPDATE_IMMEDIATELY:
|
2399
2545
|
grpc_chttp2_initiate_write(t, reason);
|
2400
|
-
|
2546
|
+
ABSL_FALLTHROUGH_INTENDED;
|
2401
2547
|
case grpc_core::chttp2::FlowControlAction::Urgency::QUEUE_UPDATE:
|
2402
2548
|
action();
|
2403
2549
|
break;
|
@@ -2425,15 +2571,15 @@ void grpc_chttp2_act_on_flowctl_action(
|
|
2425
2571
|
});
|
2426
2572
|
}
|
2427
2573
|
|
2428
|
-
static
|
2574
|
+
static grpc_error_handle try_http_parsing(grpc_chttp2_transport* t) {
|
2429
2575
|
grpc_http_parser parser;
|
2430
2576
|
size_t i = 0;
|
2431
|
-
|
2577
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
2432
2578
|
grpc_http_response response;
|
2433
2579
|
|
2434
2580
|
grpc_http_parser_init(&parser, GRPC_HTTP_RESPONSE, &response);
|
2435
2581
|
|
2436
|
-
|
2582
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
2437
2583
|
for (; i < t->read_buffer.count && parse_error == GRPC_ERROR_NONE; i++) {
|
2438
2584
|
parse_error =
|
2439
2585
|
grpc_http_parser_parse(&parser, t->read_buffer.slices[i], nullptr);
|
@@ -2454,34 +2600,34 @@ static grpc_error* try_http_parsing(grpc_chttp2_transport* t) {
|
|
2454
2600
|
return error;
|
2455
2601
|
}
|
2456
2602
|
|
2457
|
-
static void read_action(void* tp,
|
2603
|
+
static void read_action(void* tp, grpc_error_handle error) {
|
2458
2604
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2459
2605
|
t->combiner->Run(
|
2460
2606
|
GRPC_CLOSURE_INIT(&t->read_action_locked, read_action_locked, t, nullptr),
|
2461
2607
|
GRPC_ERROR_REF(error));
|
2462
2608
|
}
|
2463
2609
|
|
2464
|
-
static void read_action_locked(void* tp,
|
2610
|
+
static void read_action_locked(void* tp, grpc_error_handle error) {
|
2465
2611
|
GPR_TIMER_SCOPE("reading_action_locked", 0);
|
2466
2612
|
|
2467
2613
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2468
2614
|
|
2469
|
-
GRPC_ERROR_REF(error);
|
2615
|
+
(void)GRPC_ERROR_REF(error);
|
2470
2616
|
|
2471
|
-
|
2617
|
+
grpc_error_handle err = error;
|
2472
2618
|
if (err != GRPC_ERROR_NONE) {
|
2473
2619
|
err = grpc_error_set_int(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
2474
2620
|
"Endpoint read failed", &err, 1),
|
2475
2621
|
GRPC_ERROR_INT_OCCURRED_DURING_WRITE,
|
2476
2622
|
t->write_state);
|
2477
2623
|
}
|
2478
|
-
|
2624
|
+
std::swap(err, error);
|
2479
2625
|
GRPC_ERROR_UNREF(err);
|
2480
2626
|
if (t->closed_with_error == GRPC_ERROR_NONE) {
|
2481
2627
|
GPR_TIMER_SCOPE("reading_action.parse", 0);
|
2482
2628
|
size_t i = 0;
|
2483
|
-
|
2484
|
-
|
2629
|
+
grpc_error_handle errors[3] = {GRPC_ERROR_REF(error), GRPC_ERROR_NONE,
|
2630
|
+
GRPC_ERROR_NONE};
|
2485
2631
|
for (; i < t->read_buffer.count && errors[1] == GRPC_ERROR_NONE; i++) {
|
2486
2632
|
errors[1] = grpc_chttp2_perform_read(t, t->read_buffer.slices[i]);
|
2487
2633
|
}
|
@@ -2555,7 +2701,8 @@ static void continue_read_action_locked(grpc_chttp2_transport* t) {
|
|
2555
2701
|
const bool urgent = t->goaway_error != GRPC_ERROR_NONE;
|
2556
2702
|
GRPC_CLOSURE_INIT(&t->read_action_locked, read_action, t,
|
2557
2703
|
grpc_schedule_on_exec_ctx);
|
2558
|
-
grpc_endpoint_read(t->ep, &t->read_buffer, &t->read_action_locked, urgent
|
2704
|
+
grpc_endpoint_read(t->ep, &t->read_buffer, &t->read_action_locked, urgent,
|
2705
|
+
/*min_progress_size=*/1);
|
2559
2706
|
grpc_chttp2_act_on_flowctl_action(t->flow_control->MakeAction(), t, nullptr);
|
2560
2707
|
}
|
2561
2708
|
|
@@ -2569,23 +2716,21 @@ void schedule_bdp_ping_locked(grpc_chttp2_transport* t) {
|
|
2569
2716
|
grpc_schedule_on_exec_ctx),
|
2570
2717
|
GRPC_CLOSURE_INIT(&t->finish_bdp_ping_locked, finish_bdp_ping, t,
|
2571
2718
|
grpc_schedule_on_exec_ctx));
|
2572
|
-
|
2573
|
-
// fixed.
|
2574
|
-
// grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_BDP_PING);
|
2719
|
+
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_BDP_PING);
|
2575
2720
|
}
|
2576
2721
|
|
2577
|
-
static void start_bdp_ping(void* tp,
|
2722
|
+
static void start_bdp_ping(void* tp, grpc_error_handle error) {
|
2578
2723
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2579
2724
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_bdp_ping_locked,
|
2580
2725
|
start_bdp_ping_locked, t, nullptr),
|
2581
2726
|
GRPC_ERROR_REF(error));
|
2582
2727
|
}
|
2583
2728
|
|
2584
|
-
static void start_bdp_ping_locked(void* tp,
|
2729
|
+
static void start_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2585
2730
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2586
2731
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2587
2732
|
gpr_log(GPR_INFO, "%s: Start BDP ping err=%s", t->peer_string.c_str(),
|
2588
|
-
|
2733
|
+
grpc_error_std_string(error).c_str());
|
2589
2734
|
}
|
2590
2735
|
if (error != GRPC_ERROR_NONE || t->closed_with_error != GRPC_ERROR_NONE) {
|
2591
2736
|
return;
|
@@ -2598,18 +2743,18 @@ static void start_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2598
2743
|
t->bdp_ping_started = true;
|
2599
2744
|
}
|
2600
2745
|
|
2601
|
-
static void finish_bdp_ping(void* tp,
|
2746
|
+
static void finish_bdp_ping(void* tp, grpc_error_handle error) {
|
2602
2747
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2603
2748
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_bdp_ping_locked,
|
2604
2749
|
finish_bdp_ping_locked, t, nullptr),
|
2605
2750
|
GRPC_ERROR_REF(error));
|
2606
2751
|
}
|
2607
2752
|
|
2608
|
-
static void finish_bdp_ping_locked(void* tp,
|
2753
|
+
static void finish_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2609
2754
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2610
2755
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2611
2756
|
gpr_log(GPR_INFO, "%s: Complete BDP ping err=%s", t->peer_string.c_str(),
|
2612
|
-
|
2757
|
+
grpc_error_std_string(error).c_str());
|
2613
2758
|
}
|
2614
2759
|
if (error != GRPC_ERROR_NONE || t->closed_with_error != GRPC_ERROR_NONE) {
|
2615
2760
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "bdp_ping");
|
@@ -2624,7 +2769,8 @@ static void finish_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2624
2769
|
return;
|
2625
2770
|
}
|
2626
2771
|
t->bdp_ping_started = false;
|
2627
|
-
|
2772
|
+
grpc_core::Timestamp next_ping =
|
2773
|
+
t->flow_control->bdp_estimator()->CompletePing();
|
2628
2774
|
grpc_chttp2_act_on_flowctl_action(t->flow_control->PeriodicUpdate(), t,
|
2629
2775
|
nullptr);
|
2630
2776
|
GPR_ASSERT(!t->have_next_bdp_ping_timer);
|
@@ -2635,7 +2781,7 @@ static void finish_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2635
2781
|
&t->next_bdp_ping_timer_expired_locked);
|
2636
2782
|
}
|
2637
2783
|
|
2638
|
-
static void next_bdp_ping_timer_expired(void* tp,
|
2784
|
+
static void next_bdp_ping_timer_expired(void* tp, grpc_error_handle error) {
|
2639
2785
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2640
2786
|
t->combiner->Run(
|
2641
2787
|
GRPC_CLOSURE_INIT(&t->next_bdp_ping_timer_expired_locked,
|
@@ -2643,7 +2789,8 @@ static void next_bdp_ping_timer_expired(void* tp, grpc_error* error) {
|
|
2643
2789
|
GRPC_ERROR_REF(error));
|
2644
2790
|
}
|
2645
2791
|
|
2646
|
-
static void next_bdp_ping_timer_expired_locked(void* tp,
|
2792
|
+
static void next_bdp_ping_timer_expired_locked(void* tp,
|
2793
|
+
grpc_error_handle error) {
|
2647
2794
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2648
2795
|
GPR_ASSERT(t->have_next_bdp_ping_timer);
|
2649
2796
|
t->have_next_bdp_ping_timer = false;
|
@@ -2719,14 +2866,14 @@ void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
|
|
2719
2866
|
}
|
2720
2867
|
}
|
2721
2868
|
|
2722
|
-
static void init_keepalive_ping(void* arg,
|
2869
|
+
static void init_keepalive_ping(void* arg, grpc_error_handle error) {
|
2723
2870
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2724
2871
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->init_keepalive_ping_locked,
|
2725
2872
|
init_keepalive_ping_locked, t, nullptr),
|
2726
2873
|
GRPC_ERROR_REF(error));
|
2727
2874
|
}
|
2728
2875
|
|
2729
|
-
static void init_keepalive_ping_locked(void* arg,
|
2876
|
+
static void init_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2730
2877
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2731
2878
|
GPR_ASSERT(t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_WAITING);
|
2732
2879
|
if (t->destroying || t->closed_with_error != GRPC_ERROR_NONE) {
|
@@ -2759,14 +2906,14 @@ static void init_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2759
2906
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "init keepalive ping");
|
2760
2907
|
}
|
2761
2908
|
|
2762
|
-
static void start_keepalive_ping(void* arg,
|
2909
|
+
static void start_keepalive_ping(void* arg, grpc_error_handle error) {
|
2763
2910
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2764
2911
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_keepalive_ping_locked,
|
2765
2912
|
start_keepalive_ping_locked, t, nullptr),
|
2766
2913
|
GRPC_ERROR_REF(error));
|
2767
2914
|
}
|
2768
2915
|
|
2769
|
-
static void start_keepalive_ping_locked(void* arg,
|
2916
|
+
static void start_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2770
2917
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2771
2918
|
if (error != GRPC_ERROR_NONE) {
|
2772
2919
|
return;
|
@@ -2787,14 +2934,14 @@ static void start_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2787
2934
|
t->keepalive_ping_started = true;
|
2788
2935
|
}
|
2789
2936
|
|
2790
|
-
static void finish_keepalive_ping(void* arg,
|
2937
|
+
static void finish_keepalive_ping(void* arg, grpc_error_handle error) {
|
2791
2938
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2792
2939
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_keepalive_ping_locked,
|
2793
2940
|
finish_keepalive_ping_locked, t, nullptr),
|
2794
2941
|
GRPC_ERROR_REF(error));
|
2795
2942
|
}
|
2796
2943
|
|
2797
|
-
static void finish_keepalive_ping_locked(void* arg,
|
2944
|
+
static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2798
2945
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2799
2946
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2800
2947
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2825,7 +2972,7 @@ static void finish_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2825
2972
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "keepalive ping end");
|
2826
2973
|
}
|
2827
2974
|
|
2828
|
-
static void keepalive_watchdog_fired(void* arg,
|
2975
|
+
static void keepalive_watchdog_fired(void* arg, grpc_error_handle error) {
|
2829
2976
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2830
2977
|
t->combiner->Run(
|
2831
2978
|
GRPC_CLOSURE_INIT(&t->keepalive_watchdog_fired_locked,
|
@@ -2833,7 +2980,8 @@ static void keepalive_watchdog_fired(void* arg, grpc_error* error) {
|
|
2833
2980
|
GRPC_ERROR_REF(error));
|
2834
2981
|
}
|
2835
2982
|
|
2836
|
-
static void keepalive_watchdog_fired_locked(void* arg,
|
2983
|
+
static void keepalive_watchdog_fired_locked(void* arg,
|
2984
|
+
grpc_error_handle error) {
|
2837
2985
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2838
2986
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2839
2987
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2890,7 +3038,7 @@ static void set_pollset_set(grpc_transport* gt, grpc_stream* /*gs*/,
|
|
2890
3038
|
// BYTE STREAM
|
2891
3039
|
//
|
2892
3040
|
|
2893
|
-
static void reset_byte_stream(void* arg,
|
3041
|
+
static void reset_byte_stream(void* arg, grpc_error_handle error) {
|
2894
3042
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(arg);
|
2895
3043
|
s->pending_byte_stream = false;
|
2896
3044
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2921,8 +3069,8 @@ Chttp2IncomingByteStream::Chttp2IncomingByteStream(
|
|
2921
3069
|
stream->byte_stream_error = GRPC_ERROR_NONE;
|
2922
3070
|
}
|
2923
3071
|
|
2924
|
-
void Chttp2IncomingByteStream::OrphanLocked(
|
2925
|
-
|
3072
|
+
void Chttp2IncomingByteStream::OrphanLocked(
|
3073
|
+
void* arg, grpc_error_handle /*error_ignored*/) {
|
2926
3074
|
Chttp2IncomingByteStream* bs = static_cast<Chttp2IncomingByteStream*>(arg);
|
2927
3075
|
grpc_chttp2_stream* s = bs->stream_;
|
2928
3076
|
grpc_chttp2_transport* t = s->t;
|
@@ -2941,7 +3089,7 @@ void Chttp2IncomingByteStream::Orphan() {
|
|
2941
3089
|
}
|
2942
3090
|
|
2943
3091
|
void Chttp2IncomingByteStream::NextLocked(void* arg,
|
2944
|
-
|
3092
|
+
grpc_error_handle /*error_ignored*/) {
|
2945
3093
|
Chttp2IncomingByteStream* bs = static_cast<Chttp2IncomingByteStream*>(arg);
|
2946
3094
|
grpc_chttp2_transport* t = bs->transport_;
|
2947
3095
|
grpc_chttp2_stream* s = bs->stream_;
|
@@ -2955,12 +3103,10 @@ void Chttp2IncomingByteStream::NextLocked(void* arg,
|
|
2955
3103
|
if (s->frame_storage.length > 0) {
|
2956
3104
|
grpc_slice_buffer_swap(&s->frame_storage,
|
2957
3105
|
&s->unprocessed_incoming_frames_buffer);
|
2958
|
-
|
2959
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, bs->next_action_.on_complete,
|
2960
|
-
GRPC_ERROR_NONE);
|
3106
|
+
ExecCtx::Run(DEBUG_LOCATION, bs->next_action_.on_complete, GRPC_ERROR_NONE);
|
2961
3107
|
} else if (s->byte_stream_error != GRPC_ERROR_NONE) {
|
2962
|
-
|
2963
|
-
|
3108
|
+
ExecCtx::Run(DEBUG_LOCATION, bs->next_action_.on_complete,
|
3109
|
+
GRPC_ERROR_REF(s->byte_stream_error));
|
2964
3110
|
if (s->data_parser.parsing_frame != nullptr) {
|
2965
3111
|
s->data_parser.parsing_frame->Unref();
|
2966
3112
|
s->data_parser.parsing_frame = nullptr;
|
@@ -2969,8 +3115,8 @@ void Chttp2IncomingByteStream::NextLocked(void* arg,
|
|
2969
3115
|
if (bs->remaining_bytes_ != 0) {
|
2970
3116
|
s->byte_stream_error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
2971
3117
|
"Truncated message", &s->read_closed_error, 1);
|
2972
|
-
|
2973
|
-
|
3118
|
+
ExecCtx::Run(DEBUG_LOCATION, bs->next_action_.on_complete,
|
3119
|
+
GRPC_ERROR_REF(s->byte_stream_error));
|
2974
3120
|
if (s->data_parser.parsing_frame != nullptr) {
|
2975
3121
|
s->data_parser.parsing_frame->Unref();
|
2976
3122
|
s->data_parser.parsing_frame = nullptr;
|
@@ -3002,45 +3148,10 @@ bool Chttp2IncomingByteStream::Next(size_t max_size_hint,
|
|
3002
3148
|
}
|
3003
3149
|
}
|
3004
3150
|
|
3005
|
-
|
3006
|
-
GPR_DEBUG_ASSERT(stream_->stream_decompression_method !=
|
3007
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_DECOMPRESS);
|
3008
|
-
if (!stream_->stream_decompression_ctx) {
|
3009
|
-
stream_->stream_decompression_ctx = grpc_stream_compression_context_create(
|
3010
|
-
stream_->stream_decompression_method);
|
3011
|
-
}
|
3012
|
-
}
|
3013
|
-
|
3014
|
-
grpc_error* Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
3151
|
+
grpc_error_handle Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
3015
3152
|
GPR_TIMER_SCOPE("incoming_byte_stream_pull", 0);
|
3016
|
-
|
3153
|
+
grpc_error_handle error;
|
3017
3154
|
if (stream_->unprocessed_incoming_frames_buffer.length > 0) {
|
3018
|
-
if (!stream_->unprocessed_incoming_frames_decompressed &&
|
3019
|
-
stream_->stream_decompression_method !=
|
3020
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_DECOMPRESS) {
|
3021
|
-
bool end_of_context;
|
3022
|
-
MaybeCreateStreamDecompressionCtx();
|
3023
|
-
if (!grpc_stream_decompress(stream_->stream_decompression_ctx,
|
3024
|
-
&stream_->unprocessed_incoming_frames_buffer,
|
3025
|
-
&stream_->decompressed_data_buffer, nullptr,
|
3026
|
-
MAX_SIZE_T, &end_of_context)) {
|
3027
|
-
error =
|
3028
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Stream decompression error.");
|
3029
|
-
return error;
|
3030
|
-
}
|
3031
|
-
GPR_ASSERT(stream_->unprocessed_incoming_frames_buffer.length == 0);
|
3032
|
-
grpc_slice_buffer_swap(&stream_->unprocessed_incoming_frames_buffer,
|
3033
|
-
&stream_->decompressed_data_buffer);
|
3034
|
-
stream_->unprocessed_incoming_frames_decompressed = true;
|
3035
|
-
if (end_of_context) {
|
3036
|
-
grpc_stream_compression_context_destroy(
|
3037
|
-
stream_->stream_decompression_ctx);
|
3038
|
-
stream_->stream_decompression_ctx = nullptr;
|
3039
|
-
}
|
3040
|
-
if (stream_->unprocessed_incoming_frames_buffer.length == 0) {
|
3041
|
-
*slice = grpc_empty_slice();
|
3042
|
-
}
|
3043
|
-
}
|
3044
3155
|
error = grpc_deframe_unprocessed_incoming_frames(
|
3045
3156
|
&stream_->data_parser, stream_,
|
3046
3157
|
&stream_->unprocessed_incoming_frames_buffer, slice, nullptr);
|
@@ -3056,20 +3167,19 @@ grpc_error* Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
|
3056
3167
|
return GRPC_ERROR_NONE;
|
3057
3168
|
}
|
3058
3169
|
|
3059
|
-
void Chttp2IncomingByteStream::PublishError(
|
3170
|
+
void Chttp2IncomingByteStream::PublishError(grpc_error_handle error) {
|
3060
3171
|
GPR_ASSERT(error != GRPC_ERROR_NONE);
|
3061
|
-
|
3062
|
-
GRPC_ERROR_REF(error));
|
3172
|
+
ExecCtx::Run(DEBUG_LOCATION, stream_->on_next, GRPC_ERROR_REF(error));
|
3063
3173
|
stream_->on_next = nullptr;
|
3064
3174
|
GRPC_ERROR_UNREF(stream_->byte_stream_error);
|
3065
3175
|
stream_->byte_stream_error = GRPC_ERROR_REF(error);
|
3066
3176
|
grpc_chttp2_cancel_stream(transport_, stream_, GRPC_ERROR_REF(error));
|
3067
3177
|
}
|
3068
3178
|
|
3069
|
-
|
3070
|
-
|
3179
|
+
grpc_error_handle Chttp2IncomingByteStream::Push(const grpc_slice& slice,
|
3180
|
+
grpc_slice* slice_out) {
|
3071
3181
|
if (remaining_bytes_ < GRPC_SLICE_LENGTH(slice)) {
|
3072
|
-
|
3182
|
+
grpc_error_handle error =
|
3073
3183
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Too many bytes in stream");
|
3074
3184
|
transport_->combiner->Run(&stream_->reset_byte_stream,
|
3075
3185
|
GRPC_ERROR_REF(error));
|
@@ -3084,8 +3194,8 @@ grpc_error* Chttp2IncomingByteStream::Push(const grpc_slice& slice,
|
|
3084
3194
|
}
|
3085
3195
|
}
|
3086
3196
|
|
3087
|
-
|
3088
|
-
|
3197
|
+
grpc_error_handle Chttp2IncomingByteStream::Finished(grpc_error_handle error,
|
3198
|
+
bool reset_on_error) {
|
3089
3199
|
if (error == GRPC_ERROR_NONE) {
|
3090
3200
|
if (remaining_bytes_ != 0) {
|
3091
3201
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Truncated message");
|
@@ -3099,7 +3209,7 @@ grpc_error* Chttp2IncomingByteStream::Finished(grpc_error* error,
|
|
3099
3209
|
return error;
|
3100
3210
|
}
|
3101
3211
|
|
3102
|
-
void Chttp2IncomingByteStream::Shutdown(
|
3212
|
+
void Chttp2IncomingByteStream::Shutdown(grpc_error_handle error) {
|
3103
3213
|
GRPC_ERROR_UNREF(Finished(error, true /* reset_on_error */));
|
3104
3214
|
}
|
3105
3215
|
|
@@ -3113,10 +3223,19 @@ static void post_benign_reclaimer(grpc_chttp2_transport* t) {
|
|
3113
3223
|
if (!t->benign_reclaimer_registered) {
|
3114
3224
|
t->benign_reclaimer_registered = true;
|
3115
3225
|
GRPC_CHTTP2_REF_TRANSPORT(t, "benign_reclaimer");
|
3116
|
-
|
3117
|
-
|
3118
|
-
|
3119
|
-
|
3226
|
+
t->memory_owner.PostReclaimer(
|
3227
|
+
grpc_core::ReclamationPass::kBenign,
|
3228
|
+
[t](absl::optional<grpc_core::ReclamationSweep> sweep) {
|
3229
|
+
if (sweep.has_value()) {
|
3230
|
+
GRPC_CLOSURE_INIT(&t->benign_reclaimer_locked,
|
3231
|
+
benign_reclaimer_locked, t,
|
3232
|
+
grpc_schedule_on_exec_ctx);
|
3233
|
+
t->active_reclamation = std::move(*sweep);
|
3234
|
+
t->combiner->Run(&t->benign_reclaimer_locked, GRPC_ERROR_NONE);
|
3235
|
+
} else {
|
3236
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
3237
|
+
}
|
3238
|
+
});
|
3120
3239
|
}
|
3121
3240
|
}
|
3122
3241
|
|
@@ -3124,21 +3243,23 @@ static void post_destructive_reclaimer(grpc_chttp2_transport* t) {
|
|
3124
3243
|
if (!t->destructive_reclaimer_registered) {
|
3125
3244
|
t->destructive_reclaimer_registered = true;
|
3126
3245
|
GRPC_CHTTP2_REF_TRANSPORT(t, "destructive_reclaimer");
|
3127
|
-
|
3128
|
-
|
3129
|
-
|
3130
|
-
|
3246
|
+
t->memory_owner.PostReclaimer(
|
3247
|
+
grpc_core::ReclamationPass::kDestructive,
|
3248
|
+
[t](absl::optional<grpc_core::ReclamationSweep> sweep) {
|
3249
|
+
if (sweep.has_value()) {
|
3250
|
+
GRPC_CLOSURE_INIT(&t->destructive_reclaimer_locked,
|
3251
|
+
destructive_reclaimer_locked, t,
|
3252
|
+
grpc_schedule_on_exec_ctx);
|
3253
|
+
t->active_reclamation = std::move(*sweep);
|
3254
|
+
t->combiner->Run(&t->destructive_reclaimer_locked, GRPC_ERROR_NONE);
|
3255
|
+
} else {
|
3256
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
3257
|
+
}
|
3258
|
+
});
|
3131
3259
|
}
|
3132
3260
|
}
|
3133
3261
|
|
3134
|
-
static void
|
3135
|
-
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3136
|
-
t->combiner->Run(GRPC_CLOSURE_INIT(&t->benign_reclaimer_locked,
|
3137
|
-
benign_reclaimer_locked, t, nullptr),
|
3138
|
-
GRPC_ERROR_REF(error));
|
3139
|
-
}
|
3140
|
-
|
3141
|
-
static void benign_reclaimer_locked(void* arg, grpc_error* error) {
|
3262
|
+
static void benign_reclaimer_locked(void* arg, grpc_error_handle error) {
|
3142
3263
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3143
3264
|
if (error == GRPC_ERROR_NONE &&
|
3144
3265
|
grpc_chttp2_stream_map_size(&t->stream_map) == 0) {
|
@@ -3151,7 +3272,8 @@ static void benign_reclaimer_locked(void* arg, grpc_error* error) {
|
|
3151
3272
|
send_goaway(t,
|
3152
3273
|
grpc_error_set_int(
|
3153
3274
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Buffers full"),
|
3154
|
-
GRPC_ERROR_INT_HTTP2_ERROR, GRPC_HTTP2_ENHANCE_YOUR_CALM)
|
3275
|
+
GRPC_ERROR_INT_HTTP2_ERROR, GRPC_HTTP2_ENHANCE_YOUR_CALM),
|
3276
|
+
/*immediate_disconnect_hint=*/true);
|
3155
3277
|
} else if (error == GRPC_ERROR_NONE &&
|
3156
3278
|
GRPC_TRACE_FLAG_ENABLED(grpc_resource_quota_trace)) {
|
3157
3279
|
gpr_log(GPR_INFO,
|
@@ -3162,20 +3284,12 @@ static void benign_reclaimer_locked(void* arg, grpc_error* error) {
|
|
3162
3284
|
}
|
3163
3285
|
t->benign_reclaimer_registered = false;
|
3164
3286
|
if (error != GRPC_ERROR_CANCELLED) {
|
3165
|
-
|
3166
|
-
grpc_endpoint_get_resource_user(t->ep));
|
3287
|
+
t->active_reclamation.Finish();
|
3167
3288
|
}
|
3168
3289
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
3169
3290
|
}
|
3170
3291
|
|
3171
|
-
static void
|
3172
|
-
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3173
|
-
t->combiner->Run(GRPC_CLOSURE_INIT(&t->destructive_reclaimer_locked,
|
3174
|
-
destructive_reclaimer_locked, t, nullptr),
|
3175
|
-
GRPC_ERROR_REF(error));
|
3176
|
-
}
|
3177
|
-
|
3178
|
-
static void destructive_reclaimer_locked(void* arg, grpc_error* error) {
|
3292
|
+
static void destructive_reclaimer_locked(void* arg, grpc_error_handle error) {
|
3179
3293
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3180
3294
|
size_t n = grpc_chttp2_stream_map_size(&t->stream_map);
|
3181
3295
|
t->destructive_reclaimer_registered = false;
|
@@ -3200,8 +3314,7 @@ static void destructive_reclaimer_locked(void* arg, grpc_error* error) {
|
|
3200
3314
|
}
|
3201
3315
|
}
|
3202
3316
|
if (error != GRPC_ERROR_CANCELLED) {
|
3203
|
-
|
3204
|
-
grpc_endpoint_get_resource_user(t->ep));
|
3317
|
+
t->active_reclamation.Finish();
|
3205
3318
|
}
|
3206
3319
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "destructive_reclaimer");
|
3207
3320
|
}
|
@@ -3239,6 +3352,8 @@ const char* grpc_chttp2_initiate_write_reason_string(
|
|
3239
3352
|
return "TRANSPORT_FLOW_CONTROL";
|
3240
3353
|
case GRPC_CHTTP2_INITIATE_WRITE_SEND_SETTINGS:
|
3241
3354
|
return "SEND_SETTINGS";
|
3355
|
+
case GRPC_CHTTP2_INITIATE_WRITE_SETTINGS_ACK:
|
3356
|
+
return "SETTINGS_ACK";
|
3242
3357
|
case GRPC_CHTTP2_INITIATE_WRITE_FLOW_CONTROL_UNSTALLED_BY_SETTING:
|
3243
3358
|
return "FLOW_CONTROL_UNSTALLED_BY_SETTING";
|
3244
3359
|
case GRPC_CHTTP2_INITIATE_WRITE_FLOW_CONTROL_UNSTALLED_BY_UPDATE:
|
@@ -3266,6 +3381,7 @@ static grpc_endpoint* chttp2_get_endpoint(grpc_transport* t) {
|
|
3266
3381
|
static const grpc_transport_vtable vtable = {sizeof(grpc_chttp2_stream),
|
3267
3382
|
"chttp2",
|
3268
3383
|
init_stream,
|
3384
|
+
nullptr,
|
3269
3385
|
set_pollset,
|
3270
3386
|
set_pollset_set,
|
3271
3387
|
perform_stream_op,
|
@@ -3284,16 +3400,14 @@ grpc_chttp2_transport_get_socket_node(grpc_transport* transport) {
|
|
3284
3400
|
}
|
3285
3401
|
|
3286
3402
|
grpc_transport* grpc_create_chttp2_transport(
|
3287
|
-
const grpc_channel_args* channel_args, grpc_endpoint* ep, bool is_client
|
3288
|
-
|
3289
|
-
auto t =
|
3290
|
-
new grpc_chttp2_transport(channel_args, ep, is_client, resource_user);
|
3403
|
+
const grpc_channel_args* channel_args, grpc_endpoint* ep, bool is_client) {
|
3404
|
+
auto t = new grpc_chttp2_transport(channel_args, ep, is_client);
|
3291
3405
|
return &t->base;
|
3292
3406
|
}
|
3293
3407
|
|
3294
3408
|
void grpc_chttp2_transport_start_reading(
|
3295
3409
|
grpc_transport* transport, grpc_slice_buffer* read_buffer,
|
3296
|
-
grpc_closure* notify_on_receive_settings) {
|
3410
|
+
grpc_closure* notify_on_receive_settings, grpc_closure* notify_on_close) {
|
3297
3411
|
grpc_chttp2_transport* t =
|
3298
3412
|
reinterpret_cast<grpc_chttp2_transport*>(transport);
|
3299
3413
|
GRPC_CHTTP2_REF_TRANSPORT(
|
@@ -3303,6 +3417,7 @@ void grpc_chttp2_transport_start_reading(
|
|
3303
3417
|
gpr_free(read_buffer);
|
3304
3418
|
}
|
3305
3419
|
t->notify_on_receive_settings = notify_on_receive_settings;
|
3420
|
+
t->notify_on_close = notify_on_close;
|
3306
3421
|
t->combiner->Run(
|
3307
3422
|
GRPC_CLOSURE_INIT(&t->read_action_locked, read_action_locked, t, nullptr),
|
3308
3423
|
GRPC_ERROR_NONE);
|