grpc 1.37.0 → 1.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +501 -260
- 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 +399 -0
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +68 -0
- data/include/grpc/event_engine/memory_allocator.h +226 -0
- data/include/grpc/event_engine/memory_request.h +57 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/fork.h +1 -1
- data/include/grpc/grpc.h +65 -22
- data/include/grpc/grpc_posix.h +22 -18
- data/include/grpc/grpc_security.h +358 -191
- 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 +61 -28
- data/include/grpc/impl/codegen/log.h +2 -0
- data/include/grpc/impl/codegen/port_platform.h +83 -22
- 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/client_channel/backend_metric.cc +24 -27
- data/src/core/ext/filters/client_channel/backend_metric.h +4 -3
- data/src/core/ext/filters/client_channel/backup_poller.cc +17 -12
- data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +158 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +1231 -3574
- data/src/core/ext/filters/client_channel/client_channel.h +563 -56
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +2 -2
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +2 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.h +17 -19
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +19 -22
- data/src/core/ext/filters/client_channel/config_selector.cc +2 -1
- data/src/core/ext/filters/client_channel/config_selector.h +22 -10
- data/src/core/ext/filters/client_channel/connector.h +20 -20
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +15 -17
- data/src/core/ext/filters/client_channel/dynamic_filters.h +5 -5
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -22
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -16
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +72 -68
- data/src/core/ext/filters/client_channel/health/health_check_client.h +38 -36
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +54 -55
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +6 -5
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +12 -24
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +300 -201
- 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 +1 -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 +6 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +17 -18
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +86 -61
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +73 -68
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +785 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2551 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +77 -78
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +19 -14
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +37 -34
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +112 -167
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +188 -111
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +46 -65
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +198 -312
- data/src/core/ext/filters/client_channel/lb_policy.cc +17 -30
- data/src/core/ext/filters/client_channel/lb_policy.h +170 -137
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -11
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +133 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +292 -149
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +23 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +24 -19
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +51 -69
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +168 -281
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +39 -26
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +138 -120
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +42 -47
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -6
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +102 -79
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +41 -40
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +547 -468
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +42 -253
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +34 -57
- data/src/core/ext/filters/client_channel/retry_filter.cc +2640 -0
- data/src/core/ext/filters/{workarounds/workaround_cronet_compression_filter.h → client_channel/retry_filter.h} +9 -6
- data/src/core/ext/filters/client_channel/retry_service_config.cc +314 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +102 -0
- data/src/core/ext/filters/client_channel/retry_throttle.cc +14 -59
- data/src/core/ext/filters/client_channel/retry_throttle.h +11 -5
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +56 -41
- data/src/core/ext/filters/client_channel/subchannel.cc +143 -207
- data/src/core/ext/filters/client_channel/subchannel.h +43 -62
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +22 -7
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +11 -2
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +109 -348
- data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
- data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +41 -43
- data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +105 -102
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +21 -31
- data/src/core/ext/filters/fault_injection/service_config_parser.h +11 -5
- data/src/core/ext/filters/http/client/http_client_filter.cc +108 -183
- data/src/core/ext/filters/http/client_authority_filter.cc +36 -95
- data/src/core/ext/filters/http/client_authority_filter.h +23 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +52 -73
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +67 -157
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +43 -56
- data/src/core/ext/filters/http/server/http_server_filter.cc +115 -207
- data/src/core/ext/filters/max_age/max_age_filter.cc +75 -69
- data/src/core/ext/filters/message_size/message_size_filter.cc +63 -69
- data/src/core/ext/filters/message_size/message_size_filter.h +11 -4
- data/src/core/ext/filters/rbac/rbac_filter.cc +162 -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 +67 -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 +271 -0
- data/src/core/{lib/transport/authority_override.h → ext/filters/server_config_selector/server_config_selector_filter.h} +8 -13
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +251 -19
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +339 -138
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +4 -2
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +386 -463
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -4
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -6
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +66 -47
- data/src/core/ext/transport/chttp2/transport/flow_control.h +27 -21
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +23 -24
- data/src/core/ext/transport/chttp2/transport/frame_data.h +11 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +21 -20
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +17 -17
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +8 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +17 -15
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +49 -17
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +16 -13
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -6
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +520 -749
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +183 -71
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +71 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +811 -1193
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +101 -83
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +239 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +115 -0
- data/src/core/ext/transport/chttp2/transport/internal.h +51 -74
- data/src/core/ext/transport/chttp2/transport/parsing.cc +157 -293
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/varint.cc +13 -7
- data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
- data/src/core/ext/transport/chttp2/transport/writing.cc +113 -164
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +186 -215
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +114 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +402 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +119 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +453 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +244 -210
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +932 -575
- 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 +138 -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 +146 -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 +106 -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 +93 -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 +88 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +103 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +466 -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 +95 -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 +20 -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 +40 -19
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +144 -117
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +513 -317
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +241 -188
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +954 -530
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +44 -29
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +137 -81
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +328 -250
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1266 -657
- 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 +41 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +41 -28
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +136 -80
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +290 -0
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1122 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +73 -54
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +265 -159
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +41 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +238 -153
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +894 -471
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +63 -46
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +210 -130
- 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 +33 -19
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +32 -18
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +88 -53
- 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 +138 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +144 -118
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +529 -329
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +112 -91
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +425 -259
- 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 +44 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +212 -91
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +932 -266
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +18 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +33 -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 +152 -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 +47 -25
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +28 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +53 -35
- 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 +108 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +52 -36
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +133 -85
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -39
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +325 -107
- 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 +244 -144
- 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 +36 -20
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +97 -69
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +400 -226
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +99 -78
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +340 -213
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +61 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +199 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +27 -11
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +86 -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 +120 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +82 -62
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +294 -185
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +93 -60
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +349 -181
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +127 -100
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +307 -185
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +59 -27
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +195 -88
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +648 -559
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2460 -1505
- 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 +127 -64
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +216 -0
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +870 -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 +82 -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 +95 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +28 -14
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +69 -40
- 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 +119 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +203 -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 +89 -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 +184 -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 +192 -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 +126 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +18 -5
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +37 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +46 -29
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +156 -92
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +52 -36
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +175 -107
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +165 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +27 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +69 -41
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +272 -200
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1095 -552
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +10 -1
- 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 +108 -52
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +448 -171
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +42 -27
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +115 -71
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +103 -83
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +341 -213
- 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 +146 -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 +92 -73
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +335 -218
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +32 -18
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +87 -54
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +85 -40
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +303 -104
- 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 +101 -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 +228 -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 +202 -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 +81 -46
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +42 -26
- 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 +33 -19
- 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 +33 -19
- 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 +105 -61
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +32 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +79 -52
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +27 -13
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +70 -43
- 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 +94 -58
- 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 +206 -124
- 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 +191 -115
- 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 +183 -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 +136 -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 +65 -34
- 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 +100 -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 +39 -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 +114 -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 +9 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +151 -126
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +439 -281
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +153 -127
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +483 -298
- data/src/core/ext/upb-generated/google/api/http.upb.c +44 -29
- data/src/core/ext/upb-generated/google/api/http.upb.h +137 -89
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +99 -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 +40 -22
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +367 -277
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1252 -764
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -6
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +36 -18
- 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 +100 -64
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -6
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +36 -18
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +58 -37
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +269 -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 +44 -26
- 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 +276 -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 +68 -42
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +132 -108
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +458 -285
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +27 -13
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +72 -39
- 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 +64 -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 +321 -197
- 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 +175 -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 +132 -63
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +32 -8
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +41 -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 +9 -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 +41 -18
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +31 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +40 -19
- data/src/core/ext/upb-generated/validate/validate.upb.c +396 -295
- data/src/core/ext/upb-generated/validate/validate.upb.h +1395 -768
- 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 +191 -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 +87 -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 +38 -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 +230 -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 +81 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +19 -6
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +35 -19
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +32 -18
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +77 -46
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +27 -13
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +39 -25
- 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 +95 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +24 -11
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +47 -27
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +35 -21
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +87 -54
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +24 -11
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +51 -29
- 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 +144 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +203 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +726 -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 +132 -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 +173 -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 +95 -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 +16 -61
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +67 -67
- 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 +69 -98
- 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 +349 -339
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +57 -52
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +18 -24
- 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 +488 -484
- 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 +18 -20
- 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 +224 -229
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +79 -64
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +23 -33
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +16 -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 +17 -21
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +7 -7
- 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 +76 -89
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +25 -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 -200
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +59 -34
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +14 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +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 +40 -38
- 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 +20 -28
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +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 -155
- 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 +147 -153
- 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 -36
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +19 -35
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +40 -47
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +30 -25
- 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 +79 -71
- 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 +717 -773
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +162 -157
- 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 +17 -21
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/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 +17 -18
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +19 -29
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +27 -30
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +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 +26 -24
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +455 -429
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +62 -52
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +17 -13
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +178 -138
- 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 +21 -27
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +194 -200
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +19 -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 +19 -33
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +18 -22
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +120 -97
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +18 -13
- 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 +17 -19
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +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 +17 -21
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +16 -21
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +18 -24
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +15 -29
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +16 -26
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +12 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +14 -19
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +13 -19
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_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/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 -216
- 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 +18 -22
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +32 -38
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +20 -26
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +23 -27
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +39 -45
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +25 -29
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/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.h +4 -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 +232 -3313
- data/src/core/ext/xds/xds_api.h +70 -550
- data/src/core/ext/xds/xds_bootstrap.cc +315 -300
- data/src/core/ext/xds/xds_bootstrap.h +54 -33
- data/src/core/ext/xds/xds_certificate_provider.cc +7 -7
- data/src/core/ext/xds/xds_certificate_provider.h +6 -6
- 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 +1093 -957
- data/src/core/ext/xds/xds_client.h +143 -168
- data/src/core/ext/xds/xds_client_stats.cc +31 -30
- data/src/core/ext/xds/xds_client_stats.h +15 -13
- data/src/core/ext/xds/xds_cluster.cc +453 -0
- data/src/core/ext/xds/xds_cluster.h +108 -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 +364 -0
- data/src/core/ext/xds/xds_endpoint.h +135 -0
- data/src/core/ext/xds/xds_http_fault_filter.cc +10 -9
- data/src/core/ext/xds/xds_http_fault_filter.h +6 -5
- data/src/core/ext/xds/xds_http_filters.cc +15 -7
- data/src/core/ext/xds/xds_http_filters.h +7 -4
- 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 +1039 -0
- data/src/core/ext/xds/xds_listener.h +220 -0
- data/src/core/{lib/transport/authority_override.cc → ext/xds/xds_resource_type.cc} +10 -17
- 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 +985 -0
- data/src/core/ext/xds/xds_route_config.h +215 -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 +1083 -296
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +43 -25
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +12 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +34 -41
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +5 -15
- data/src/core/lib/avl/avl.h +389 -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 +86 -0
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_args.cc +87 -9
- data/src/core/lib/channel/channel_args.h +13 -1
- data/src/core/lib/channel/channel_args_preconditioning.cc +48 -0
- data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
- data/src/core/lib/channel/channel_stack.cc +25 -15
- data/src/core/lib/channel/channel_stack.h +53 -16
- data/src/core/lib/channel/channel_stack_builder.cc +68 -262
- data/src/core/lib/channel/channel_stack_builder.h +95 -155
- data/src/core/lib/channel/channel_trace.cc +8 -10
- data/src/core/lib/channel/channel_trace.h +2 -1
- data/src/core/lib/channel/channelz.cc +65 -52
- data/src/core/lib/channel/channelz.h +32 -29
- data/src/core/lib/channel/channelz_registry.cc +8 -7
- data/src/core/lib/channel/channelz_registry.h +1 -1
- data/src/core/lib/channel/connected_channel.cc +14 -10
- data/src/core/lib/channel/connected_channel.h +1 -2
- data/src/core/lib/channel/context.h +14 -0
- data/src/core/lib/channel/handshaker.cc +10 -8
- data/src/core/lib/channel/handshaker.h +7 -8
- data/src/core/lib/channel/handshaker_factory.h +10 -2
- data/src/core/lib/channel/handshaker_registry.cc +15 -70
- data/src/core/lib/channel/handshaker_registry.h +29 -12
- data/src/core/lib/channel/promise_based_filter.cc +669 -0
- data/src/core/lib/channel/promise_based_filter.h +423 -0
- data/src/core/lib/channel/status_util.h +6 -2
- data/src/core/lib/compression/compression.cc +22 -114
- data/src/core/lib/compression/compression_internal.cc +145 -207
- 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 +104 -0
- data/src/core/lib/config/core_configuration.h +196 -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 +15 -14
- data/src/core/lib/debug/stats_data.h +1 -0
- 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 +46 -0
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +42 -0
- data/src/core/lib/event_engine/default_event_engine_factory.cc +27 -0
- data/src/core/lib/event_engine/event_engine.cc +52 -0
- data/src/core/lib/event_engine/event_engine_factory.h +36 -0
- data/src/core/lib/event_engine/memory_allocator.cc +66 -0
- data/src/core/lib/event_engine/resolved_address.cc +39 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -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 +3 -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 +7 -6
- data/src/core/lib/gpr/sync_posix.cc +4 -3
- 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 +125 -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 +195 -0
- data/src/core/lib/gprpp/capture.h +76 -0
- data/src/core/lib/gprpp/chunked_vector.h +253 -0
- data/src/core/lib/gprpp/construct_destruct.h +39 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +45 -0
- data/src/core/lib/gprpp/debug_location.h +2 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +25 -26
- data/src/core/lib/gprpp/fork.cc +14 -12
- data/src/core/lib/gprpp/fork.h +4 -4
- data/src/core/lib/gprpp/global_config.h +1 -2
- data/src/core/lib/gprpp/global_config_env.cc +14 -14
- data/src/core/lib/gprpp/global_config_env.h +2 -2
- data/src/core/lib/gprpp/global_config_generic.h +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +11 -9
- data/src/core/lib/gprpp/memory.h +9 -3
- data/src/core/lib/gprpp/mpscq.cc +7 -7
- data/src/core/lib/gprpp/mpscq.h +6 -5
- data/src/core/lib/gprpp/orphanable.h +7 -7
- data/src/core/lib/gprpp/ref_counted.h +47 -33
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
- data/src/core/lib/gprpp/status_helper.cc +419 -0
- data/src/core/lib/gprpp/status_helper.h +181 -0
- data/src/core/lib/gprpp/sync.h +5 -31
- data/src/core/lib/gprpp/table.h +434 -0
- data/src/core/lib/gprpp/thd_posix.cc +5 -5
- data/src/core/lib/gprpp/thd_windows.cc +4 -11
- data/src/core/lib/gprpp/time.cc +186 -0
- data/src/core/lib/gprpp/time.h +292 -0
- data/src/core/lib/gprpp/time_util.cc +2 -2
- data/src/core/lib/gprpp/time_util.h +2 -2
- data/src/core/lib/http/format_request.cc +28 -23
- data/src/core/lib/http/format_request.h +8 -6
- data/src/core/lib/http/httpcli.cc +299 -209
- data/src/core/lib/http/httpcli.h +183 -85
- data/src/core/lib/http/httpcli_security_connector.cc +71 -81
- data/src/core/lib/http/httpcli_ssl_credentials.h +37 -0
- data/src/core/lib/http/parser.cc +18 -18
- data/src/core/lib/http/parser.h +6 -5
- data/src/core/lib/iomgr/buffer_list.cc +16 -17
- data/src/core/lib/iomgr/buffer_list.h +22 -24
- 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 +4 -4
- 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 +1 -5
- data/src/core/lib/iomgr/endpoint.h +3 -6
- data/src/core/lib/iomgr/endpoint_cfstream.cc +25 -54
- 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_event_engine.cc +32 -0
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +11 -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 +277 -113
- 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 +10 -9
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +42 -48
- data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -81
- data/src/core/lib/iomgr/ev_poll_posix.cc +73 -73
- data/src/core/lib/iomgr/ev_posix.cc +12 -12
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +77 -0
- data/src/core/lib/iomgr/event_engine/closure.h +42 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +172 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +52 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +85 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +47 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +37 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +133 -0
- data/src/core/lib/iomgr/event_engine/resolver.h +56 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +296 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +62 -0
- data/src/core/lib/iomgr/exec_ctx.cc +29 -102
- data/src/core/lib/iomgr/exec_ctx.h +32 -57
- 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 +3 -2
- 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 +3 -2
- 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 -3
- data/src/core/lib/iomgr/iomgr.h +3 -3
- 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 -3
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +44 -14
- data/src/core/lib/iomgr/iomgr_windows.cc +4 -5
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +4 -4
- 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_windows.cc +1 -0
- data/src/core/lib/iomgr/pollset_windows.cc +6 -6
- data/src/core/lib/iomgr/port.h +8 -14
- data/src/core/lib/iomgr/python_util.h +3 -2
- data/src/core/lib/iomgr/resolve_address.cc +10 -24
- data/src/core/lib/iomgr/resolve_address.h +48 -43
- data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +91 -79
- data/src/core/lib/iomgr/resolve_address_posix.h +47 -0
- data/src/core/lib/iomgr/resolve_address_windows.cc +102 -85
- data/src/core/lib/iomgr/resolve_address_windows.h +47 -0
- data/src/core/lib/iomgr/resolved_address.h +39 -0
- data/src/core/lib/iomgr/sockaddr.h +2 -1
- data/src/core/lib/iomgr/{socket_utils_uv.cc → sockaddr_utils_posix.cc} +21 -8
- 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 +28 -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 +12 -28
- data/src/core/lib/iomgr/tcp_client_posix.cc +38 -45
- data/src/core/lib/iomgr/tcp_client_posix.h +7 -6
- data/src/core/lib/iomgr/tcp_client_windows.cc +15 -15
- data/src/core/lib/iomgr/tcp_posix.cc +129 -159
- 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 +44 -34
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +34 -29
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +23 -20
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +12 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +32 -35
- data/src/core/lib/iomgr/tcp_windows.cc +35 -52
- 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 +116 -127
- 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 +16 -15
- 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 +1 -0
- 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 +1 -1
- data/src/core/lib/json/json_reader.cc +97 -58
- data/src/core/lib/json/json_util.cc +71 -3
- data/src/core/lib/json/json_util.h +66 -116
- data/src/core/lib/json/json_writer.cc +0 -3
- data/src/core/lib/matchers/matchers.cc +47 -59
- data/src/core/lib/matchers/matchers.h +30 -30
- 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 +188 -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 +189 -0
- data/src/core/lib/promise/detail/promise_like.h +85 -0
- data/src/core/lib/promise/detail/status.h +49 -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/loop.h +134 -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 +84 -0
- data/src/core/lib/promise/seq.h +89 -0
- data/src/core/lib/promise/sleep.cc +74 -0
- data/src/core/lib/promise/sleep.h +66 -0
- data/src/core/lib/promise/try_seq.h +157 -0
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.cc +17 -25
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.h +43 -44
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_factory.h +32 -29
- data/src/core/lib/resolver/resolver_registry.cc +156 -0
- data/src/core/lib/resolver/resolver_registry.h +113 -0
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.cc +2 -2
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.h +5 -5
- data/src/core/lib/resource_quota/api.cc +108 -0
- data/src/core/lib/resource_quota/api.h +40 -0
- data/src/core/lib/{gprpp → resource_quota}/arena.cc +18 -14
- data/src/core/lib/{gprpp → resource_quota}/arena.h +37 -16
- data/src/core/lib/resource_quota/memory_quota.cc +478 -0
- data/src/core/lib/resource_quota/memory_quota.h +457 -0
- data/src/core/lib/resource_quota/resource_quota.cc +33 -0
- data/src/core/lib/resource_quota/resource_quota.h +58 -0
- data/src/core/lib/resource_quota/thread_quota.cc +43 -0
- data/src/core/lib/resource_quota/thread_quota.h +57 -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 +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +33 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +212 -0
- data/src/core/lib/security/authorization/evaluate_args.h +92 -0
- 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 +51 -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 +1 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -0
- 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 +87 -0
- data/src/core/lib/security/credentials/call_creds_util.h +42 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +97 -0
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +70 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +21 -84
- data/src/core/lib/security/credentials/composite/composite_credentials.h +21 -9
- data/src/core/lib/security/credentials/credentials.cc +11 -10
- data/src/core/lib/security/credentials/credentials.h +75 -59
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +78 -72
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +15 -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 +127 -80
- 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 +5 -5
- 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 +43 -26
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +10 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +18 -18
- data/src/core/lib/security/credentials/fake/fake_credentials.h +14 -16
- 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 +85 -30
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +6 -0
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +21 -28
- data/src/core/lib/security/credentials/iam/iam_credentials.h +11 -9
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +13 -7
- data/src/core/lib/security/credentials/jwt/json_token.cc +7 -9
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +52 -51
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +23 -15
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +66 -59
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -4
- data/src/core/lib/security/credentials/local/local_credentials.h +6 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +166 -193
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +54 -34
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +97 -157
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +54 -27
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -14
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +6 -4
- 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 +80 -25
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +20 -12
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +201 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +106 -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 +38 -85
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +21 -10
- data/src/core/lib/security/credentials/tls/tls_credentials.h +6 -0
- 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 +31 -36
- data/src/core/lib/security/credentials/xds/xds_credentials.h +6 -1
- 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 +24 -25
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +8 -18
- 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 +32 -24
- data/src/core/lib/security/security_connector/security_connector.cc +8 -15
- data/src/core/lib/security/security_connector/security_connector.h +24 -24
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +24 -22
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +67 -39
- data/src/core/lib/security/security_connector/ssl_utils.h +17 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +409 -272
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +118 -79
- data/src/core/lib/security/transport/auth_filters.h +38 -4
- data/src/core/lib/security/transport/client_auth_filter.cc +88 -353
- data/src/core/lib/security/transport/secure_endpoint.cc +8 -18
- data/src/core/lib/security/transport/secure_endpoint.h +1 -0
- data/src/core/lib/security/transport/security_handshaker.cc +138 -90
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +58 -48
- 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 +82 -0
- data/src/core/{ext/filters/client_channel → lib/service_config}/service_config_call_data.h +17 -31
- data/src/core/{ext/filters/client_channel/service_config.cc → lib/service_config/service_config_impl.cc} +31 -27
- data/src/core/{ext/filters/client_channel/service_config.h → lib/service_config/service_config_impl.h} +22 -23
- data/src/core/{ext/filters/client_channel → lib/service_config}/service_config_parser.cc +35 -31
- data/src/core/lib/service_config/service_config_parser.h +106 -0
- data/src/core/lib/slice/percent_encoding.cc +84 -97
- data/src/core/lib/slice/percent_encoding.h +23 -28
- data/src/core/lib/slice/slice.cc +81 -191
- data/src/core/lib/slice/slice.h +384 -0
- data/src/core/lib/{gpr/tls_pthread.cc → slice/slice_api.cc} +15 -6
- data/src/core/lib/slice/slice_buffer.cc +10 -7
- data/src/core/lib/slice/slice_internal.h +15 -276
- data/src/core/lib/slice/slice_refcount.cc +35 -0
- data/src/core/lib/slice/slice_refcount.h +46 -0
- data/src/core/lib/slice/slice_refcount_base.h +61 -0
- data/src/core/lib/slice/slice_split.cc +100 -0
- data/src/core/lib/slice/slice_split.h +40 -0
- data/src/core/lib/slice/slice_string_helpers.cc +0 -83
- data/src/core/lib/slice/slice_string_helpers.h +0 -11
- 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 +49 -0
- data/src/core/lib/surface/builtins.h +26 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +1 -1
- data/src/core/lib/surface/call.cc +316 -521
- data/src/core/lib/surface/call.h +14 -9
- data/src/core/lib/surface/call_details.cc +2 -2
- data/src/core/lib/surface/call_log_batch.cc +2 -2
- data/src/core/lib/surface/channel.cc +75 -107
- data/src/core/lib/surface/channel.h +17 -24
- data/src/core/lib/surface/channel_init.cc +23 -76
- data/src/core/lib/surface/channel_init.h +52 -44
- data/src/core/lib/surface/channel_ping.cc +2 -3
- data/src/core/lib/surface/channel_stack_type.cc +2 -1
- data/src/core/lib/surface/completion_queue.cc +136 -145
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +3 -3
- data/src/core/lib/surface/completion_queue_factory.h +1 -0
- data/src/core/lib/surface/event_string.cc +1 -0
- data/src/core/lib/surface/init.cc +82 -60
- data/src/core/lib/surface/init.h +10 -4
- data/src/core/lib/surface/lame_client.cc +50 -35
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/metadata_array.cc +2 -2
- data/src/core/lib/surface/server.cc +100 -128
- data/src/core/lib/surface/server.h +58 -53
- data/src/core/lib/surface/validate_metadata.cc +55 -24
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +11 -12
- data/src/core/lib/transport/bdp_estimator.h +2 -2
- data/src/core/lib/transport/byte_stream.cc +9 -5
- data/src/core/lib/transport/byte_stream.h +9 -8
- data/src/core/lib/transport/connectivity_state.cc +9 -6
- data/src/core/lib/transport/connectivity_state.h +2 -2
- data/src/core/lib/transport/error_utils.cc +68 -29
- data/src/core/lib/transport/error_utils.h +13 -6
- data/src/core/lib/transport/metadata_batch.h +1348 -163
- data/src/core/lib/transport/parsed_metadata.cc +37 -0
- data/src/core/lib/transport/parsed_metadata.h +401 -0
- data/src/core/lib/transport/pid_controller.cc +4 -4
- data/src/core/lib/transport/status_conversion.cc +2 -2
- data/src/core/lib/transport/status_conversion.h +1 -1
- data/src/core/lib/transport/timeout_encoding.cc +204 -67
- data/src/core/lib/transport/timeout_encoding.h +40 -10
- data/src/core/lib/transport/transport.cc +15 -35
- data/src/core/lib/transport/transport.h +94 -8
- data/src/core/lib/transport/transport_impl.h +13 -0
- data/src/core/lib/transport/transport_op_string.cc +13 -35
- data/src/core/lib/uri/uri_parser.cc +237 -63
- data/src/core/lib/uri/uri_parser.h +39 -23
- data/src/core/plugin_registry/grpc_plugin_registry.cc +75 -102
- 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 +36 -31
- 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 +38 -19
- 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 +2 -2
- 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 +15 -7
- 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 +2 -4
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +20 -53
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +6 -7
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
- data/src/core/tsi/ssl_transport_security.cc +186 -38
- data/src/core/tsi/ssl_transport_security.h +45 -11
- 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 +26 -0
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +22 -10
- 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 +15 -10
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
- data/src/ruby/ext/grpc/rb_channel_credentials.c +4 -4
- data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
- data/src/ruby/ext/grpc/rb_compression_options.c +5 -4
- data/src/ruby/ext/grpc/rb_event_thread.c +4 -4
- data/src/ruby/ext/grpc/rb_grpc.c +5 -4
- data/src/ruby/ext/grpc/rb_grpc.h +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +36 -34
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +56 -53
- data/src/ruby/ext/grpc/rb_server.c +13 -9
- data/src/ruby/ext/grpc/rb_server_credentials.c +3 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +8 -5
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +3 -1
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +6 -5
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +3 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- 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/spec/client_server_spec.rb +1 -1
- 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/container/fixed_array.h +2 -7
- 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/{base → profiling}/internal/exponential_biased.cc +4 -4
- data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
- 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/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 +696 -662
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +67 -54
- 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_gentm.c +6 -1
- 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 +64 -44
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
- data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/a_strex.c +269 -272
- 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 +19 -9
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +1 -40
- 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 +60 -49
- 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/{asn1_locl.h → internal.h} +91 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +57 -281
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +292 -200
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +10 -10
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -14
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -1
- 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/blake2/blake2.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +8 -0
- 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_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -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/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/digest_extra/digest_extra.c +6 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
- 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 +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +26 -9
- 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 +6 -3
- 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 +23 -3
- 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/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 +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- 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 +6 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +2 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +30 -13
- 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 +14 -9
- 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 +21 -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 +397 -311
- 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 +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -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 +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -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/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 +15 -4
- 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 +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +2 -2
- 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 +9 -16
- 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 +25 -22
- 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 +32 -0
- 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 +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +14 -11
- 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_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 +12 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- 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 +24 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +8 -11
- 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 +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +23 -4
- 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 +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +80 -38
- 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 +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1517 -495
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +5 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +57 -13
- 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/bn.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +10 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +21 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +9 -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 +5 -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 +55 -104
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- 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 +2 -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 +37 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +386 -104
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +41 -48
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1160 -331
- 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 +54 -17
- 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/{t1_lib.cc → extensions.cc} +660 -747
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +90 -43
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +307 -201
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +173 -36
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +474 -156
- 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 -1
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- 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 +56 -110
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +129 -96
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +10 -15
- 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/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 +146 -110
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +241 -132
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/cares/cares/{ares.h → include/ares.h} +73 -1
- data/third_party/cares/cares/{ares_dns.h → include/ares_dns.h} +9 -0
- data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
- data/third_party/cares/cares/{ares_version.h → include/ares_version.h} +3 -3
- data/third_party/cares/cares/{ares__close_sockets.c → src/lib/ares__close_sockets.c} +2 -2
- data/third_party/cares/cares/{ares__get_hostent.c → src/lib/ares__get_hostent.c} +1 -2
- 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/{ares_create_query.c → src/lib/ares_create_query.c} +8 -17
- data/third_party/cares/cares/{ares_data.c → src/lib/ares_data.c} +18 -0
- data/third_party/cares/cares/{ares_data.h → src/lib/ares_data.h} +2 -0
- data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
- data/third_party/cares/cares/{ares_expand_name.c → src/lib/ares_expand_name.c} +114 -23
- data/third_party/cares/cares/{ares_expand_string.c → src/lib/ares_expand_string.c} +2 -5
- data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
- data/third_party/cares/cares/{ares_free_hostent.c → src/lib/ares_free_hostent.c} +6 -4
- 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/{ares_getenv.c → src/lib/ares_getenv.c} +0 -2
- data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
- data/third_party/cares/cares/{ares_gethostbyaddr.c → src/lib/ares_gethostbyaddr.c} +2 -9
- data/third_party/cares/cares/{ares_gethostbyname.c → src/lib/ares_gethostbyname.c} +25 -20
- data/third_party/cares/cares/{ares_getnameinfo.c → src/lib/ares_getnameinfo.c} +4 -10
- data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
- data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
- data/third_party/cares/cares/{ares_init.c → src/lib/ares_init.c} +79 -40
- data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
- data/third_party/cares/cares/{ares_ipv6.h → src/lib/ares_ipv6.h} +7 -0
- data/third_party/cares/cares/{ares_library_init.c → src/lib/ares_library_init.c} +7 -2
- data/third_party/cares/cares/{ares_library_init.h → src/lib/ares_library_init.h} +1 -1
- 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/{ares_parse_mx_reply.c → src/lib/ares_parse_mx_reply.c} +2 -8
- data/third_party/cares/cares/{ares_parse_naptr_reply.c → src/lib/ares_parse_naptr_reply.c} +2 -13
- data/third_party/cares/cares/{ares_parse_ns_reply.c → src/lib/ares_parse_ns_reply.c} +5 -11
- data/third_party/cares/cares/{ares_parse_ptr_reply.c → src/lib/ares_parse_ptr_reply.c} +53 -46
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
- data/third_party/cares/cares/{ares_parse_srv_reply.c → src/lib/ares_parse_srv_reply.c} +2 -13
- data/third_party/cares/cares/{ares_parse_txt_reply.c → src/lib/ares_parse_txt_reply.c} +3 -9
- data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
- data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
- data/third_party/cares/cares/{ares_private.h → src/lib/ares_private.h} +52 -11
- data/third_party/cares/cares/{ares_process.c → src/lib/ares_process.c} +127 -52
- data/third_party/cares/cares/{ares_query.c → src/lib/ares_query.c} +3 -9
- data/third_party/cares/cares/{ares_search.c → src/lib/ares_search.c} +5 -7
- data/third_party/cares/cares/{ares_send.c → src/lib/ares_send.c} +2 -8
- data/third_party/cares/cares/{ares_setup.h → src/lib/ares_setup.h} +4 -1
- data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
- data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
- data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
- data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
- data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
- data/third_party/cares/cares/{ares_strsplit.c → src/lib/ares_strsplit.c} +4 -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/{inet_net_pton.c → src/lib/inet_net_pton.c} +2 -8
- data/third_party/cares/cares/{inet_ntop.c → src/lib/inet_ntop.c} +2 -8
- 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 +758 -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 +2089 -1069
- data/third_party/upb/upb/def.h +341 -256
- data/third_party/upb/upb/def.hpp +160 -161
- data/third_party/upb/upb/encode.c +285 -165
- data/third_party/upb/upb/encode.h +38 -13
- data/third_party/upb/upb/msg.c +276 -102
- data/third_party/upb/upb/msg.h +84 -582
- data/third_party/upb/upb/msg_internal.h +818 -0
- data/third_party/upb/upb/port_def.inc +85 -24
- data/third_party/upb/upb/port_undef.inc +38 -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 +398 -193
- data/third_party/upb/upb/table_internal.h +383 -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 +145 -139
- 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 +679 -542
- metadata +597 -254
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -44
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -84
- 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_registry.cc +0 -197
- data/src/core/ext/filters/client_channel/resolver_registry.h +0 -89
- data/src/core/ext/filters/client_channel/service_config_parser.h +0 -92
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -210
- 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 -125
- 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 -213
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -55
- 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 -130
- 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 -27
- 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 -27
- 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 -27
- 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/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/upb-generated/udpa/type/v1/typed_struct.upb.c +0 -33
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +0 -77
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -72
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -73
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -72
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -80
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -74
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +0 -44
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +0 -35
- data/src/core/lib/avl/avl.cc +0 -306
- 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.h +0 -56
- data/src/core/lib/gpr/tls_stdcpp.h +0 -48
- 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/iomgr_custom.cc +0 -79
- data/src/core/lib/iomgr/iomgr_custom.h +0 -49
- data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
- 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/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/credentials/credentials_metadata.cc +0 -62
- data/src/core/lib/slice/slice_intern.cc +0 -373
- 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/metadata.cc +0 -693
- data/src/core/lib/transport/metadata.h +0 -446
- data/src/core/lib/transport/metadata_batch.cc +0 -419
- 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/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.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 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
- 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_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_soa_reply.c +0 -133
- 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/table.int.h +0 -475
- data/third_party/upb/upb/upb.int.h +0 -29
@@ -18,25 +18,25 @@
|
|
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 <math.h>
|
24
|
+
#include <stdio.h>
|
25
|
+
#include <string.h>
|
26
|
+
|
21
27
|
#include "absl/strings/str_format.h"
|
22
28
|
|
23
29
|
#include <grpc/slice_buffer.h>
|
30
|
+
#include <grpc/status.h>
|
24
31
|
#include <grpc/support/alloc.h>
|
25
32
|
#include <grpc/support/log.h>
|
26
|
-
#include <grpc/support/port_platform.h>
|
27
33
|
#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
34
|
|
34
35
|
#include "src/core/ext/transport/chttp2/transport/context_list.h"
|
35
36
|
#include "src/core/ext/transport/chttp2/transport/frame_data.h"
|
36
37
|
#include "src/core/ext/transport/chttp2/transport/internal.h"
|
37
38
|
#include "src/core/ext/transport/chttp2/transport/varint.h"
|
38
39
|
#include "src/core/lib/channel/channel_args.h"
|
39
|
-
#include "src/core/lib/compression/stream_compression.h"
|
40
40
|
#include "src/core/lib/debug/stats.h"
|
41
41
|
#include "src/core/lib/gpr/env.h"
|
42
42
|
#include "src/core/lib/gpr/string.h"
|
@@ -46,17 +46,24 @@
|
|
46
46
|
#include "src/core/lib/iomgr/iomgr.h"
|
47
47
|
#include "src/core/lib/iomgr/timer.h"
|
48
48
|
#include "src/core/lib/profiling/timers.h"
|
49
|
+
#include "src/core/lib/resource_quota/api.h"
|
50
|
+
#include "src/core/lib/resource_quota/trace.h"
|
49
51
|
#include "src/core/lib/slice/slice_internal.h"
|
50
52
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
51
53
|
#include "src/core/lib/transport/error_utils.h"
|
52
54
|
#include "src/core/lib/transport/http2_errors.h"
|
53
|
-
#include "src/core/lib/transport/static_metadata.h"
|
54
55
|
#include "src/core/lib/transport/status_conversion.h"
|
55
56
|
#include "src/core/lib/transport/timeout_encoding.h"
|
56
57
|
#include "src/core/lib/transport/transport.h"
|
57
58
|
#include "src/core/lib/transport/transport_impl.h"
|
58
59
|
#include "src/core/lib/uri/uri_parser.h"
|
59
60
|
|
61
|
+
GPR_GLOBAL_CONFIG_DEFINE_BOOL(
|
62
|
+
grpc_experimental_disable_flow_control, false,
|
63
|
+
"If set, flow control will be effectively disabled. Max out all values and "
|
64
|
+
"assume the remote peer does the same. Thus we can ignore any flow control "
|
65
|
+
"bookkeeping, error checking, and decision making");
|
66
|
+
|
60
67
|
#define DEFAULT_CONNECTION_WINDOW_TARGET (1024 * 1024)
|
61
68
|
#define MAX_WINDOW 0x7fffffffu
|
62
69
|
#define MAX_WRITE_BUFFER_SIZE (64 * 1024 * 1024)
|
@@ -100,23 +107,23 @@ grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_refcount(false,
|
|
100
107
|
"chttp2_refcount");
|
101
108
|
|
102
109
|
// 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,
|
110
|
+
static void write_action_begin_locked(void* t, grpc_error_handle error);
|
111
|
+
static void write_action(void* t, grpc_error_handle error);
|
112
|
+
static void write_action_end(void* t, grpc_error_handle error);
|
113
|
+
static void write_action_end_locked(void* t, grpc_error_handle error);
|
107
114
|
|
108
|
-
static void read_action(void* t,
|
109
|
-
static void read_action_locked(void* t,
|
115
|
+
static void read_action(void* t, grpc_error_handle error);
|
116
|
+
static void read_action_locked(void* t, grpc_error_handle error);
|
110
117
|
static void continue_read_action_locked(grpc_chttp2_transport* t);
|
111
118
|
|
112
|
-
static void complete_fetch(void* gs,
|
113
|
-
static void complete_fetch_locked(void* gs,
|
119
|
+
static void complete_fetch(void* gs, grpc_error_handle error);
|
120
|
+
static void complete_fetch_locked(void* gs, grpc_error_handle error);
|
114
121
|
// Set a transport level setting, and push it to our peer
|
115
122
|
static void queue_setting_update(grpc_chttp2_transport* t,
|
116
123
|
grpc_chttp2_setting_id id, uint32_t value);
|
117
124
|
|
118
125
|
static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
119
|
-
|
126
|
+
grpc_error_handle error);
|
120
127
|
|
121
128
|
// Start new streams that have been created if we can
|
122
129
|
static void maybe_start_some_streams(grpc_chttp2_transport* t);
|
@@ -126,44 +133,41 @@ static void connectivity_state_set(grpc_chttp2_transport* t,
|
|
126
133
|
const absl::Status& status,
|
127
134
|
const char* reason);
|
128
135
|
|
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);
|
136
|
+
static void benign_reclaimer_locked(void* arg, grpc_error_handle error);
|
137
|
+
static void destructive_reclaimer_locked(void* arg, grpc_error_handle error);
|
133
138
|
|
134
139
|
static void post_benign_reclaimer(grpc_chttp2_transport* t);
|
135
140
|
static void post_destructive_reclaimer(grpc_chttp2_transport* t);
|
136
141
|
|
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
|
142
|
+
static void close_transport_locked(grpc_chttp2_transport* t,
|
143
|
+
grpc_error_handle error);
|
144
|
+
static void end_all_the_calls(grpc_chttp2_transport* t,
|
145
|
+
grpc_error_handle error);
|
146
|
+
|
147
|
+
static void start_bdp_ping(void* tp, grpc_error_handle error);
|
148
|
+
static void finish_bdp_ping(void* tp, grpc_error_handle error);
|
149
|
+
static void start_bdp_ping_locked(void* tp, grpc_error_handle error);
|
150
|
+
static void finish_bdp_ping_locked(void* tp, grpc_error_handle error);
|
151
|
+
static void next_bdp_ping_timer_expired(void* tp, grpc_error_handle error);
|
152
|
+
static void next_bdp_ping_timer_expired_locked(void* tp,
|
153
|
+
grpc_error_handle error);
|
154
|
+
|
155
|
+
static void cancel_pings(grpc_chttp2_transport* t, grpc_error_handle error);
|
148
156
|
static void send_ping_locked(grpc_chttp2_transport* t,
|
149
157
|
grpc_closure* on_initiate, grpc_closure* on_ack);
|
150
|
-
static void retry_initiate_ping_locked(void* tp,
|
158
|
+
static void retry_initiate_ping_locked(void* tp, grpc_error_handle error);
|
151
159
|
|
152
160
|
// 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,
|
161
|
-
|
162
|
-
static void reset_byte_stream(void* arg, grpc_error* error);
|
161
|
+
static void init_keepalive_ping(void* arg, grpc_error_handle error);
|
162
|
+
static void init_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
163
|
+
static void start_keepalive_ping(void* arg, grpc_error_handle error);
|
164
|
+
static void finish_keepalive_ping(void* arg, grpc_error_handle error);
|
165
|
+
static void start_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
166
|
+
static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
167
|
+
static void keepalive_watchdog_fired(void* arg, grpc_error_handle error);
|
168
|
+
static void keepalive_watchdog_fired_locked(void* arg, grpc_error_handle error);
|
163
169
|
|
164
|
-
|
165
|
-
// GRPC_EXPERIMENTAL_DISABLE_FLOW_CONTROL
|
166
|
-
bool g_flow_control_enabled = true;
|
170
|
+
static void reset_byte_stream(void* arg, grpc_error_handle error);
|
167
171
|
|
168
172
|
namespace grpc_core {
|
169
173
|
|
@@ -171,6 +175,7 @@ namespace {
|
|
171
175
|
TestOnlyGlobalHttp2TransportInitCallback test_only_init_callback = nullptr;
|
172
176
|
TestOnlyGlobalHttp2TransportDestructCallback test_only_destruct_callback =
|
173
177
|
nullptr;
|
178
|
+
bool test_only_disable_transient_failure_state_notification = false;
|
174
179
|
} // namespace
|
175
180
|
|
176
181
|
void TestOnlySetGlobalHttp2TransportInitCallback(
|
@@ -183,6 +188,11 @@ void TestOnlySetGlobalHttp2TransportDestructCallback(
|
|
183
188
|
test_only_destruct_callback = callback;
|
184
189
|
}
|
185
190
|
|
191
|
+
void TestOnlyGlobalHttp2TransportDisableTransientFailureStateNotification(
|
192
|
+
bool disable) {
|
193
|
+
test_only_disable_transient_failure_state_notification = disable;
|
194
|
+
}
|
195
|
+
|
186
196
|
} // namespace grpc_core
|
187
197
|
|
188
198
|
//
|
@@ -201,9 +211,8 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
201
211
|
grpc_slice_buffer_destroy_internal(&qbuf);
|
202
212
|
|
203
213
|
grpc_slice_buffer_destroy_internal(&outbuf);
|
204
|
-
grpc_chttp2_hpack_compressor_destroy(&hpack_compressor);
|
205
214
|
|
206
|
-
|
215
|
+
grpc_error_handle error =
|
207
216
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed");
|
208
217
|
// ContextList::Execute follows semantics of a callback function and does not
|
209
218
|
// take a ref on error
|
@@ -212,7 +221,6 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
212
221
|
cl = nullptr;
|
213
222
|
|
214
223
|
grpc_slice_buffer_destroy_internal(&read_buffer);
|
215
|
-
grpc_chttp2_hpack_parser_destroy(&hpack_parser);
|
216
224
|
grpc_chttp2_goaway_parser_destroy(&goaway_parser);
|
217
225
|
|
218
226
|
for (i = 0; i < STREAM_LIST_COUNT; i++) {
|
@@ -278,8 +286,7 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
278
286
|
const int value =
|
279
287
|
grpc_channel_arg_get_integer(&channel_args->args[i], options);
|
280
288
|
if (value >= 0) {
|
281
|
-
|
282
|
-
&t->hpack_compressor, static_cast<uint32_t>(value));
|
289
|
+
t->hpack_compressor.SetMaxUsableSize(value);
|
283
290
|
}
|
284
291
|
} else if (0 == strcmp(channel_args->args[i].key,
|
285
292
|
GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA)) {
|
@@ -294,11 +301,11 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
294
301
|
strcmp(channel_args->args[i].key,
|
295
302
|
GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS)) {
|
296
303
|
t->ping_policy.min_recv_ping_interval_without_data =
|
297
|
-
grpc_channel_arg_get_integer(
|
304
|
+
grpc_core::Duration::Milliseconds(grpc_channel_arg_get_integer(
|
298
305
|
&channel_args->args[i],
|
299
306
|
grpc_integer_options{
|
300
307
|
g_default_min_recv_ping_interval_without_data_ms, 0,
|
301
|
-
INT_MAX});
|
308
|
+
INT_MAX}));
|
302
309
|
} else if (0 == strcmp(channel_args->args[i].key,
|
303
310
|
GRPC_ARG_HTTP2_WRITE_BUFFER_SIZE)) {
|
304
311
|
t->write_buffer_size = static_cast<uint32_t>(grpc_channel_arg_get_integer(
|
@@ -314,7 +321,9 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
314
321
|
? g_default_client_keepalive_time_ms
|
315
322
|
: g_default_server_keepalive_time_ms,
|
316
323
|
1, INT_MAX});
|
317
|
-
t->keepalive_time = value == INT_MAX
|
324
|
+
t->keepalive_time = value == INT_MAX
|
325
|
+
? grpc_core::Duration::Infinity()
|
326
|
+
: grpc_core::Duration::Milliseconds(value);
|
318
327
|
} else if (0 == strcmp(channel_args->args[i].key,
|
319
328
|
GRPC_ARG_KEEPALIVE_TIMEOUT_MS)) {
|
320
329
|
const int value = grpc_channel_arg_get_integer(
|
@@ -323,7 +332,9 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
323
332
|
? g_default_client_keepalive_timeout_ms
|
324
333
|
: g_default_server_keepalive_timeout_ms,
|
325
334
|
0, INT_MAX});
|
326
|
-
t->keepalive_timeout = value == INT_MAX
|
335
|
+
t->keepalive_timeout = value == INT_MAX
|
336
|
+
? grpc_core::Duration::Infinity()
|
337
|
+
: grpc_core::Duration::Milliseconds(value);
|
327
338
|
} else if (0 == strcmp(channel_args->args[i].key,
|
328
339
|
GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS)) {
|
329
340
|
t->keepalive_permit_without_calls = static_cast<uint32_t>(
|
@@ -399,20 +410,24 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
399
410
|
static void init_transport_keepalive_settings(grpc_chttp2_transport* t) {
|
400
411
|
if (t->is_client) {
|
401
412
|
t->keepalive_time = g_default_client_keepalive_time_ms == INT_MAX
|
402
|
-
?
|
403
|
-
:
|
413
|
+
? grpc_core::Duration::Infinity()
|
414
|
+
: grpc_core::Duration::Milliseconds(
|
415
|
+
g_default_client_keepalive_time_ms);
|
404
416
|
t->keepalive_timeout = g_default_client_keepalive_timeout_ms == INT_MAX
|
405
|
-
?
|
406
|
-
:
|
417
|
+
? grpc_core::Duration::Infinity()
|
418
|
+
: grpc_core::Duration::Milliseconds(
|
419
|
+
g_default_client_keepalive_timeout_ms);
|
407
420
|
t->keepalive_permit_without_calls =
|
408
421
|
g_default_client_keepalive_permit_without_calls;
|
409
422
|
} else {
|
410
423
|
t->keepalive_time = g_default_server_keepalive_time_ms == INT_MAX
|
411
|
-
?
|
412
|
-
:
|
424
|
+
? grpc_core::Duration::Infinity()
|
425
|
+
: grpc_core::Duration::Milliseconds(
|
426
|
+
g_default_server_keepalive_time_ms);
|
413
427
|
t->keepalive_timeout = g_default_server_keepalive_timeout_ms == INT_MAX
|
414
|
-
?
|
415
|
-
:
|
428
|
+
? grpc_core::Duration::Infinity()
|
429
|
+
: grpc_core::Duration::Milliseconds(
|
430
|
+
g_default_server_keepalive_timeout_ms);
|
416
431
|
t->keepalive_permit_without_calls =
|
417
432
|
g_default_server_keepalive_permit_without_calls;
|
418
433
|
}
|
@@ -422,11 +437,12 @@ static void configure_transport_ping_policy(grpc_chttp2_transport* t) {
|
|
422
437
|
t->ping_policy.max_pings_without_data = g_default_max_pings_without_data;
|
423
438
|
t->ping_policy.max_ping_strikes = g_default_max_ping_strikes;
|
424
439
|
t->ping_policy.min_recv_ping_interval_without_data =
|
425
|
-
|
440
|
+
grpc_core::Duration::Milliseconds(
|
441
|
+
g_default_min_recv_ping_interval_without_data_ms);
|
426
442
|
}
|
427
443
|
|
428
444
|
static void init_keepalive_pings_if_enabled(grpc_chttp2_transport* t) {
|
429
|
-
if (t->keepalive_time !=
|
445
|
+
if (t->keepalive_time != grpc_core::Duration::Infinity()) {
|
430
446
|
t->keepalive_state = GRPC_CHTTP2_KEEPALIVE_STATE_WAITING;
|
431
447
|
GRPC_CHTTP2_REF_TRANSPORT(t, "init keepalive ping");
|
432
448
|
GRPC_CLOSURE_INIT(&t->init_keepalive_ping_locked, init_keepalive_ping, t,
|
@@ -442,14 +458,18 @@ static void init_keepalive_pings_if_enabled(grpc_chttp2_transport* t) {
|
|
442
458
|
}
|
443
459
|
|
444
460
|
grpc_chttp2_transport::grpc_chttp2_transport(
|
445
|
-
const grpc_channel_args* channel_args, grpc_endpoint* ep, bool is_client
|
446
|
-
grpc_resource_user* resource_user)
|
461
|
+
const grpc_channel_args* channel_args, grpc_endpoint* ep, bool is_client)
|
447
462
|
: refs(1, GRPC_TRACE_FLAG_ENABLED(grpc_trace_chttp2_refcount)
|
448
463
|
? "chttp2_refcount"
|
449
464
|
: nullptr),
|
450
465
|
ep(ep),
|
451
466
|
peer_string(grpc_endpoint_get_peer(ep)),
|
452
|
-
|
467
|
+
memory_owner(grpc_core::ResourceQuotaFromChannelArgs(channel_args)
|
468
|
+
->memory_quota()
|
469
|
+
->CreateMemoryOwner(absl::StrCat(
|
470
|
+
grpc_endpoint_get_peer(ep), ":client_transport"))),
|
471
|
+
self_reservation(
|
472
|
+
memory_owner.MakeReservation(sizeof(grpc_chttp2_transport))),
|
453
473
|
combiner(grpc_combiner_create()),
|
454
474
|
state_tracker(is_client ? "client_transport" : "server_transport",
|
455
475
|
GRPC_CHANNEL_READY),
|
@@ -472,7 +492,6 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
472
492
|
grpc_slice_buffer_add(&outbuf, grpc_slice_from_copied_string(
|
473
493
|
GRPC_CHTTP2_CLIENT_CONNECT_STRING));
|
474
494
|
}
|
475
|
-
grpc_chttp2_hpack_compressor_init(&hpack_compressor);
|
476
495
|
grpc_slice_buffer_init(&qbuf);
|
477
496
|
// copy in initial settings to all setting sets
|
478
497
|
size_t i;
|
@@ -482,7 +501,6 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
482
501
|
settings[j][i] = grpc_chttp2_settings_parameters[i].default_value;
|
483
502
|
}
|
484
503
|
}
|
485
|
-
grpc_chttp2_hpack_parser_init(&hpack_parser);
|
486
504
|
grpc_chttp2_goaway_parser_init(&goaway_parser);
|
487
505
|
|
488
506
|
// configure http2 the way we like it
|
@@ -503,7 +521,9 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
503
521
|
enable_bdp = read_channel_args(this, channel_args, is_client);
|
504
522
|
}
|
505
523
|
|
506
|
-
|
524
|
+
static const bool kEnableFlowControl =
|
525
|
+
!GPR_GLOBAL_CONFIG_GET(grpc_experimental_disable_flow_control);
|
526
|
+
if (kEnableFlowControl) {
|
507
527
|
flow_control.Init<grpc_core::chttp2::TransportFlowControl>(this,
|
508
528
|
enable_bdp);
|
509
529
|
} else {
|
@@ -514,9 +534,9 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
514
534
|
// No pings allowed before receiving a header or data frame.
|
515
535
|
ping_state.pings_before_data_required = 0;
|
516
536
|
ping_state.is_delayed_ping_timer_set = false;
|
517
|
-
ping_state.last_ping_sent_time =
|
537
|
+
ping_state.last_ping_sent_time = grpc_core::Timestamp::InfPast();
|
518
538
|
|
519
|
-
ping_recv_state.last_ping_recv_time =
|
539
|
+
ping_recv_state.last_ping_recv_time = grpc_core::Timestamp::InfPast();
|
520
540
|
ping_recv_state.ping_strikes = 0;
|
521
541
|
|
522
542
|
init_keepalive_pings_if_enabled(this);
|
@@ -534,13 +554,14 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
534
554
|
}
|
535
555
|
}
|
536
556
|
|
537
|
-
static void destroy_transport_locked(void* tp,
|
557
|
+
static void destroy_transport_locked(void* tp, grpc_error_handle /*error*/) {
|
538
558
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
539
559
|
t->destroying = 1;
|
540
560
|
close_transport_locked(
|
541
561
|
t, grpc_error_set_int(
|
542
562
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed"),
|
543
563
|
GRPC_ERROR_INT_OCCURRED_DURING_WRITE, t->write_state));
|
564
|
+
t->memory_owner.Reset();
|
544
565
|
// Must be the last line.
|
545
566
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "destroy");
|
546
567
|
}
|
@@ -552,7 +573,7 @@ static void destroy_transport(grpc_transport* gt) {
|
|
552
573
|
}
|
553
574
|
|
554
575
|
static void close_transport_locked(grpc_chttp2_transport* t,
|
555
|
-
|
576
|
+
grpc_error_handle error) {
|
556
577
|
end_all_the_calls(t, GRPC_ERROR_REF(error));
|
557
578
|
cancel_pings(t, GRPC_ERROR_REF(error));
|
558
579
|
if (t->closed_with_error == GRPC_ERROR_NONE) {
|
@@ -561,7 +582,7 @@ static void close_transport_locked(grpc_chttp2_transport* t,
|
|
561
582
|
GRPC_STATUS_UNAVAILABLE);
|
562
583
|
}
|
563
584
|
if (t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE) {
|
564
|
-
if (t->close_transport_on_writes_finished ==
|
585
|
+
if (t->close_transport_on_writes_finished == GRPC_ERROR_NONE) {
|
565
586
|
t->close_transport_on_writes_finished =
|
566
587
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
567
588
|
"Delayed close due to in-progress write");
|
@@ -646,8 +667,8 @@ grpc_chttp2_stream::grpc_chttp2_stream(grpc_chttp2_transport* t,
|
|
646
667
|
: t(t),
|
647
668
|
refcount(refcount),
|
648
669
|
reffer(this),
|
649
|
-
|
650
|
-
|
670
|
+
initial_metadata_buffer(arena),
|
671
|
+
trailing_metadata_buffer(arena) {
|
651
672
|
if (server_data) {
|
652
673
|
id = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(server_data));
|
653
674
|
*t->accepting_stream = this;
|
@@ -685,13 +706,6 @@ grpc_chttp2_stream::~grpc_chttp2_stream() {
|
|
685
706
|
|
686
707
|
grpc_slice_buffer_destroy_internal(&unprocessed_incoming_frames_buffer);
|
687
708
|
grpc_slice_buffer_destroy_internal(&frame_storage);
|
688
|
-
if (stream_compression_method != GRPC_STREAM_COMPRESSION_IDENTITY_COMPRESS) {
|
689
|
-
grpc_slice_buffer_destroy_internal(&compressed_data_buffer);
|
690
|
-
}
|
691
|
-
if (stream_decompression_method !=
|
692
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_DECOMPRESS) {
|
693
|
-
grpc_slice_buffer_destroy_internal(&decompressed_data_buffer);
|
694
|
-
}
|
695
709
|
|
696
710
|
for (int i = 0; i < STREAM_LIST_COUNT; i++) {
|
697
711
|
if (GPR_UNLIKELY(included[i])) {
|
@@ -711,13 +725,7 @@ grpc_chttp2_stream::~grpc_chttp2_stream() {
|
|
711
725
|
GRPC_ERROR_UNREF(read_closed_error);
|
712
726
|
GRPC_ERROR_UNREF(write_closed_error);
|
713
727
|
GRPC_ERROR_UNREF(byte_stream_error);
|
714
|
-
|
715
728
|
flow_control.Destroy();
|
716
|
-
|
717
|
-
if (t->resource_user != nullptr) {
|
718
|
-
grpc_resource_user_free(t->resource_user, GRPC_RESOURCE_QUOTA_CALL_SIZE);
|
719
|
-
}
|
720
|
-
|
721
729
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "stream");
|
722
730
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, destroy_stream_arg, GRPC_ERROR_NONE);
|
723
731
|
}
|
@@ -731,7 +739,7 @@ static int init_stream(grpc_transport* gt, grpc_stream* gs,
|
|
731
739
|
return 0;
|
732
740
|
}
|
733
741
|
|
734
|
-
static void destroy_stream_locked(void* sp,
|
742
|
+
static void destroy_stream_locked(void* sp, grpc_error_handle /*error*/) {
|
735
743
|
GPR_TIMER_SCOPE("destroy_stream", 0);
|
736
744
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(sp);
|
737
745
|
s->~grpc_chttp2_stream();
|
@@ -742,18 +750,6 @@ static void destroy_stream(grpc_transport* gt, grpc_stream* gs,
|
|
742
750
|
GPR_TIMER_SCOPE("destroy_stream", 0);
|
743
751
|
grpc_chttp2_transport* t = reinterpret_cast<grpc_chttp2_transport*>(gt);
|
744
752
|
grpc_chttp2_stream* s = reinterpret_cast<grpc_chttp2_stream*>(gs);
|
745
|
-
if (s->stream_compression_method !=
|
746
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_COMPRESS &&
|
747
|
-
s->stream_compression_ctx != nullptr) {
|
748
|
-
grpc_stream_compression_context_destroy(s->stream_compression_ctx);
|
749
|
-
s->stream_compression_ctx = nullptr;
|
750
|
-
}
|
751
|
-
if (s->stream_decompression_method !=
|
752
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_DECOMPRESS &&
|
753
|
-
s->stream_decompression_ctx != nullptr) {
|
754
|
-
grpc_stream_compression_context_destroy(s->stream_decompression_ctx);
|
755
|
-
s->stream_decompression_ctx = nullptr;
|
756
|
-
}
|
757
753
|
|
758
754
|
s->destroy_stream_arg = then_schedule_closure;
|
759
755
|
t->combiner->Run(
|
@@ -766,18 +762,6 @@ grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(grpc_chttp2_transport* t,
|
|
766
762
|
if (t->accept_stream_cb == nullptr) {
|
767
763
|
return nullptr;
|
768
764
|
}
|
769
|
-
// Don't accept the stream if memory quota doesn't allow. Note that we should
|
770
|
-
// simply refuse the stream here instead of canceling the stream after it's
|
771
|
-
// accepted since the latter will create the call which costs much memory.
|
772
|
-
if (t->resource_user != nullptr &&
|
773
|
-
!grpc_resource_user_safe_alloc(t->resource_user,
|
774
|
-
GRPC_RESOURCE_QUOTA_CALL_SIZE)) {
|
775
|
-
gpr_log(GPR_ERROR, "Memory exhausted, rejecting the stream.");
|
776
|
-
grpc_chttp2_add_rst_stream_to_next_write(t, id, GRPC_HTTP2_REFUSED_STREAM,
|
777
|
-
nullptr);
|
778
|
-
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_RST_STREAM);
|
779
|
-
return nullptr;
|
780
|
-
}
|
781
765
|
grpc_chttp2_stream* accepting = nullptr;
|
782
766
|
GPR_ASSERT(t->accepting_stream == nullptr);
|
783
767
|
t->accepting_stream = &accepting;
|
@@ -818,9 +802,9 @@ static void set_write_state(grpc_chttp2_transport* t,
|
|
818
802
|
// from peer while we had some pending writes)
|
819
803
|
if (st == GRPC_CHTTP2_WRITE_STATE_IDLE) {
|
820
804
|
grpc_core::ExecCtx::RunList(DEBUG_LOCATION, &t->run_after_write);
|
821
|
-
if (t->close_transport_on_writes_finished !=
|
822
|
-
|
823
|
-
t->close_transport_on_writes_finished =
|
805
|
+
if (t->close_transport_on_writes_finished != GRPC_ERROR_NONE) {
|
806
|
+
grpc_error_handle err = t->close_transport_on_writes_finished;
|
807
|
+
t->close_transport_on_writes_finished = GRPC_ERROR_NONE;
|
824
808
|
close_transport_locked(t, err);
|
825
809
|
}
|
826
810
|
}
|
@@ -951,7 +935,8 @@ static const char* begin_writing_desc(bool partial) {
|
|
951
935
|
}
|
952
936
|
}
|
953
937
|
|
954
|
-
static void write_action_begin_locked(void* gt,
|
938
|
+
static void write_action_begin_locked(void* gt,
|
939
|
+
grpc_error_handle /*error_ignored*/) {
|
955
940
|
GPR_TIMER_SCOPE("write_action_begin_locked", 0);
|
956
941
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
957
942
|
GPR_ASSERT(t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE);
|
@@ -990,7 +975,7 @@ static void write_action_begin_locked(void* gt, grpc_error* /*error_ignored*/) {
|
|
990
975
|
}
|
991
976
|
}
|
992
977
|
|
993
|
-
static void write_action(void* gt,
|
978
|
+
static void write_action(void* gt, grpc_error_handle /*error*/) {
|
994
979
|
GPR_TIMER_SCOPE("write_action", 0);
|
995
980
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
996
981
|
void* cl = t->cl;
|
@@ -1002,7 +987,7 @@ static void write_action(void* gt, grpc_error* /*error*/) {
|
|
1002
987
|
cl);
|
1003
988
|
}
|
1004
989
|
|
1005
|
-
static void write_action_end(void* tp,
|
990
|
+
static void write_action_end(void* tp, grpc_error_handle error) {
|
1006
991
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1007
992
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->write_action_end_locked,
|
1008
993
|
write_action_end_locked, t, nullptr),
|
@@ -1011,7 +996,7 @@ static void write_action_end(void* tp, grpc_error* error) {
|
|
1011
996
|
|
1012
997
|
// Callback from the grpc_endpoint after bytes have been written by calling
|
1013
998
|
// sendmsg
|
1014
|
-
static void write_action_end_locked(void* tp,
|
999
|
+
static void write_action_end_locked(void* tp, grpc_error_handle error) {
|
1015
1000
|
GPR_TIMER_SCOPE("terminate_writing_with_lock", 0);
|
1016
1001
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1017
1002
|
|
@@ -1066,7 +1051,7 @@ static void queue_setting_update(grpc_chttp2_transport* t,
|
|
1066
1051
|
grpc_chttp2_setting_id id, uint32_t value) {
|
1067
1052
|
const grpc_chttp2_setting_parameters* sp =
|
1068
1053
|
&grpc_chttp2_settings_parameters[id];
|
1069
|
-
uint32_t use_value =
|
1054
|
+
uint32_t use_value = grpc_core::Clamp(value, sp->min_value, sp->max_value);
|
1070
1055
|
if (use_value != value) {
|
1071
1056
|
gpr_log(GPR_INFO, "Requested parameter %s clamped from %d to %d", sp->name,
|
1072
1057
|
value, use_value);
|
@@ -1077,10 +1062,23 @@ static void queue_setting_update(grpc_chttp2_transport* t,
|
|
1077
1062
|
}
|
1078
1063
|
}
|
1079
1064
|
|
1065
|
+
// Cancel out streams that haven't yet started if we have received a GOAWAY
|
1066
|
+
static void cancel_unstarted_streams(grpc_chttp2_transport* t,
|
1067
|
+
grpc_error_handle error) {
|
1068
|
+
grpc_chttp2_stream* s;
|
1069
|
+
while (grpc_chttp2_list_pop_waiting_for_concurrency(t, &s)) {
|
1070
|
+
s->trailing_metadata_buffer.Set(
|
1071
|
+
grpc_core::GrpcStreamNetworkState(),
|
1072
|
+
grpc_core::GrpcStreamNetworkState::kNotSentOnWire);
|
1073
|
+
grpc_chttp2_cancel_stream(t, s, GRPC_ERROR_REF(error));
|
1074
|
+
}
|
1075
|
+
GRPC_ERROR_UNREF(error);
|
1076
|
+
}
|
1077
|
+
|
1080
1078
|
void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
1081
1079
|
uint32_t goaway_error,
|
1082
1080
|
uint32_t last_stream_id,
|
1083
|
-
|
1081
|
+
absl::string_view goaway_text) {
|
1084
1082
|
// Discard the error from a previous goaway frame (if any)
|
1085
1083
|
if (t->goaway_error != GRPC_ERROR_NONE) {
|
1086
1084
|
GRPC_ERROR_UNREF(t->goaway_error);
|
@@ -1100,8 +1098,24 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1100
1098
|
// received a GOAWAY with a non NO_ERROR code.
|
1101
1099
|
if (goaway_error != GRPC_HTTP2_NO_ERROR) {
|
1102
1100
|
gpr_log(GPR_INFO, "%s: Got goaway [%d] err=%s", t->peer_string.c_str(),
|
1103
|
-
goaway_error,
|
1104
|
-
}
|
1101
|
+
goaway_error, grpc_error_std_string(t->goaway_error).c_str());
|
1102
|
+
}
|
1103
|
+
cancel_unstarted_streams(t, GRPC_ERROR_REF(t->goaway_error));
|
1104
|
+
// Cancel all unseen streams
|
1105
|
+
grpc_chttp2_stream_map_for_each(
|
1106
|
+
&t->stream_map,
|
1107
|
+
[](void* user_data, uint32_t /* key */, void* stream) {
|
1108
|
+
uint32_t last_stream_id = *(static_cast<uint32_t*>(user_data));
|
1109
|
+
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(stream);
|
1110
|
+
if (s->id > last_stream_id) {
|
1111
|
+
s->trailing_metadata_buffer.Set(
|
1112
|
+
grpc_core::GrpcStreamNetworkState(),
|
1113
|
+
grpc_core::GrpcStreamNetworkState::kNotSeenByServer);
|
1114
|
+
grpc_chttp2_cancel_stream(s->t, s,
|
1115
|
+
GRPC_ERROR_REF(s->t->goaway_error));
|
1116
|
+
}
|
1117
|
+
},
|
1118
|
+
&last_stream_id);
|
1105
1119
|
absl::Status status = grpc_error_to_absl_status(t->goaway_error);
|
1106
1120
|
// When a client receives a GOAWAY with error code ENHANCE_YOUR_CALM and debug
|
1107
1121
|
// data equal to "too_many_pings", it should log the occurrence at a log level
|
@@ -1109,38 +1123,33 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1109
1123
|
// for new connections on that channel.
|
1110
1124
|
if (GPR_UNLIKELY(t->is_client &&
|
1111
1125
|
goaway_error == GRPC_HTTP2_ENHANCE_YOUR_CALM &&
|
1112
|
-
|
1126
|
+
goaway_text == "too_many_pings")) {
|
1113
1127
|
gpr_log(GPR_ERROR,
|
1114
1128
|
"Received a GOAWAY with error code ENHANCE_YOUR_CALM and debug "
|
1115
1129
|
"data equal to \"too_many_pings\"");
|
1116
|
-
|
1117
|
-
|
1118
|
-
INT_MAX / KEEPALIVE_TIME_BACKOFF_MULTIPLIER;
|
1130
|
+
constexpr auto max_keepalive_time = grpc_core::Duration::Milliseconds(
|
1131
|
+
INT_MAX / KEEPALIVE_TIME_BACKOFF_MULTIPLIER);
|
1119
1132
|
t->keepalive_time =
|
1120
|
-
|
1121
|
-
?
|
1122
|
-
:
|
1123
|
-
KEEPALIVE_TIME_BACKOFF_MULTIPLIER);
|
1133
|
+
t->keepalive_time > max_keepalive_time
|
1134
|
+
? grpc_core::Duration::Infinity()
|
1135
|
+
: t->keepalive_time * KEEPALIVE_TIME_BACKOFF_MULTIPLIER;
|
1124
1136
|
status.SetPayload(grpc_core::kKeepaliveThrottlingKey,
|
1125
|
-
absl::Cord(std::to_string(t->keepalive_time)));
|
1137
|
+
absl::Cord(std::to_string(t->keepalive_time.millis())));
|
1126
1138
|
}
|
1127
1139
|
// lie: use transient failure from the transport to indicate goaway has been
|
1128
1140
|
// received.
|
1129
|
-
|
1130
|
-
|
1141
|
+
if (!grpc_core::test_only_disable_transient_failure_state_notification) {
|
1142
|
+
connectivity_state_set(t, GRPC_CHANNEL_TRANSIENT_FAILURE, status,
|
1143
|
+
"got_goaway");
|
1144
|
+
}
|
1131
1145
|
}
|
1132
1146
|
|
1133
1147
|
static void maybe_start_some_streams(grpc_chttp2_transport* t) {
|
1134
1148
|
grpc_chttp2_stream* s;
|
1135
|
-
// cancel out streams that haven't yet started if we have received a
|
1149
|
+
// maybe cancel out streams that haven't yet started if we have received a
|
1150
|
+
// GOAWAY
|
1136
1151
|
if (t->goaway_error != GRPC_ERROR_NONE) {
|
1137
|
-
|
1138
|
-
grpc_chttp2_cancel_stream(
|
1139
|
-
t, s,
|
1140
|
-
grpc_error_set_int(
|
1141
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("GOAWAY received"),
|
1142
|
-
GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE));
|
1143
|
-
}
|
1152
|
+
cancel_unstarted_streams(t, GRPC_ERROR_REF(t->goaway_error));
|
1144
1153
|
return;
|
1145
1154
|
}
|
1146
1155
|
// start streams where we have free grpc_chttp2_stream ids and free
|
@@ -1175,6 +1184,9 @@ static void maybe_start_some_streams(grpc_chttp2_transport* t) {
|
|
1175
1184
|
// cancel out streams that will never be started
|
1176
1185
|
if (t->next_stream_id >= MAX_CLIENT_STREAM_ID) {
|
1177
1186
|
while (grpc_chttp2_list_pop_waiting_for_concurrency(t, &s)) {
|
1187
|
+
s->trailing_metadata_buffer.Set(
|
1188
|
+
grpc_core::GrpcStreamNetworkState(),
|
1189
|
+
grpc_core::GrpcStreamNetworkState::kNotSentOnWire);
|
1178
1190
|
grpc_chttp2_cancel_stream(
|
1179
1191
|
t, s,
|
1180
1192
|
grpc_error_set_int(
|
@@ -1206,7 +1218,8 @@ static void null_then_sched_closure(grpc_closure** closure) {
|
|
1206
1218
|
void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
1207
1219
|
grpc_chttp2_stream* /*s*/,
|
1208
1220
|
grpc_closure** pclosure,
|
1209
|
-
|
1221
|
+
grpc_error_handle error,
|
1222
|
+
const char* desc) {
|
1210
1223
|
grpc_closure* closure = *pclosure;
|
1211
1224
|
*pclosure = nullptr;
|
1212
1225
|
if (closure == nullptr) {
|
@@ -1215,7 +1228,6 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1215
1228
|
}
|
1216
1229
|
closure->next_data.scratch -= CLOSURE_BARRIER_FIRST_REF_BIT;
|
1217
1230
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1218
|
-
const char* errstr = grpc_error_string(error);
|
1219
1231
|
gpr_log(
|
1220
1232
|
GPR_INFO,
|
1221
1233
|
"complete_closure_step: t=%p %p refs=%d flags=0x%04x desc=%s err=%s "
|
@@ -1225,39 +1237,53 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1225
1237
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1226
1238
|
static_cast<int>(closure->next_data.scratch %
|
1227
1239
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1228
|
-
desc,
|
1240
|
+
desc, grpc_error_std_string(error).c_str(),
|
1241
|
+
write_state_name(t->write_state));
|
1229
1242
|
}
|
1230
1243
|
if (error != GRPC_ERROR_NONE) {
|
1231
|
-
|
1232
|
-
|
1244
|
+
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
1245
|
+
grpc_error_handle cl_err =
|
1246
|
+
grpc_core::internal::StatusMoveFromHeapPtr(closure->error_data.error);
|
1247
|
+
#else
|
1248
|
+
grpc_error_handle cl_err =
|
1249
|
+
reinterpret_cast<grpc_error_handle>(closure->error_data.error);
|
1250
|
+
#endif
|
1251
|
+
if (cl_err == GRPC_ERROR_NONE) {
|
1252
|
+
cl_err = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1233
1253
|
"Error in HTTP transport completing operation");
|
1234
|
-
|
1235
|
-
|
1236
|
-
grpc_slice_from_copied_string(t->peer_string.c_str()));
|
1254
|
+
cl_err = grpc_error_set_str(cl_err, GRPC_ERROR_STR_TARGET_ADDRESS,
|
1255
|
+
t->peer_string);
|
1237
1256
|
}
|
1238
|
-
|
1239
|
-
|
1257
|
+
cl_err = grpc_error_add_child(cl_err, error);
|
1258
|
+
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
1259
|
+
closure->error_data.error = grpc_core::internal::StatusAllocHeapPtr(cl_err);
|
1260
|
+
#else
|
1261
|
+
closure->error_data.error = reinterpret_cast<intptr_t>(cl_err);
|
1262
|
+
#endif
|
1240
1263
|
}
|
1241
1264
|
if (closure->next_data.scratch < CLOSURE_BARRIER_FIRST_REF_BIT) {
|
1242
1265
|
if ((t->write_state == GRPC_CHTTP2_WRITE_STATE_IDLE) ||
|
1243
1266
|
!(closure->next_data.scratch & CLOSURE_BARRIER_MAY_COVER_WRITE)) {
|
1244
1267
|
// Using GRPC_CLOSURE_SCHED instead of GRPC_CLOSURE_RUN to avoid running
|
1245
1268
|
// closures earlier than when it is safe to do so.
|
1246
|
-
|
1247
|
-
|
1269
|
+
#ifdef GRPC_ERROR_IS_ABSEIL_STATUS
|
1270
|
+
grpc_error_handle run_error =
|
1271
|
+
grpc_core::internal::StatusMoveFromHeapPtr(closure->error_data.error);
|
1272
|
+
#else
|
1273
|
+
grpc_error_handle run_error =
|
1274
|
+
reinterpret_cast<grpc_error_handle>(closure->error_data.error);
|
1275
|
+
#endif
|
1276
|
+
closure->error_data.error = 0;
|
1277
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, closure, run_error);
|
1248
1278
|
} else {
|
1249
|
-
grpc_closure_list_append(&t->run_after_write, closure
|
1250
|
-
closure->error_data.error);
|
1279
|
+
grpc_closure_list_append(&t->run_after_write, closure);
|
1251
1280
|
}
|
1252
1281
|
}
|
1253
1282
|
}
|
1254
1283
|
|
1255
1284
|
static bool contains_non_ok_status(grpc_metadata_batch* batch) {
|
1256
|
-
|
1257
|
-
|
1258
|
-
GRPC_MDELEM_GRPC_STATUS_0);
|
1259
|
-
}
|
1260
|
-
return false;
|
1285
|
+
return batch->get(grpc_core::GrpcStatusMetadata()).value_or(GRPC_STATUS_OK) !=
|
1286
|
+
GRPC_STATUS_OK;
|
1261
1287
|
}
|
1262
1288
|
|
1263
1289
|
static void maybe_become_writable_due_to_send_msg(grpc_chttp2_transport* t,
|
@@ -1283,7 +1309,6 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1283
1309
|
if (s->fetching_send_message == nullptr) {
|
1284
1310
|
// Stream was cancelled before message fetch completed
|
1285
1311
|
abort(); /* TODO(ctiller): what cleanup here? */
|
1286
|
-
return; /* early out */
|
1287
1312
|
}
|
1288
1313
|
if (s->fetched_send_message_length == s->fetching_send_message->length()) {
|
1289
1314
|
int64_t notify_offset = s->next_message_end_offset;
|
@@ -1314,7 +1339,8 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1314
1339
|
UINT32_MAX, GRPC_CLOSURE_INIT(&s->complete_fetch_locked,
|
1315
1340
|
::complete_fetch, s,
|
1316
1341
|
grpc_schedule_on_exec_ctx))) {
|
1317
|
-
|
1342
|
+
grpc_error_handle error =
|
1343
|
+
s->fetching_send_message->Pull(&s->fetching_slice);
|
1318
1344
|
if (error != GRPC_ERROR_NONE) {
|
1319
1345
|
s->fetching_send_message.reset();
|
1320
1346
|
grpc_chttp2_cancel_stream(t, s, error);
|
@@ -1325,14 +1351,14 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1325
1351
|
}
|
1326
1352
|
}
|
1327
1353
|
|
1328
|
-
static void complete_fetch(void* gs,
|
1354
|
+
static void complete_fetch(void* gs, grpc_error_handle error) {
|
1329
1355
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(gs);
|
1330
1356
|
s->t->combiner->Run(GRPC_CLOSURE_INIT(&s->complete_fetch_locked,
|
1331
1357
|
::complete_fetch_locked, s, nullptr),
|
1332
1358
|
GRPC_ERROR_REF(error));
|
1333
1359
|
}
|
1334
1360
|
|
1335
|
-
static void complete_fetch_locked(void* gs,
|
1361
|
+
static void complete_fetch_locked(void* gs, grpc_error_handle error) {
|
1336
1362
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(gs);
|
1337
1363
|
grpc_chttp2_transport* t = s->t;
|
1338
1364
|
if (error == GRPC_ERROR_NONE) {
|
@@ -1350,19 +1376,15 @@ static void complete_fetch_locked(void* gs, grpc_error* error) {
|
|
1350
1376
|
|
1351
1377
|
static void log_metadata(const grpc_metadata_batch* md_batch, uint32_t id,
|
1352
1378
|
bool is_client, bool is_initial) {
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1358
|
-
is_client ? "CLI" : "SVR", key, value);
|
1359
|
-
gpr_free(key);
|
1360
|
-
gpr_free(value);
|
1361
|
-
}
|
1379
|
+
const std::string prefix = absl::StrCat(
|
1380
|
+
"HTTP:", id, is_initial ? ":HDR" : ":TRL", is_client ? ":CLI:" : ":SVR:");
|
1381
|
+
md_batch->Log([&prefix](absl::string_view key, absl::string_view value) {
|
1382
|
+
gpr_log(GPR_INFO, "%s", absl::StrCat(prefix, key, ": ", value).c_str());
|
1383
|
+
});
|
1362
1384
|
}
|
1363
1385
|
|
1364
1386
|
static void perform_stream_op_locked(void* stream_op,
|
1365
|
-
|
1387
|
+
grpc_error_handle /*error_ignored*/) {
|
1366
1388
|
GPR_TIMER_SCOPE("perform_stream_op_locked", 0);
|
1367
1389
|
|
1368
1390
|
grpc_transport_stream_op_batch* op =
|
@@ -1377,8 +1399,10 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1377
1399
|
s->context = op->payload->context;
|
1378
1400
|
s->traced = op->is_traced;
|
1379
1401
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1380
|
-
gpr_log(GPR_INFO,
|
1381
|
-
|
1402
|
+
gpr_log(GPR_INFO,
|
1403
|
+
"perform_stream_op_locked[s=%p; op=%p]: %s; on_complete = %p", s,
|
1404
|
+
op, grpc_transport_stream_op_batch_string(op).c_str(),
|
1405
|
+
op->on_complete);
|
1382
1406
|
if (op->send_initial_metadata) {
|
1383
1407
|
log_metadata(op_payload->send_initial_metadata.send_initial_metadata,
|
1384
1408
|
s->id, t->is_client, true);
|
@@ -1395,7 +1419,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1395
1419
|
// This batch has send ops. Use final_data as a barrier until enqueue time;
|
1396
1420
|
// the initial counter is dropped at the end of this function.
|
1397
1421
|
on_complete->next_data.scratch = CLOSURE_BARRIER_FIRST_REF_BIT;
|
1398
|
-
on_complete->error_data.error =
|
1422
|
+
on_complete->error_data.error = 0;
|
1399
1423
|
}
|
1400
1424
|
|
1401
1425
|
if (op->cancel_stream) {
|
@@ -1411,27 +1435,14 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1411
1435
|
GPR_ASSERT(s->send_initial_metadata_finished == nullptr);
|
1412
1436
|
on_complete->next_data.scratch |= CLOSURE_BARRIER_MAY_COVER_WRITE;
|
1413
1437
|
|
1414
|
-
// Identify stream compression
|
1415
|
-
if (op_payload->send_initial_metadata.send_initial_metadata->idx.named
|
1416
|
-
.content_encoding == nullptr ||
|
1417
|
-
grpc_stream_compression_method_parse(
|
1418
|
-
GRPC_MDVALUE(
|
1419
|
-
op_payload->send_initial_metadata.send_initial_metadata->idx
|
1420
|
-
.named.content_encoding->md),
|
1421
|
-
true, &s->stream_compression_method) == 0) {
|
1422
|
-
s->stream_compression_method = GRPC_STREAM_COMPRESSION_IDENTITY_COMPRESS;
|
1423
|
-
}
|
1424
|
-
if (s->stream_compression_method !=
|
1425
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_COMPRESS) {
|
1426
|
-
s->uncompressed_data_size = 0;
|
1427
|
-
s->stream_compression_ctx = nullptr;
|
1428
|
-
grpc_slice_buffer_init(&s->compressed_data_buffer);
|
1429
|
-
}
|
1430
1438
|
s->send_initial_metadata_finished = add_closure_barrier(on_complete);
|
1431
1439
|
s->send_initial_metadata =
|
1432
1440
|
op_payload->send_initial_metadata.send_initial_metadata;
|
1433
1441
|
if (t->is_client) {
|
1434
|
-
s->deadline =
|
1442
|
+
s->deadline = std::min(
|
1443
|
+
s->deadline,
|
1444
|
+
s->send_initial_metadata->get(grpc_core::GrpcTimeoutMetadata())
|
1445
|
+
.value_or(grpc_core::Timestamp::InfFuture()));
|
1435
1446
|
}
|
1436
1447
|
if (contains_non_ok_status(s->send_initial_metadata)) {
|
1437
1448
|
s->seen_error = true;
|
@@ -1443,6 +1454,9 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1443
1454
|
grpc_chttp2_list_add_waiting_for_concurrency(t, s);
|
1444
1455
|
maybe_start_some_streams(t);
|
1445
1456
|
} else {
|
1457
|
+
s->trailing_metadata_buffer.Set(
|
1458
|
+
grpc_core::GrpcStreamNetworkState(),
|
1459
|
+
grpc_core::GrpcStreamNetworkState::kNotSentOnWire);
|
1446
1460
|
grpc_chttp2_cancel_stream(
|
1447
1461
|
t, s,
|
1448
1462
|
grpc_error_set_int(
|
@@ -1537,8 +1551,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1537
1551
|
s->sent_trailing_metadata_op = nullptr;
|
1538
1552
|
grpc_chttp2_complete_closure_step(
|
1539
1553
|
t, s, &s->send_trailing_metadata_finished,
|
1540
|
-
|
1541
|
-
op->payload->send_trailing_metadata.send_trailing_metadata)
|
1554
|
+
op->payload->send_trailing_metadata.send_trailing_metadata->empty()
|
1542
1555
|
? GRPC_ERROR_NONE
|
1543
1556
|
: GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1544
1557
|
"Attempt to send trailing metadata after "
|
@@ -1576,6 +1589,8 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1576
1589
|
GPR_ASSERT(!s->pending_byte_stream);
|
1577
1590
|
s->recv_message_ready = op_payload->recv_message.recv_message_ready;
|
1578
1591
|
s->recv_message = op_payload->recv_message.recv_message;
|
1592
|
+
s->call_failed_before_recv_message =
|
1593
|
+
op_payload->recv_message.call_failed_before_recv_message;
|
1579
1594
|
if (s->id != 0) {
|
1580
1595
|
if (!s->read_closed) {
|
1581
1596
|
before = s->frame_storage.length +
|
@@ -1585,8 +1600,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1585
1600
|
grpc_chttp2_maybe_complete_recv_message(t, s);
|
1586
1601
|
if (s->id != 0) {
|
1587
1602
|
if (!s->read_closed && s->frame_storage.length == 0) {
|
1588
|
-
size_t after = s->
|
1589
|
-
s->unprocessed_incoming_frames_buffer_cached_length;
|
1603
|
+
size_t after = s->unprocessed_incoming_frames_buffer_cached_length;
|
1590
1604
|
s->flow_control->IncomingByteStreamUpdate(GRPC_HEADER_SIZE_IN_BYTES,
|
1591
1605
|
before - after);
|
1592
1606
|
grpc_chttp2_act_on_flowctl_action(s->flow_control->MakeAction(), t, s);
|
@@ -1623,19 +1637,19 @@ static void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1623
1637
|
|
1624
1638
|
if (!t->is_client) {
|
1625
1639
|
if (op->send_initial_metadata) {
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1640
|
+
GPR_ASSERT(!op->payload->send_initial_metadata.send_initial_metadata
|
1641
|
+
->get(grpc_core::GrpcTimeoutMetadata())
|
1642
|
+
.has_value());
|
1629
1643
|
}
|
1630
1644
|
if (op->send_trailing_metadata) {
|
1631
|
-
|
1632
|
-
|
1633
|
-
|
1645
|
+
GPR_ASSERT(!op->payload->send_trailing_metadata.send_trailing_metadata
|
1646
|
+
->get(grpc_core::GrpcTimeoutMetadata())
|
1647
|
+
.has_value());
|
1634
1648
|
}
|
1635
1649
|
}
|
1636
1650
|
|
1637
1651
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1638
|
-
gpr_log(GPR_INFO, "perform_stream_op[s=%p]: %s", s,
|
1652
|
+
gpr_log(GPR_INFO, "perform_stream_op[s=%p; op=%p]: %s", s, op,
|
1639
1653
|
grpc_transport_stream_op_batch_string(op).c_str());
|
1640
1654
|
}
|
1641
1655
|
|
@@ -1646,7 +1660,7 @@ static void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1646
1660
|
GRPC_ERROR_NONE);
|
1647
1661
|
}
|
1648
1662
|
|
1649
|
-
static void cancel_pings(grpc_chttp2_transport* t,
|
1663
|
+
static void cancel_pings(grpc_chttp2_transport* t, grpc_error_handle error) {
|
1650
1664
|
// callback remaining pings: they're not allowed to call into the transport,
|
1651
1665
|
// and maybe they hold resources that need to be freed
|
1652
1666
|
grpc_chttp2_ping_queue* pq = &t->ping_queue;
|
@@ -1713,14 +1727,14 @@ static void send_keepalive_ping_locked(grpc_chttp2_transport* t) {
|
|
1713
1727
|
GRPC_ERROR_NONE);
|
1714
1728
|
}
|
1715
1729
|
|
1716
|
-
void grpc_chttp2_retry_initiate_ping(void* tp,
|
1730
|
+
void grpc_chttp2_retry_initiate_ping(void* tp, grpc_error_handle error) {
|
1717
1731
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1718
1732
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->retry_initiate_ping_locked,
|
1719
1733
|
retry_initiate_ping_locked, t, nullptr),
|
1720
1734
|
GRPC_ERROR_REF(error));
|
1721
1735
|
}
|
1722
1736
|
|
1723
|
-
static void retry_initiate_ping_locked(void* tp,
|
1737
|
+
static void retry_initiate_ping_locked(void* tp, grpc_error_handle error) {
|
1724
1738
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1725
1739
|
t->ping_state.is_delayed_ping_timer_set = false;
|
1726
1740
|
if (error == GRPC_ERROR_NONE) {
|
@@ -1743,18 +1757,18 @@ void grpc_chttp2_ack_ping(grpc_chttp2_transport* t, uint64_t id) {
|
|
1743
1757
|
}
|
1744
1758
|
}
|
1745
1759
|
|
1746
|
-
static void send_goaway(grpc_chttp2_transport* t,
|
1760
|
+
static void send_goaway(grpc_chttp2_transport* t, grpc_error_handle error) {
|
1747
1761
|
// We want to log this irrespective of whether http tracing is enabled
|
1748
|
-
gpr_log(
|
1749
|
-
|
1762
|
+
gpr_log(GPR_DEBUG, "%s: Sending goaway err=%s", t->peer_string.c_str(),
|
1763
|
+
grpc_error_std_string(error).c_str());
|
1750
1764
|
t->sent_goaway_state = GRPC_CHTTP2_GOAWAY_SEND_SCHEDULED;
|
1751
1765
|
grpc_http2_error_code http_error;
|
1752
|
-
|
1753
|
-
grpc_error_get_status(error,
|
1754
|
-
&http_error, nullptr);
|
1755
|
-
grpc_chttp2_goaway_append(
|
1756
|
-
|
1757
|
-
|
1766
|
+
std::string message;
|
1767
|
+
grpc_error_get_status(error, grpc_core::Timestamp::InfFuture(), nullptr,
|
1768
|
+
&message, &http_error, nullptr);
|
1769
|
+
grpc_chttp2_goaway_append(
|
1770
|
+
t->last_new_stream_id, static_cast<uint32_t>(http_error),
|
1771
|
+
grpc_slice_from_cpp_string(std::move(message)), &t->qbuf);
|
1758
1772
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_GOAWAY_SENT);
|
1759
1773
|
GRPC_ERROR_UNREF(error);
|
1760
1774
|
}
|
@@ -1776,7 +1790,7 @@ void grpc_chttp2_add_ping_strike(grpc_chttp2_transport* t) {
|
|
1776
1790
|
|
1777
1791
|
void grpc_chttp2_reset_ping_clock(grpc_chttp2_transport* t) {
|
1778
1792
|
if (!t->is_client) {
|
1779
|
-
t->ping_recv_state.last_ping_recv_time =
|
1793
|
+
t->ping_recv_state.last_ping_recv_time = grpc_core::Timestamp::InfPast();
|
1780
1794
|
t->ping_recv_state.ping_strikes = 0;
|
1781
1795
|
}
|
1782
1796
|
t->ping_state.pings_before_data_required =
|
@@ -1784,12 +1798,12 @@ void grpc_chttp2_reset_ping_clock(grpc_chttp2_transport* t) {
|
|
1784
1798
|
}
|
1785
1799
|
|
1786
1800
|
static void perform_transport_op_locked(void* stream_op,
|
1787
|
-
|
1801
|
+
grpc_error_handle /*error_ignored*/) {
|
1788
1802
|
grpc_transport_op* op = static_cast<grpc_transport_op*>(stream_op);
|
1789
1803
|
grpc_chttp2_transport* t =
|
1790
1804
|
static_cast<grpc_chttp2_transport*>(op->handler_private.extra_arg);
|
1791
1805
|
|
1792
|
-
if (op->goaway_error) {
|
1806
|
+
if (op->goaway_error != GRPC_ERROR_NONE) {
|
1793
1807
|
send_goaway(t, op->goaway_error);
|
1794
1808
|
}
|
1795
1809
|
|
@@ -1856,15 +1870,23 @@ void grpc_chttp2_maybe_complete_recv_initial_metadata(
|
|
1856
1870
|
&s->unprocessed_incoming_frames_buffer);
|
1857
1871
|
}
|
1858
1872
|
}
|
1859
|
-
|
1860
|
-
|
1873
|
+
*s->recv_initial_metadata = std::move(s->initial_metadata_buffer);
|
1874
|
+
// If we didn't receive initial metadata from the wire and instead faked a
|
1875
|
+
// status (due to stream cancellations for example), let upper layers know
|
1876
|
+
// that trailing metadata is immediately available.
|
1877
|
+
if (s->trailing_metadata_available != nullptr &&
|
1878
|
+
s->published_metadata[0] != GRPC_METADATA_PUBLISHED_FROM_WIRE &&
|
1879
|
+
s->published_metadata[1] == GRPC_METADATA_SYNTHESIZED_FROM_FAKE) {
|
1880
|
+
*s->trailing_metadata_available = true;
|
1881
|
+
s->trailing_metadata_available = nullptr;
|
1882
|
+
}
|
1861
1883
|
null_then_sched_closure(&s->recv_initial_metadata_ready);
|
1862
1884
|
}
|
1863
1885
|
}
|
1864
1886
|
|
1865
1887
|
void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* /*t*/,
|
1866
1888
|
grpc_chttp2_stream* s) {
|
1867
|
-
|
1889
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
1868
1890
|
if (s->recv_message_ready != nullptr) {
|
1869
1891
|
*s->recv_message = nullptr;
|
1870
1892
|
if (s->final_metadata_requested && s->seen_error) {
|
@@ -1880,48 +1902,10 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* /*t*/,
|
|
1880
1902
|
if (s->unprocessed_incoming_frames_buffer.length == 0) {
|
1881
1903
|
grpc_slice_buffer_swap(&s->unprocessed_incoming_frames_buffer,
|
1882
1904
|
&s->frame_storage);
|
1883
|
-
s->unprocessed_incoming_frames_decompressed = false;
|
1884
|
-
}
|
1885
|
-
if (!s->unprocessed_incoming_frames_decompressed &&
|
1886
|
-
s->stream_decompression_method !=
|
1887
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_DECOMPRESS) {
|
1888
|
-
GPR_ASSERT(s->decompressed_data_buffer.length == 0);
|
1889
|
-
bool end_of_context;
|
1890
|
-
if (!s->stream_decompression_ctx) {
|
1891
|
-
s->stream_decompression_ctx =
|
1892
|
-
grpc_stream_compression_context_create(
|
1893
|
-
s->stream_decompression_method);
|
1894
|
-
}
|
1895
|
-
if (!grpc_stream_decompress(
|
1896
|
-
s->stream_decompression_ctx,
|
1897
|
-
&s->unprocessed_incoming_frames_buffer,
|
1898
|
-
&s->decompressed_data_buffer, nullptr,
|
1899
|
-
GRPC_HEADER_SIZE_IN_BYTES - s->decompressed_header_bytes,
|
1900
|
-
&end_of_context)) {
|
1901
|
-
grpc_slice_buffer_reset_and_unref_internal(&s->frame_storage);
|
1902
|
-
grpc_slice_buffer_reset_and_unref_internal(
|
1903
|
-
&s->unprocessed_incoming_frames_buffer);
|
1904
|
-
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1905
|
-
"Stream decompression error.");
|
1906
|
-
} else {
|
1907
|
-
s->decompressed_header_bytes += s->decompressed_data_buffer.length;
|
1908
|
-
if (s->decompressed_header_bytes == GRPC_HEADER_SIZE_IN_BYTES) {
|
1909
|
-
s->decompressed_header_bytes = 0;
|
1910
|
-
}
|
1911
|
-
error = grpc_deframe_unprocessed_incoming_frames(
|
1912
|
-
&s->data_parser, s, &s->decompressed_data_buffer, nullptr,
|
1913
|
-
s->recv_message);
|
1914
|
-
if (end_of_context) {
|
1915
|
-
grpc_stream_compression_context_destroy(
|
1916
|
-
s->stream_decompression_ctx);
|
1917
|
-
s->stream_decompression_ctx = nullptr;
|
1918
|
-
}
|
1919
|
-
}
|
1920
|
-
} else {
|
1921
|
-
error = grpc_deframe_unprocessed_incoming_frames(
|
1922
|
-
&s->data_parser, s, &s->unprocessed_incoming_frames_buffer,
|
1923
|
-
nullptr, s->recv_message);
|
1924
1905
|
}
|
1906
|
+
error = grpc_deframe_unprocessed_incoming_frames(
|
1907
|
+
&s->data_parser, s, &s->unprocessed_incoming_frames_buffer, nullptr,
|
1908
|
+
s->recv_message);
|
1925
1909
|
if (error != GRPC_ERROR_NONE) {
|
1926
1910
|
s->seen_error = true;
|
1927
1911
|
grpc_slice_buffer_reset_and_unref_internal(&s->frame_storage);
|
@@ -1941,6 +1925,10 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* /*t*/,
|
|
1941
1925
|
null_then_sched_closure(&s->recv_message_ready);
|
1942
1926
|
} else if (s->published_metadata[1] != GRPC_METADATA_NOT_PUBLISHED) {
|
1943
1927
|
*s->recv_message = nullptr;
|
1928
|
+
if (s->call_failed_before_recv_message != nullptr) {
|
1929
|
+
*s->call_failed_before_recv_message =
|
1930
|
+
(s->published_metadata[1] != GRPC_METADATA_PUBLISHED_AT_CLOSE);
|
1931
|
+
}
|
1944
1932
|
null_then_sched_closure(&s->recv_message_ready);
|
1945
1933
|
}
|
1946
1934
|
GRPC_ERROR_UNREF(error);
|
@@ -1965,56 +1953,26 @@ void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
|
|
1965
1953
|
!s->seen_error && s->recv_trailing_metadata_finished != nullptr) {
|
1966
1954
|
// Maybe some SYNC_FLUSH data is left in frame_storage. Consume them and
|
1967
1955
|
// maybe decompress the next 5 bytes in the stream.
|
1968
|
-
|
1969
|
-
|
1970
|
-
|
1971
|
-
|
1972
|
-
|
1973
|
-
|
1974
|
-
if (s->unprocessed_incoming_frames_buffer.length > 0) {
|
1975
|
-
s->unprocessed_incoming_frames_decompressed = true;
|
1976
|
-
pending_data = true;
|
1977
|
-
}
|
1978
|
-
} else {
|
1979
|
-
bool end_of_context;
|
1980
|
-
if (!s->stream_decompression_ctx) {
|
1981
|
-
s->stream_decompression_ctx = grpc_stream_compression_context_create(
|
1982
|
-
s->stream_decompression_method);
|
1983
|
-
}
|
1984
|
-
if (!grpc_stream_decompress(
|
1985
|
-
s->stream_decompression_ctx, &s->frame_storage,
|
1986
|
-
&s->unprocessed_incoming_frames_buffer, nullptr,
|
1987
|
-
GRPC_HEADER_SIZE_IN_BYTES, &end_of_context)) {
|
1988
|
-
grpc_slice_buffer_reset_and_unref_internal(&s->frame_storage);
|
1989
|
-
grpc_slice_buffer_reset_and_unref_internal(
|
1990
|
-
&s->unprocessed_incoming_frames_buffer);
|
1991
|
-
s->seen_error = true;
|
1992
|
-
} else {
|
1993
|
-
if (s->unprocessed_incoming_frames_buffer.length > 0) {
|
1994
|
-
s->unprocessed_incoming_frames_decompressed = true;
|
1995
|
-
pending_data = true;
|
1996
|
-
}
|
1997
|
-
if (end_of_context) {
|
1998
|
-
grpc_stream_compression_context_destroy(
|
1999
|
-
s->stream_decompression_ctx);
|
2000
|
-
s->stream_decompression_ctx = nullptr;
|
2001
|
-
}
|
2002
|
-
}
|
1956
|
+
grpc_slice_buffer_move_first(
|
1957
|
+
&s->frame_storage,
|
1958
|
+
std::min(s->frame_storage.length, size_t(GRPC_HEADER_SIZE_IN_BYTES)),
|
1959
|
+
&s->unprocessed_incoming_frames_buffer);
|
1960
|
+
if (s->unprocessed_incoming_frames_buffer.length > 0) {
|
1961
|
+
pending_data = true;
|
2003
1962
|
}
|
2004
1963
|
}
|
2005
1964
|
if (s->read_closed && s->frame_storage.length == 0 && !pending_data &&
|
2006
1965
|
s->recv_trailing_metadata_finished != nullptr) {
|
2007
1966
|
grpc_transport_move_stats(&s->stats, s->collecting_stats);
|
2008
1967
|
s->collecting_stats = nullptr;
|
2009
|
-
|
2010
|
-
s->recv_trailing_metadata);
|
1968
|
+
*s->recv_trailing_metadata = std::move(s->trailing_metadata_buffer);
|
2011
1969
|
null_then_sched_closure(&s->recv_trailing_metadata_finished);
|
2012
1970
|
}
|
2013
1971
|
}
|
2014
1972
|
}
|
2015
1973
|
|
2016
1974
|
static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
2017
|
-
|
1975
|
+
grpc_error_handle error) {
|
2018
1976
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(
|
2019
1977
|
grpc_chttp2_stream_map_delete(&t->stream_map, id));
|
2020
1978
|
GPR_DEBUG_ASSERT(s);
|
@@ -2057,7 +2015,7 @@ static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
|
2057
2015
|
}
|
2058
2016
|
|
2059
2017
|
void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2060
|
-
|
2018
|
+
grpc_error_handle due_to_error) {
|
2061
2019
|
if (!t->is_client && !s->sent_trailing_metadata &&
|
2062
2020
|
grpc_error_has_clear_grpc_status(due_to_error)) {
|
2063
2021
|
close_from_api(t, s, due_to_error);
|
@@ -2081,10 +2039,11 @@ void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2081
2039
|
}
|
2082
2040
|
|
2083
2041
|
void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2084
|
-
|
2042
|
+
grpc_error_handle error) {
|
2085
2043
|
grpc_status_code status;
|
2086
|
-
|
2087
|
-
grpc_error_get_status(error, s->deadline, &status, &
|
2044
|
+
std::string message;
|
2045
|
+
grpc_error_get_status(error, s->deadline, &status, &message, nullptr,
|
2046
|
+
nullptr);
|
2088
2047
|
if (status != GRPC_STATUS_OK) {
|
2089
2048
|
s->seen_error = true;
|
2090
2049
|
}
|
@@ -2096,20 +2055,11 @@ void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2096
2055
|
// about the metadata yet
|
2097
2056
|
if (s->published_metadata[1] == GRPC_METADATA_NOT_PUBLISHED ||
|
2098
2057
|
s->recv_trailing_metadata_finished != nullptr) {
|
2099
|
-
|
2100
|
-
|
2101
|
-
|
2102
|
-
|
2103
|
-
|
2104
|
-
grpc_mdelem_from_slices(
|
2105
|
-
GRPC_MDSTR_GRPC_STATUS,
|
2106
|
-
grpc_core::UnmanagedMemorySlice(status_string))));
|
2107
|
-
if (!GRPC_SLICE_IS_EMPTY(slice)) {
|
2108
|
-
GRPC_LOG_IF_ERROR(
|
2109
|
-
"add_status_message",
|
2110
|
-
grpc_chttp2_incoming_metadata_buffer_replace_or_add(
|
2111
|
-
&s->metadata_buffer[1],
|
2112
|
-
grpc_mdelem_create(GRPC_MDSTR_GRPC_MESSAGE, slice, nullptr)));
|
2058
|
+
s->trailing_metadata_buffer.Set(grpc_core::GrpcStatusMetadata(), status);
|
2059
|
+
if (!message.empty()) {
|
2060
|
+
s->trailing_metadata_buffer.Set(
|
2061
|
+
grpc_core::GrpcMessageMetadata(),
|
2062
|
+
grpc_core::Slice::FromCopiedBuffer(message));
|
2113
2063
|
}
|
2114
2064
|
s->published_metadata[1] = GRPC_METADATA_SYNTHESIZED_FROM_FAKE;
|
2115
2065
|
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
|
@@ -2118,7 +2068,8 @@ void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2118
2068
|
GRPC_ERROR_UNREF(error);
|
2119
2069
|
}
|
2120
2070
|
|
2121
|
-
static void add_error(
|
2071
|
+
static void add_error(grpc_error_handle error, grpc_error_handle* refs,
|
2072
|
+
size_t* nrefs) {
|
2122
2073
|
if (error == GRPC_ERROR_NONE) return;
|
2123
2074
|
for (size_t i = 0; i < *nrefs; i++) {
|
2124
2075
|
if (error == refs[i]) {
|
@@ -2129,14 +2080,15 @@ static void add_error(grpc_error* error, grpc_error** refs, size_t* nrefs) {
|
|
2129
2080
|
++*nrefs;
|
2130
2081
|
}
|
2131
2082
|
|
2132
|
-
static
|
2133
|
-
|
2134
|
-
|
2083
|
+
static grpc_error_handle removal_error(grpc_error_handle extra_error,
|
2084
|
+
grpc_chttp2_stream* s,
|
2085
|
+
const char* main_error_msg) {
|
2086
|
+
grpc_error_handle refs[3];
|
2135
2087
|
size_t nrefs = 0;
|
2136
2088
|
add_error(s->read_closed_error, refs, &nrefs);
|
2137
2089
|
add_error(s->write_closed_error, refs, &nrefs);
|
2138
2090
|
add_error(extra_error, refs, &nrefs);
|
2139
|
-
|
2091
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
2140
2092
|
if (nrefs > 0) {
|
2141
2093
|
error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(main_error_msg,
|
2142
2094
|
refs, nrefs);
|
@@ -2146,7 +2098,8 @@ static grpc_error* removal_error(grpc_error* extra_error, grpc_chttp2_stream* s,
|
|
2146
2098
|
}
|
2147
2099
|
|
2148
2100
|
static void flush_write_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2149
|
-
grpc_chttp2_write_cb** list,
|
2101
|
+
grpc_chttp2_write_cb** list,
|
2102
|
+
grpc_error_handle error) {
|
2150
2103
|
while (*list) {
|
2151
2104
|
grpc_chttp2_write_cb* cb = *list;
|
2152
2105
|
*list = cb->next;
|
@@ -2159,7 +2112,8 @@ static void flush_write_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2159
2112
|
}
|
2160
2113
|
|
2161
2114
|
void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
2162
|
-
grpc_chttp2_stream* s,
|
2115
|
+
grpc_chttp2_stream* s,
|
2116
|
+
grpc_error_handle error) {
|
2163
2117
|
error =
|
2164
2118
|
removal_error(error, s, "Pending writes failed due to stream closure");
|
2165
2119
|
s->send_initial_metadata = nullptr;
|
@@ -2183,10 +2137,10 @@ void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
|
2183
2137
|
|
2184
2138
|
void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
2185
2139
|
grpc_chttp2_stream* s, int close_reads,
|
2186
|
-
int close_writes,
|
2140
|
+
int close_writes, grpc_error_handle error) {
|
2187
2141
|
if (s->read_closed && s->write_closed) {
|
2188
2142
|
// already closed, but we should still fake the status if needed.
|
2189
|
-
|
2143
|
+
grpc_error_handle overall_error = removal_error(error, s, "Stream removed");
|
2190
2144
|
if (overall_error != GRPC_ERROR_NONE) {
|
2191
2145
|
grpc_chttp2_fake_status(t, s, overall_error);
|
2192
2146
|
}
|
@@ -2207,7 +2161,7 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2207
2161
|
}
|
2208
2162
|
if (s->read_closed && s->write_closed) {
|
2209
2163
|
became_closed = true;
|
2210
|
-
|
2164
|
+
grpc_error_handle overall_error =
|
2211
2165
|
removal_error(GRPC_ERROR_REF(error), s, "Stream removed");
|
2212
2166
|
if (s->id != 0) {
|
2213
2167
|
remove_stream(t, s->id, GRPC_ERROR_REF(overall_error));
|
@@ -2236,7 +2190,7 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2236
2190
|
}
|
2237
2191
|
|
2238
2192
|
static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2239
|
-
|
2193
|
+
grpc_error_handle error) {
|
2240
2194
|
grpc_slice hdr;
|
2241
2195
|
grpc_slice status_hdr;
|
2242
2196
|
grpc_slice http_status_hdr;
|
@@ -2245,8 +2199,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2245
2199
|
uint8_t* p;
|
2246
2200
|
uint32_t len = 0;
|
2247
2201
|
grpc_status_code grpc_status;
|
2248
|
-
|
2249
|
-
grpc_error_get_status(error, s->deadline, &grpc_status, &
|
2202
|
+
std::string message;
|
2203
|
+
grpc_error_get_status(error, s->deadline, &grpc_status, &message, nullptr,
|
2250
2204
|
nullptr);
|
2251
2205
|
|
2252
2206
|
GPR_ASSERT(grpc_status >= 0 && (int)grpc_status < 100);
|
@@ -2339,10 +2293,10 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2339
2293
|
GPR_ASSERT(p == GRPC_SLICE_END_PTR(status_hdr));
|
2340
2294
|
len += static_cast<uint32_t> GRPC_SLICE_LENGTH(status_hdr);
|
2341
2295
|
|
2342
|
-
size_t msg_len =
|
2296
|
+
size_t msg_len = message.length();
|
2343
2297
|
GPR_ASSERT(msg_len <= UINT32_MAX);
|
2344
|
-
|
2345
|
-
message_pfx = GRPC_SLICE_MALLOC(14 +
|
2298
|
+
grpc_core::VarintWriter<1> msg_len_writer(msg_len);
|
2299
|
+
message_pfx = GRPC_SLICE_MALLOC(14 + msg_len_writer.length());
|
2346
2300
|
p = GRPC_SLICE_START_PTR(message_pfx);
|
2347
2301
|
*p++ = 0x00; /* literal header, not indexed */
|
2348
2302
|
*p++ = 12; /* len(grpc-message) */
|
@@ -2358,8 +2312,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2358
2312
|
*p++ = 'a';
|
2359
2313
|
*p++ = 'g';
|
2360
2314
|
*p++ = 'e';
|
2361
|
-
|
2362
|
-
p +=
|
2315
|
+
msg_len_writer.Write(0, p);
|
2316
|
+
p += msg_len_writer.length();
|
2363
2317
|
GPR_ASSERT(p == GRPC_SLICE_END_PTR(message_pfx));
|
2364
2318
|
len += static_cast<uint32_t> GRPC_SLICE_LENGTH(message_pfx);
|
2365
2319
|
len += static_cast<uint32_t>(msg_len);
|
@@ -2384,7 +2338,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2384
2338
|
}
|
2385
2339
|
grpc_slice_buffer_add(&t->qbuf, status_hdr);
|
2386
2340
|
grpc_slice_buffer_add(&t->qbuf, message_pfx);
|
2387
|
-
grpc_slice_buffer_add(&t->qbuf,
|
2341
|
+
grpc_slice_buffer_add(&t->qbuf,
|
2342
|
+
grpc_slice_from_cpp_string(std::move(message)));
|
2388
2343
|
grpc_chttp2_reset_ping_clock(t);
|
2389
2344
|
grpc_chttp2_add_rst_stream_to_next_write(t, s->id, GRPC_HTTP2_NO_ERROR,
|
2390
2345
|
&s->stats.outgoing);
|
@@ -2394,7 +2349,7 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2394
2349
|
}
|
2395
2350
|
|
2396
2351
|
struct cancel_stream_cb_args {
|
2397
|
-
|
2352
|
+
grpc_error_handle error;
|
2398
2353
|
grpc_chttp2_transport* t;
|
2399
2354
|
};
|
2400
2355
|
|
@@ -2404,7 +2359,8 @@ static void cancel_stream_cb(void* user_data, uint32_t /*key*/, void* stream) {
|
|
2404
2359
|
grpc_chttp2_cancel_stream(args->t, s, GRPC_ERROR_REF(args->error));
|
2405
2360
|
}
|
2406
2361
|
|
2407
|
-
static void end_all_the_calls(grpc_chttp2_transport* t,
|
2362
|
+
static void end_all_the_calls(grpc_chttp2_transport* t,
|
2363
|
+
grpc_error_handle error) {
|
2408
2364
|
intptr_t http2_error;
|
2409
2365
|
// If there is no explicit grpc or HTTP/2 error, set to UNAVAILABLE on server.
|
2410
2366
|
if (!t->is_client && !grpc_error_has_clear_grpc_status(error) &&
|
@@ -2412,6 +2368,7 @@ static void end_all_the_calls(grpc_chttp2_transport* t, grpc_error* error) {
|
|
2412
2368
|
error = grpc_error_set_int(error, GRPC_ERROR_INT_GRPC_STATUS,
|
2413
2369
|
GRPC_STATUS_UNAVAILABLE);
|
2414
2370
|
}
|
2371
|
+
cancel_unstarted_streams(t, GRPC_ERROR_REF(error));
|
2415
2372
|
cancel_stream_cb_args args = {error, t};
|
2416
2373
|
grpc_chttp2_stream_map_for_each(&t->stream_map, cancel_stream_cb, &args);
|
2417
2374
|
GRPC_ERROR_UNREF(error);
|
@@ -2430,7 +2387,7 @@ static void WithUrgency(grpc_chttp2_transport* t,
|
|
2430
2387
|
break;
|
2431
2388
|
case grpc_core::chttp2::FlowControlAction::Urgency::UPDATE_IMMEDIATELY:
|
2432
2389
|
grpc_chttp2_initiate_write(t, reason);
|
2433
|
-
|
2390
|
+
ABSL_FALLTHROUGH_INTENDED;
|
2434
2391
|
case grpc_core::chttp2::FlowControlAction::Urgency::QUEUE_UPDATE:
|
2435
2392
|
action();
|
2436
2393
|
break;
|
@@ -2458,15 +2415,15 @@ void grpc_chttp2_act_on_flowctl_action(
|
|
2458
2415
|
});
|
2459
2416
|
}
|
2460
2417
|
|
2461
|
-
static
|
2418
|
+
static grpc_error_handle try_http_parsing(grpc_chttp2_transport* t) {
|
2462
2419
|
grpc_http_parser parser;
|
2463
2420
|
size_t i = 0;
|
2464
|
-
|
2421
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
2465
2422
|
grpc_http_response response;
|
2466
2423
|
|
2467
2424
|
grpc_http_parser_init(&parser, GRPC_HTTP_RESPONSE, &response);
|
2468
2425
|
|
2469
|
-
|
2426
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
2470
2427
|
for (; i < t->read_buffer.count && parse_error == GRPC_ERROR_NONE; i++) {
|
2471
2428
|
parse_error =
|
2472
2429
|
grpc_http_parser_parse(&parser, t->read_buffer.slices[i], nullptr);
|
@@ -2487,34 +2444,34 @@ static grpc_error* try_http_parsing(grpc_chttp2_transport* t) {
|
|
2487
2444
|
return error;
|
2488
2445
|
}
|
2489
2446
|
|
2490
|
-
static void read_action(void* tp,
|
2447
|
+
static void read_action(void* tp, grpc_error_handle error) {
|
2491
2448
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2492
2449
|
t->combiner->Run(
|
2493
2450
|
GRPC_CLOSURE_INIT(&t->read_action_locked, read_action_locked, t, nullptr),
|
2494
2451
|
GRPC_ERROR_REF(error));
|
2495
2452
|
}
|
2496
2453
|
|
2497
|
-
static void read_action_locked(void* tp,
|
2454
|
+
static void read_action_locked(void* tp, grpc_error_handle error) {
|
2498
2455
|
GPR_TIMER_SCOPE("reading_action_locked", 0);
|
2499
2456
|
|
2500
2457
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2501
2458
|
|
2502
|
-
GRPC_ERROR_REF(error);
|
2459
|
+
(void)GRPC_ERROR_REF(error);
|
2503
2460
|
|
2504
|
-
|
2461
|
+
grpc_error_handle err = error;
|
2505
2462
|
if (err != GRPC_ERROR_NONE) {
|
2506
2463
|
err = grpc_error_set_int(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
2507
2464
|
"Endpoint read failed", &err, 1),
|
2508
2465
|
GRPC_ERROR_INT_OCCURRED_DURING_WRITE,
|
2509
2466
|
t->write_state);
|
2510
2467
|
}
|
2511
|
-
|
2468
|
+
std::swap(err, error);
|
2512
2469
|
GRPC_ERROR_UNREF(err);
|
2513
2470
|
if (t->closed_with_error == GRPC_ERROR_NONE) {
|
2514
2471
|
GPR_TIMER_SCOPE("reading_action.parse", 0);
|
2515
2472
|
size_t i = 0;
|
2516
|
-
|
2517
|
-
|
2473
|
+
grpc_error_handle errors[3] = {GRPC_ERROR_REF(error), GRPC_ERROR_NONE,
|
2474
|
+
GRPC_ERROR_NONE};
|
2518
2475
|
for (; i < t->read_buffer.count && errors[1] == GRPC_ERROR_NONE; i++) {
|
2519
2476
|
errors[1] = grpc_chttp2_perform_read(t, t->read_buffer.slices[i]);
|
2520
2477
|
}
|
@@ -2605,18 +2562,18 @@ void schedule_bdp_ping_locked(grpc_chttp2_transport* t) {
|
|
2605
2562
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_BDP_PING);
|
2606
2563
|
}
|
2607
2564
|
|
2608
|
-
static void start_bdp_ping(void* tp,
|
2565
|
+
static void start_bdp_ping(void* tp, grpc_error_handle error) {
|
2609
2566
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2610
2567
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_bdp_ping_locked,
|
2611
2568
|
start_bdp_ping_locked, t, nullptr),
|
2612
2569
|
GRPC_ERROR_REF(error));
|
2613
2570
|
}
|
2614
2571
|
|
2615
|
-
static void start_bdp_ping_locked(void* tp,
|
2572
|
+
static void start_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2616
2573
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2617
2574
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2618
2575
|
gpr_log(GPR_INFO, "%s: Start BDP ping err=%s", t->peer_string.c_str(),
|
2619
|
-
|
2576
|
+
grpc_error_std_string(error).c_str());
|
2620
2577
|
}
|
2621
2578
|
if (error != GRPC_ERROR_NONE || t->closed_with_error != GRPC_ERROR_NONE) {
|
2622
2579
|
return;
|
@@ -2629,18 +2586,18 @@ static void start_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2629
2586
|
t->bdp_ping_started = true;
|
2630
2587
|
}
|
2631
2588
|
|
2632
|
-
static void finish_bdp_ping(void* tp,
|
2589
|
+
static void finish_bdp_ping(void* tp, grpc_error_handle error) {
|
2633
2590
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2634
2591
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_bdp_ping_locked,
|
2635
2592
|
finish_bdp_ping_locked, t, nullptr),
|
2636
2593
|
GRPC_ERROR_REF(error));
|
2637
2594
|
}
|
2638
2595
|
|
2639
|
-
static void finish_bdp_ping_locked(void* tp,
|
2596
|
+
static void finish_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2640
2597
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2641
2598
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2642
2599
|
gpr_log(GPR_INFO, "%s: Complete BDP ping err=%s", t->peer_string.c_str(),
|
2643
|
-
|
2600
|
+
grpc_error_std_string(error).c_str());
|
2644
2601
|
}
|
2645
2602
|
if (error != GRPC_ERROR_NONE || t->closed_with_error != GRPC_ERROR_NONE) {
|
2646
2603
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "bdp_ping");
|
@@ -2655,7 +2612,8 @@ static void finish_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2655
2612
|
return;
|
2656
2613
|
}
|
2657
2614
|
t->bdp_ping_started = false;
|
2658
|
-
|
2615
|
+
grpc_core::Timestamp next_ping =
|
2616
|
+
t->flow_control->bdp_estimator()->CompletePing();
|
2659
2617
|
grpc_chttp2_act_on_flowctl_action(t->flow_control->PeriodicUpdate(), t,
|
2660
2618
|
nullptr);
|
2661
2619
|
GPR_ASSERT(!t->have_next_bdp_ping_timer);
|
@@ -2666,7 +2624,7 @@ static void finish_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2666
2624
|
&t->next_bdp_ping_timer_expired_locked);
|
2667
2625
|
}
|
2668
2626
|
|
2669
|
-
static void next_bdp_ping_timer_expired(void* tp,
|
2627
|
+
static void next_bdp_ping_timer_expired(void* tp, grpc_error_handle error) {
|
2670
2628
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2671
2629
|
t->combiner->Run(
|
2672
2630
|
GRPC_CLOSURE_INIT(&t->next_bdp_ping_timer_expired_locked,
|
@@ -2674,7 +2632,8 @@ static void next_bdp_ping_timer_expired(void* tp, grpc_error* error) {
|
|
2674
2632
|
GRPC_ERROR_REF(error));
|
2675
2633
|
}
|
2676
2634
|
|
2677
|
-
static void next_bdp_ping_timer_expired_locked(void* tp,
|
2635
|
+
static void next_bdp_ping_timer_expired_locked(void* tp,
|
2636
|
+
grpc_error_handle error) {
|
2678
2637
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2679
2638
|
GPR_ASSERT(t->have_next_bdp_ping_timer);
|
2680
2639
|
t->have_next_bdp_ping_timer = false;
|
@@ -2750,14 +2709,14 @@ void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
|
|
2750
2709
|
}
|
2751
2710
|
}
|
2752
2711
|
|
2753
|
-
static void init_keepalive_ping(void* arg,
|
2712
|
+
static void init_keepalive_ping(void* arg, grpc_error_handle error) {
|
2754
2713
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2755
2714
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->init_keepalive_ping_locked,
|
2756
2715
|
init_keepalive_ping_locked, t, nullptr),
|
2757
2716
|
GRPC_ERROR_REF(error));
|
2758
2717
|
}
|
2759
2718
|
|
2760
|
-
static void init_keepalive_ping_locked(void* arg,
|
2719
|
+
static void init_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2761
2720
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2762
2721
|
GPR_ASSERT(t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_WAITING);
|
2763
2722
|
if (t->destroying || t->closed_with_error != GRPC_ERROR_NONE) {
|
@@ -2790,14 +2749,14 @@ static void init_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2790
2749
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "init keepalive ping");
|
2791
2750
|
}
|
2792
2751
|
|
2793
|
-
static void start_keepalive_ping(void* arg,
|
2752
|
+
static void start_keepalive_ping(void* arg, grpc_error_handle error) {
|
2794
2753
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2795
2754
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_keepalive_ping_locked,
|
2796
2755
|
start_keepalive_ping_locked, t, nullptr),
|
2797
2756
|
GRPC_ERROR_REF(error));
|
2798
2757
|
}
|
2799
2758
|
|
2800
|
-
static void start_keepalive_ping_locked(void* arg,
|
2759
|
+
static void start_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2801
2760
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2802
2761
|
if (error != GRPC_ERROR_NONE) {
|
2803
2762
|
return;
|
@@ -2818,14 +2777,14 @@ static void start_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2818
2777
|
t->keepalive_ping_started = true;
|
2819
2778
|
}
|
2820
2779
|
|
2821
|
-
static void finish_keepalive_ping(void* arg,
|
2780
|
+
static void finish_keepalive_ping(void* arg, grpc_error_handle error) {
|
2822
2781
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2823
2782
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_keepalive_ping_locked,
|
2824
2783
|
finish_keepalive_ping_locked, t, nullptr),
|
2825
2784
|
GRPC_ERROR_REF(error));
|
2826
2785
|
}
|
2827
2786
|
|
2828
|
-
static void finish_keepalive_ping_locked(void* arg,
|
2787
|
+
static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2829
2788
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2830
2789
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2831
2790
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2856,7 +2815,7 @@ static void finish_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2856
2815
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "keepalive ping end");
|
2857
2816
|
}
|
2858
2817
|
|
2859
|
-
static void keepalive_watchdog_fired(void* arg,
|
2818
|
+
static void keepalive_watchdog_fired(void* arg, grpc_error_handle error) {
|
2860
2819
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2861
2820
|
t->combiner->Run(
|
2862
2821
|
GRPC_CLOSURE_INIT(&t->keepalive_watchdog_fired_locked,
|
@@ -2864,7 +2823,8 @@ static void keepalive_watchdog_fired(void* arg, grpc_error* error) {
|
|
2864
2823
|
GRPC_ERROR_REF(error));
|
2865
2824
|
}
|
2866
2825
|
|
2867
|
-
static void keepalive_watchdog_fired_locked(void* arg,
|
2826
|
+
static void keepalive_watchdog_fired_locked(void* arg,
|
2827
|
+
grpc_error_handle error) {
|
2868
2828
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2869
2829
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2870
2830
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2921,7 +2881,7 @@ static void set_pollset_set(grpc_transport* gt, grpc_stream* /*gs*/,
|
|
2921
2881
|
// BYTE STREAM
|
2922
2882
|
//
|
2923
2883
|
|
2924
|
-
static void reset_byte_stream(void* arg,
|
2884
|
+
static void reset_byte_stream(void* arg, grpc_error_handle error) {
|
2925
2885
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(arg);
|
2926
2886
|
s->pending_byte_stream = false;
|
2927
2887
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2952,8 +2912,8 @@ Chttp2IncomingByteStream::Chttp2IncomingByteStream(
|
|
2952
2912
|
stream->byte_stream_error = GRPC_ERROR_NONE;
|
2953
2913
|
}
|
2954
2914
|
|
2955
|
-
void Chttp2IncomingByteStream::OrphanLocked(
|
2956
|
-
|
2915
|
+
void Chttp2IncomingByteStream::OrphanLocked(
|
2916
|
+
void* arg, grpc_error_handle /*error_ignored*/) {
|
2957
2917
|
Chttp2IncomingByteStream* bs = static_cast<Chttp2IncomingByteStream*>(arg);
|
2958
2918
|
grpc_chttp2_stream* s = bs->stream_;
|
2959
2919
|
grpc_chttp2_transport* t = s->t;
|
@@ -2972,7 +2932,7 @@ void Chttp2IncomingByteStream::Orphan() {
|
|
2972
2932
|
}
|
2973
2933
|
|
2974
2934
|
void Chttp2IncomingByteStream::NextLocked(void* arg,
|
2975
|
-
|
2935
|
+
grpc_error_handle /*error_ignored*/) {
|
2976
2936
|
Chttp2IncomingByteStream* bs = static_cast<Chttp2IncomingByteStream*>(arg);
|
2977
2937
|
grpc_chttp2_transport* t = bs->transport_;
|
2978
2938
|
grpc_chttp2_stream* s = bs->stream_;
|
@@ -2986,12 +2946,10 @@ void Chttp2IncomingByteStream::NextLocked(void* arg,
|
|
2986
2946
|
if (s->frame_storage.length > 0) {
|
2987
2947
|
grpc_slice_buffer_swap(&s->frame_storage,
|
2988
2948
|
&s->unprocessed_incoming_frames_buffer);
|
2989
|
-
|
2990
|
-
grpc_core::ExecCtx::Run(DEBUG_LOCATION, bs->next_action_.on_complete,
|
2991
|
-
GRPC_ERROR_NONE);
|
2949
|
+
ExecCtx::Run(DEBUG_LOCATION, bs->next_action_.on_complete, GRPC_ERROR_NONE);
|
2992
2950
|
} else if (s->byte_stream_error != GRPC_ERROR_NONE) {
|
2993
|
-
|
2994
|
-
|
2951
|
+
ExecCtx::Run(DEBUG_LOCATION, bs->next_action_.on_complete,
|
2952
|
+
GRPC_ERROR_REF(s->byte_stream_error));
|
2995
2953
|
if (s->data_parser.parsing_frame != nullptr) {
|
2996
2954
|
s->data_parser.parsing_frame->Unref();
|
2997
2955
|
s->data_parser.parsing_frame = nullptr;
|
@@ -3000,8 +2958,8 @@ void Chttp2IncomingByteStream::NextLocked(void* arg,
|
|
3000
2958
|
if (bs->remaining_bytes_ != 0) {
|
3001
2959
|
s->byte_stream_error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
3002
2960
|
"Truncated message", &s->read_closed_error, 1);
|
3003
|
-
|
3004
|
-
|
2961
|
+
ExecCtx::Run(DEBUG_LOCATION, bs->next_action_.on_complete,
|
2962
|
+
GRPC_ERROR_REF(s->byte_stream_error));
|
3005
2963
|
if (s->data_parser.parsing_frame != nullptr) {
|
3006
2964
|
s->data_parser.parsing_frame->Unref();
|
3007
2965
|
s->data_parser.parsing_frame = nullptr;
|
@@ -3033,45 +2991,10 @@ bool Chttp2IncomingByteStream::Next(size_t max_size_hint,
|
|
3033
2991
|
}
|
3034
2992
|
}
|
3035
2993
|
|
3036
|
-
|
3037
|
-
GPR_DEBUG_ASSERT(stream_->stream_decompression_method !=
|
3038
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_DECOMPRESS);
|
3039
|
-
if (!stream_->stream_decompression_ctx) {
|
3040
|
-
stream_->stream_decompression_ctx = grpc_stream_compression_context_create(
|
3041
|
-
stream_->stream_decompression_method);
|
3042
|
-
}
|
3043
|
-
}
|
3044
|
-
|
3045
|
-
grpc_error* Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
2994
|
+
grpc_error_handle Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
3046
2995
|
GPR_TIMER_SCOPE("incoming_byte_stream_pull", 0);
|
3047
|
-
|
2996
|
+
grpc_error_handle error;
|
3048
2997
|
if (stream_->unprocessed_incoming_frames_buffer.length > 0) {
|
3049
|
-
if (!stream_->unprocessed_incoming_frames_decompressed &&
|
3050
|
-
stream_->stream_decompression_method !=
|
3051
|
-
GRPC_STREAM_COMPRESSION_IDENTITY_DECOMPRESS) {
|
3052
|
-
bool end_of_context;
|
3053
|
-
MaybeCreateStreamDecompressionCtx();
|
3054
|
-
if (!grpc_stream_decompress(stream_->stream_decompression_ctx,
|
3055
|
-
&stream_->unprocessed_incoming_frames_buffer,
|
3056
|
-
&stream_->decompressed_data_buffer, nullptr,
|
3057
|
-
MAX_SIZE_T, &end_of_context)) {
|
3058
|
-
error =
|
3059
|
-
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Stream decompression error.");
|
3060
|
-
return error;
|
3061
|
-
}
|
3062
|
-
GPR_ASSERT(stream_->unprocessed_incoming_frames_buffer.length == 0);
|
3063
|
-
grpc_slice_buffer_swap(&stream_->unprocessed_incoming_frames_buffer,
|
3064
|
-
&stream_->decompressed_data_buffer);
|
3065
|
-
stream_->unprocessed_incoming_frames_decompressed = true;
|
3066
|
-
if (end_of_context) {
|
3067
|
-
grpc_stream_compression_context_destroy(
|
3068
|
-
stream_->stream_decompression_ctx);
|
3069
|
-
stream_->stream_decompression_ctx = nullptr;
|
3070
|
-
}
|
3071
|
-
if (stream_->unprocessed_incoming_frames_buffer.length == 0) {
|
3072
|
-
*slice = grpc_empty_slice();
|
3073
|
-
}
|
3074
|
-
}
|
3075
2998
|
error = grpc_deframe_unprocessed_incoming_frames(
|
3076
2999
|
&stream_->data_parser, stream_,
|
3077
3000
|
&stream_->unprocessed_incoming_frames_buffer, slice, nullptr);
|
@@ -3087,20 +3010,19 @@ grpc_error* Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
|
3087
3010
|
return GRPC_ERROR_NONE;
|
3088
3011
|
}
|
3089
3012
|
|
3090
|
-
void Chttp2IncomingByteStream::PublishError(
|
3013
|
+
void Chttp2IncomingByteStream::PublishError(grpc_error_handle error) {
|
3091
3014
|
GPR_ASSERT(error != GRPC_ERROR_NONE);
|
3092
|
-
|
3093
|
-
GRPC_ERROR_REF(error));
|
3015
|
+
ExecCtx::Run(DEBUG_LOCATION, stream_->on_next, GRPC_ERROR_REF(error));
|
3094
3016
|
stream_->on_next = nullptr;
|
3095
3017
|
GRPC_ERROR_UNREF(stream_->byte_stream_error);
|
3096
3018
|
stream_->byte_stream_error = GRPC_ERROR_REF(error);
|
3097
3019
|
grpc_chttp2_cancel_stream(transport_, stream_, GRPC_ERROR_REF(error));
|
3098
3020
|
}
|
3099
3021
|
|
3100
|
-
|
3101
|
-
|
3022
|
+
grpc_error_handle Chttp2IncomingByteStream::Push(const grpc_slice& slice,
|
3023
|
+
grpc_slice* slice_out) {
|
3102
3024
|
if (remaining_bytes_ < GRPC_SLICE_LENGTH(slice)) {
|
3103
|
-
|
3025
|
+
grpc_error_handle error =
|
3104
3026
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Too many bytes in stream");
|
3105
3027
|
transport_->combiner->Run(&stream_->reset_byte_stream,
|
3106
3028
|
GRPC_ERROR_REF(error));
|
@@ -3115,8 +3037,8 @@ grpc_error* Chttp2IncomingByteStream::Push(const grpc_slice& slice,
|
|
3115
3037
|
}
|
3116
3038
|
}
|
3117
3039
|
|
3118
|
-
|
3119
|
-
|
3040
|
+
grpc_error_handle Chttp2IncomingByteStream::Finished(grpc_error_handle error,
|
3041
|
+
bool reset_on_error) {
|
3120
3042
|
if (error == GRPC_ERROR_NONE) {
|
3121
3043
|
if (remaining_bytes_ != 0) {
|
3122
3044
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Truncated message");
|
@@ -3130,7 +3052,7 @@ grpc_error* Chttp2IncomingByteStream::Finished(grpc_error* error,
|
|
3130
3052
|
return error;
|
3131
3053
|
}
|
3132
3054
|
|
3133
|
-
void Chttp2IncomingByteStream::Shutdown(
|
3055
|
+
void Chttp2IncomingByteStream::Shutdown(grpc_error_handle error) {
|
3134
3056
|
GRPC_ERROR_UNREF(Finished(error, true /* reset_on_error */));
|
3135
3057
|
}
|
3136
3058
|
|
@@ -3144,10 +3066,19 @@ static void post_benign_reclaimer(grpc_chttp2_transport* t) {
|
|
3144
3066
|
if (!t->benign_reclaimer_registered) {
|
3145
3067
|
t->benign_reclaimer_registered = true;
|
3146
3068
|
GRPC_CHTTP2_REF_TRANSPORT(t, "benign_reclaimer");
|
3147
|
-
|
3148
|
-
|
3149
|
-
|
3150
|
-
|
3069
|
+
t->memory_owner.PostReclaimer(
|
3070
|
+
grpc_core::ReclamationPass::kBenign,
|
3071
|
+
[t](absl::optional<grpc_core::ReclamationSweep> sweep) {
|
3072
|
+
if (sweep.has_value()) {
|
3073
|
+
GRPC_CLOSURE_INIT(&t->benign_reclaimer_locked,
|
3074
|
+
benign_reclaimer_locked, t,
|
3075
|
+
grpc_schedule_on_exec_ctx);
|
3076
|
+
t->active_reclamation = std::move(*sweep);
|
3077
|
+
t->combiner->Run(&t->benign_reclaimer_locked, GRPC_ERROR_NONE);
|
3078
|
+
} else {
|
3079
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
3080
|
+
}
|
3081
|
+
});
|
3151
3082
|
}
|
3152
3083
|
}
|
3153
3084
|
|
@@ -3155,21 +3086,23 @@ static void post_destructive_reclaimer(grpc_chttp2_transport* t) {
|
|
3155
3086
|
if (!t->destructive_reclaimer_registered) {
|
3156
3087
|
t->destructive_reclaimer_registered = true;
|
3157
3088
|
GRPC_CHTTP2_REF_TRANSPORT(t, "destructive_reclaimer");
|
3158
|
-
|
3159
|
-
|
3160
|
-
|
3161
|
-
|
3089
|
+
t->memory_owner.PostReclaimer(
|
3090
|
+
grpc_core::ReclamationPass::kDestructive,
|
3091
|
+
[t](absl::optional<grpc_core::ReclamationSweep> sweep) {
|
3092
|
+
if (sweep.has_value()) {
|
3093
|
+
GRPC_CLOSURE_INIT(&t->destructive_reclaimer_locked,
|
3094
|
+
destructive_reclaimer_locked, t,
|
3095
|
+
grpc_schedule_on_exec_ctx);
|
3096
|
+
t->active_reclamation = std::move(*sweep);
|
3097
|
+
t->combiner->Run(&t->destructive_reclaimer_locked, GRPC_ERROR_NONE);
|
3098
|
+
} else {
|
3099
|
+
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
3100
|
+
}
|
3101
|
+
});
|
3162
3102
|
}
|
3163
3103
|
}
|
3164
3104
|
|
3165
|
-
static void
|
3166
|
-
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3167
|
-
t->combiner->Run(GRPC_CLOSURE_INIT(&t->benign_reclaimer_locked,
|
3168
|
-
benign_reclaimer_locked, t, nullptr),
|
3169
|
-
GRPC_ERROR_REF(error));
|
3170
|
-
}
|
3171
|
-
|
3172
|
-
static void benign_reclaimer_locked(void* arg, grpc_error* error) {
|
3105
|
+
static void benign_reclaimer_locked(void* arg, grpc_error_handle error) {
|
3173
3106
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3174
3107
|
if (error == GRPC_ERROR_NONE &&
|
3175
3108
|
grpc_chttp2_stream_map_size(&t->stream_map) == 0) {
|
@@ -3193,20 +3126,12 @@ static void benign_reclaimer_locked(void* arg, grpc_error* error) {
|
|
3193
3126
|
}
|
3194
3127
|
t->benign_reclaimer_registered = false;
|
3195
3128
|
if (error != GRPC_ERROR_CANCELLED) {
|
3196
|
-
|
3197
|
-
grpc_endpoint_get_resource_user(t->ep));
|
3129
|
+
t->active_reclamation.Finish();
|
3198
3130
|
}
|
3199
3131
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
3200
3132
|
}
|
3201
3133
|
|
3202
|
-
static void
|
3203
|
-
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3204
|
-
t->combiner->Run(GRPC_CLOSURE_INIT(&t->destructive_reclaimer_locked,
|
3205
|
-
destructive_reclaimer_locked, t, nullptr),
|
3206
|
-
GRPC_ERROR_REF(error));
|
3207
|
-
}
|
3208
|
-
|
3209
|
-
static void destructive_reclaimer_locked(void* arg, grpc_error* error) {
|
3134
|
+
static void destructive_reclaimer_locked(void* arg, grpc_error_handle error) {
|
3210
3135
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3211
3136
|
size_t n = grpc_chttp2_stream_map_size(&t->stream_map);
|
3212
3137
|
t->destructive_reclaimer_registered = false;
|
@@ -3231,8 +3156,7 @@ static void destructive_reclaimer_locked(void* arg, grpc_error* error) {
|
|
3231
3156
|
}
|
3232
3157
|
}
|
3233
3158
|
if (error != GRPC_ERROR_CANCELLED) {
|
3234
|
-
|
3235
|
-
grpc_endpoint_get_resource_user(t->ep));
|
3159
|
+
t->active_reclamation.Finish();
|
3236
3160
|
}
|
3237
3161
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "destructive_reclaimer");
|
3238
3162
|
}
|
@@ -3297,6 +3221,7 @@ static grpc_endpoint* chttp2_get_endpoint(grpc_transport* t) {
|
|
3297
3221
|
static const grpc_transport_vtable vtable = {sizeof(grpc_chttp2_stream),
|
3298
3222
|
"chttp2",
|
3299
3223
|
init_stream,
|
3224
|
+
nullptr,
|
3300
3225
|
set_pollset,
|
3301
3226
|
set_pollset_set,
|
3302
3227
|
perform_stream_op,
|
@@ -3315,10 +3240,8 @@ grpc_chttp2_transport_get_socket_node(grpc_transport* transport) {
|
|
3315
3240
|
}
|
3316
3241
|
|
3317
3242
|
grpc_transport* grpc_create_chttp2_transport(
|
3318
|
-
const grpc_channel_args* channel_args, grpc_endpoint* ep, bool is_client
|
3319
|
-
|
3320
|
-
auto t =
|
3321
|
-
new grpc_chttp2_transport(channel_args, ep, is_client, resource_user);
|
3243
|
+
const grpc_channel_args* channel_args, grpc_endpoint* ep, bool is_client) {
|
3244
|
+
auto t = new grpc_chttp2_transport(channel_args, ep, is_client);
|
3322
3245
|
return &t->base;
|
3323
3246
|
}
|
3324
3247
|
|