grpc 1.34.0 → 1.42.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +978 -2868
- data/etc/roots.pem +592 -899
- data/include/grpc/byte_buffer.h +1 -1
- data/include/grpc/byte_buffer_reader.h +1 -1
- data/include/grpc/compression.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 +375 -0
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +98 -0
- data/include/grpc/event_engine/memory_allocator.h +210 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/fork.h +1 -1
- data/include/grpc/grpc.h +49 -4
- data/include/grpc/grpc_posix.h +5 -2
- data/include/grpc/grpc_security.h +127 -14
- data/include/grpc/grpc_security_constants.h +16 -0
- 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 +6 -0
- data/include/grpc/impl/codegen/byte_buffer.h +3 -1
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
- data/include/grpc/impl/codegen/compression_types.h +2 -0
- 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 +49 -25
- data/include/grpc/impl/codegen/log.h +2 -2
- data/include/grpc/impl/codegen/port_platform.h +81 -22
- data/include/grpc/impl/codegen/propagation_bits.h +2 -0
- data/include/grpc/impl/codegen/slice.h +2 -0
- 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 +6 -0
- data/include/grpc/module.modulemap +14 -14
- data/include/grpc/slice.h +1 -1
- data/include/grpc/slice_buffer.h +3 -3
- 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 +4 -4
- 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 +9 -9
- data/src/core/ext/filters/census/grpc_context.cc +1 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +20 -24
- data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
- 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 +2009 -3145
- data/src/core/ext/filters/client_channel/client_channel.h +559 -60
- 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 +18 -19
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +18 -14
- data/src/core/ext/filters/client_channel/config_selector.cc +2 -1
- data/src/core/ext/filters/client_channel/config_selector.h +33 -9
- data/src/core/ext/filters/client_channel/connector.h +19 -19
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +190 -0
- data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -11
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +53 -50
- data/src/core/ext/filters/client_channel/health/health_check_client.h +35 -33
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +37 -34
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
- data/src/core/ext/filters/client_channel/http_proxy.cc +36 -20
- 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 -21
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +246 -166
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +4 -0
- 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_channel.h +1 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +2 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +5 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +37 -30
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +53 -55
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +757 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +37 -0
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2502 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +16 -18
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +24 -27
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +385 -135
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +29 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +57 -71
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +43 -64
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1362 -0
- data/src/core/ext/filters/client_channel/lb_policy.cc +6 -17
- data/src/core/ext/filters/client_channel/lb_policy.h +93 -93
- 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/local_subchannel_pool.cc +27 -67
- data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +139 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +76 -88
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +3 -33
- 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 +10 -9
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +26 -23
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +473 -74
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +27 -2
- 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 +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +45 -35
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +43 -46
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +384 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +22 -35
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +466 -254
- data/src/core/ext/filters/client_channel/resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver.h +4 -15
- data/src/core/ext/filters/client_channel/resolver_factory.h +8 -6
- data/src/core/ext/filters/client_channel/resolver_registry.cc +43 -44
- data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +42 -252
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +25 -54
- data/src/core/ext/filters/client_channel/retry_filter.cc +2573 -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 +316 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/retry_throttle.cc +20 -49
- data/src/core/ext/filters/client_channel/retry_throttle.h +3 -1
- data/src/core/ext/filters/client_channel/server_address.cc +10 -1
- data/src/core/ext/filters/client_channel/server_address.h +31 -0
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +54 -40
- data/src/core/ext/filters/client_channel/subchannel.cc +179 -329
- data/src/core/ext/filters/client_channel/subchannel.h +101 -158
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +38 -9
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +21 -10
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +47 -223
- 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 +33 -34
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +503 -0
- data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +181 -0
- data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
- data/src/core/ext/filters/http/client/http_client_filter.cc +77 -69
- data/src/core/ext/filters/http/client_authority_filter.cc +19 -19
- data/src/core/ext/filters/http/http_filters_plugin.cc +53 -68
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +42 -35
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +29 -30
- data/src/core/ext/filters/http/server/http_server_filter.cc +104 -95
- data/src/core/ext/filters/max_age/max_age_filter.cc +71 -68
- data/src/core/ext/filters/message_size/message_size_filter.cc +43 -41
- data/src/core/ext/filters/message_size/message_size_filter.h +2 -2
- data/src/core/ext/{filters/client_channel → service_config}/service_config.cc +17 -16
- data/src/core/ext/{filters/client_channel → service_config}/service_config.h +11 -10
- data/src/core/ext/{filters/client_channel → service_config}/service_config_call_data.h +23 -19
- data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.cc +9 -9
- data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.h +15 -10
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +37 -23
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +9 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +42 -35
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +32 -16
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +51 -62
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +664 -236
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +13 -5
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +25 -11
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +61 -22
- 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 +264 -223
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +16 -2
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +5 -6
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +59 -40
- data/src/core/ext/transport/chttp2/transport/flow_control.h +23 -17
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +28 -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 +13 -13
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +8 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +12 -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 +9 -7
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +22 -19
- 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 +311 -665
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +240 -70
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +107 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +69 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +865 -1172
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +100 -81
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +146 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +137 -0
- data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +46 -0
- data/src/core/{lib/transport/authority_override.h → ext/transport/chttp2/transport/hpack_utils.h} +8 -12
- data/src/core/ext/transport/chttp2/transport/internal.h +40 -33
- data/src/core/ext/transport/chttp2/transport/parsing.cc +156 -286
- data/src/core/ext/transport/chttp2/transport/popularity_count.h +60 -0
- 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 +69 -54
- data/src/core/ext/transport/inproc/inproc_transport.cc +204 -160
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1591 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +2 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +48 -49
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +245 -56
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +371 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1554 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +16 -16
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +66 -21
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +178 -142
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +795 -314
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +21 -7
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +25 -24
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +70 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +29 -29
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +138 -47
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +23 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +147 -75
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +522 -96
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +27 -27
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +116 -49
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +42 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +63 -63
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +228 -63
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +57 -56
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +244 -98
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +25 -11
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +125 -57
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +533 -89
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +3 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +133 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +8 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +17 -4
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +15 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +56 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +96 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +16 -17
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +81 -40
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +56 -22
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +223 -34
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +32 -32
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +137 -72
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +19 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +48 -38
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +276 -103
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +51 -45
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +203 -62
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +177 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +10 -9
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +55 -22
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +536 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +153 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +550 -0
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +51 -44
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +165 -43
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +35 -16
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +148 -40
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +339 -279
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +1466 -543
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +48 -10
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +6 -7
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +32 -6
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +73 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +298 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +79 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +303 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +123 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +151 -112
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +693 -244
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +1 -2
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +2 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +52 -32
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +231 -59
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +15 -18
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +51 -28
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +45 -44
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +178 -74
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +58 -51
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +221 -135
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +2 -5
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +2 -5
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +9 -10
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +46 -19
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +2 -4
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +121 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +468 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +205 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +9 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +44 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +96 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +4 -4
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +3 -3
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +15 -2
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +10 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +51 -12
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +10 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +31 -6
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +136 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +11 -11
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +41 -4
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +15 -15
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +96 -11
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +19 -19
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +77 -14
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +1 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -1
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +6 -6
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +30 -5
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +10 -10
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +41 -4
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +5 -5
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +15 -2
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +1 -1
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +2 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +62 -62
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +227 -84
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +86 -69
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +256 -72
- data/src/core/ext/upb-generated/google/api/http.upb.c +18 -18
- data/src/core/ext/upb-generated/google/api/http.upb.h +47 -10
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +15 -2
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +154 -154
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +645 -320
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +15 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +2 -2
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +15 -2
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +44 -7
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +4 -4
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +15 -2
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +19 -19
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +119 -10
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +5 -5
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +18 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +19 -5
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +63 -63
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +220 -87
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +8 -8
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +36 -9
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +5 -5
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +28 -3
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +146 -35
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +55 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +154 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +8 -8
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +41 -4
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +4 -6
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +15 -2
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +1 -1
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +2 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +4 -4
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +17 -4
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +3 -3
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +15 -2
- data/src/core/ext/upb-generated/validate/validate.upb.c +243 -227
- data/src/core/ext/upb-generated/validate/validate.upb.h +626 -253
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +58 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +182 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +28 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +66 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +155 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +90 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +100 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +178 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +91 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +58 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +130 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +33 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +83 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +168 -170
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +424 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +120 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +467 -429
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +12 -2
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +12 -9
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +156 -109
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +25 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +89 -88
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +156 -153
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +240 -168
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +20 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +4 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -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/substitution_format_string.upbdefs.c +37 -20
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -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 +56 -59
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +90 -63
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +137 -122
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +136 -120
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -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 +31 -26
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +152 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -51
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +748 -681
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +22 -25
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +123 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +79 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +435 -379
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +12 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +121 -91
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +45 -53
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +182 -180
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +92 -102
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +32 -42
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +30 -40
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +4 -7
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +38 -44
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +163 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -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/metadata.upbdefs.c +14 -13
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +30 -33
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +8 -7
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +100 -100
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +8 -8
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +8 -8
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +8 -8
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +5 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +19 -23
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +4 -3
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +5 -3
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +5 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -157
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +50 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +68 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +45 -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 +2 -2
- data/src/core/ext/xds/certificate_provider_store.cc +10 -7
- data/src/core/ext/xds/certificate_provider_store.h +15 -10
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +28 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +3 -6
- data/src/core/ext/xds/xds_api.cc +2654 -808
- data/src/core/ext/xds/xds_api.h +460 -154
- data/src/core/ext/xds/xds_bootstrap.cc +139 -188
- data/src/core/ext/xds/xds_bootstrap.h +34 -18
- data/src/core/ext/xds/xds_certificate_provider.cc +237 -72
- data/src/core/ext/xds/xds_certificate_provider.h +104 -27
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +113 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.h +52 -0
- data/src/core/ext/xds/xds_client.cc +985 -429
- data/src/core/ext/xds/xds_client.h +100 -51
- data/src/core/ext/xds/xds_client_stats.cc +18 -16
- data/src/core/ext/xds/xds_client_stats.h +12 -11
- data/src/core/ext/xds/xds_http_fault_filter.cc +227 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +64 -0
- data/src/core/ext/xds/xds_http_filters.cc +116 -0
- data/src/core/ext/xds/xds_http_filters.h +133 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +544 -0
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +72 -68
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +20 -16
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +131 -15
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +37 -7
- data/src/core/lib/avl/avl.cc +5 -5
- data/src/core/lib/backoff/backoff.cc +1 -1
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_args.cc +34 -15
- data/src/core/lib/channel/channel_args.h +9 -0
- data/src/core/lib/channel/channel_stack.cc +27 -12
- data/src/core/lib/channel/channel_stack.h +18 -10
- data/src/core/lib/channel/channel_stack_builder.cc +6 -16
- data/src/core/lib/channel/channel_stack_builder.h +1 -9
- data/src/core/lib/channel/channel_trace.cc +5 -4
- data/src/core/lib/channel/channel_trace.h +3 -2
- data/src/core/lib/channel/channelz.cc +162 -63
- data/src/core/lib/channel/channelz.h +62 -31
- data/src/core/lib/channel/channelz_registry.cc +22 -7
- data/src/core/lib/channel/channelz_registry.h +1 -2
- data/src/core/lib/channel/connected_channel.cc +6 -7
- data/src/core/lib/channel/connected_channel.h +1 -2
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/handshaker.cc +13 -53
- data/src/core/lib/channel/handshaker.h +7 -25
- 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/status_util.cc +12 -2
- data/src/core/lib/channel/status_util.h +11 -2
- data/src/core/lib/compression/algorithm_metadata.h +1 -0
- data/src/core/lib/compression/compression.cc +2 -2
- data/src/core/lib/compression/compression_args.cc +11 -7
- data/src/core/lib/compression/compression_internal.cc +4 -6
- data/src/core/lib/compression/compression_internal.h +1 -1
- data/src/core/lib/compression/message_compress.cc +2 -2
- data/src/core/lib/compression/stream_compression.cc +2 -1
- data/src/core/lib/compression/stream_compression.h +3 -2
- data/src/core/lib/compression/stream_compression_gzip.cc +2 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.cc +2 -1
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/config/core_configuration.cc +96 -0
- data/src/core/lib/config/core_configuration.h +146 -0
- data/src/core/lib/debug/stats.cc +1 -1
- data/src/core/lib/debug/stats.h +4 -3
- data/src/core/lib/debug/stats_data.cc +15 -14
- data/src/core/lib/debug/stats_data.h +14 -13
- data/src/core/lib/debug/trace.cc +1 -0
- data/src/core/lib/debug/trace.h +2 -1
- data/src/core/lib/event_engine/endpoint_config.cc +45 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -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 +7 -5
- 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 +61 -19
- data/src/core/lib/gpr/log_android.cc +3 -2
- data/src/core/lib/gpr/log_linux.cc +10 -5
- data/src/core/lib/gpr/log_posix.cc +9 -4
- data/src/core/lib/gpr/log_windows.cc +3 -1
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/spinlock.h +10 -2
- data/src/core/lib/gpr/string.cc +24 -23
- data/src/core/lib/gpr/string.h +7 -8
- data/src/core/lib/gpr/sync.cc +6 -6
- data/src/core/lib/gpr/sync_abseil.cc +10 -12
- data/src/core/lib/gpr/sync_posix.cc +3 -3
- data/src/core/lib/gpr/sync_windows.cc +2 -2
- data/src/core/lib/gpr/time.cc +15 -14
- data/src/core/lib/gpr/time_windows.cc +3 -2
- data/src/core/lib/gpr/tls.h +119 -40
- data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
- data/src/core/lib/gpr/useful.h +79 -32
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/arena.cc +2 -1
- data/src/core/lib/gprpp/arena.h +18 -7
- data/src/core/lib/gprpp/atomic_utils.h +47 -0
- data/src/core/lib/gprpp/bitset.h +188 -0
- data/src/core/lib/gprpp/chunked_vector.h +211 -0
- data/src/core/lib/gprpp/construct_destruct.h +39 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +28 -29
- 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 +7 -7
- data/src/core/lib/gprpp/global_config_generic.h +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +9 -6
- data/src/core/lib/gprpp/match.h +73 -0
- data/src/core/lib/gprpp/memory.h +9 -3
- data/src/core/lib/gprpp/mpscq.cc +9 -9
- data/src/core/lib/gprpp/mpscq.h +6 -5
- data/src/core/lib/gprpp/orphanable.h +6 -6
- data/src/core/lib/gprpp/overload.h +59 -0
- data/src/core/lib/gprpp/ref_counted.h +48 -34
- data/src/core/lib/gprpp/ref_counted_ptr.h +11 -1
- data/src/core/lib/gprpp/status_helper.cc +427 -0
- data/src/core/lib/gprpp/status_helper.h +194 -0
- data/src/core/lib/gprpp/sync.h +106 -43
- data/src/core/lib/gprpp/table.h +411 -0
- data/src/core/lib/gprpp/thd.h +1 -1
- data/src/core/lib/gprpp/thd_posix.cc +11 -6
- data/src/core/lib/gprpp/thd_windows.cc +7 -12
- data/src/core/lib/gprpp/time_util.cc +77 -0
- data/src/core/lib/gprpp/time_util.h +42 -0
- data/src/core/lib/http/format_request.cc +1 -0
- data/src/core/lib/http/format_request.h +1 -0
- data/src/core/lib/http/httpcli.cc +203 -185
- data/src/core/lib/http/httpcli.h +5 -3
- data/src/core/lib/http/httpcli_security_connector.cc +19 -18
- data/src/core/lib/http/parser.cc +19 -20
- data/src/core/lib/http/parser.h +5 -4
- data/src/core/lib/iomgr/buffer_list.cc +10 -11
- data/src/core/lib/iomgr/buffer_list.h +6 -8
- data/src/core/lib/iomgr/call_combiner.cc +46 -21
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +6 -6
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +25 -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 -5
- data/src/core/lib/iomgr/endpoint_cfstream.cc +27 -39
- data/src/core/lib/iomgr/endpoint_cfstream.h +1 -1
- 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 +15 -11
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +17 -9
- data/src/core/lib/iomgr/error.cc +277 -105
- data/src/core/lib/iomgr/error.h +280 -114
- data/src/core/lib/iomgr/error_cfstream.cc +10 -4
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +7 -2
- data/src/core/lib/iomgr/ev_apple.cc +16 -13
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +53 -53
- data/src/core/lib/iomgr/ev_epollex_linux.cc +81 -81
- data/src/core/lib/iomgr/ev_poll_posix.cc +70 -68
- data/src/core/lib/iomgr/ev_posix.cc +13 -13
- 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 +173 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +52 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +104 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +42 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +88 -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 +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +114 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +293 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +62 -0
- data/src/core/lib/iomgr/exec_ctx.cc +14 -11
- data/src/core/lib/iomgr/exec_ctx.h +21 -28
- 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 +5 -4
- data/src/core/lib/iomgr/executor.cc +19 -33
- data/src/core/lib/iomgr/executor.h +3 -3
- 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 +1 -0
- data/src/core/lib/iomgr/iomgr.cc +6 -4
- data/src/core/lib/iomgr/iomgr.h +3 -3
- data/src/core/lib/iomgr/iomgr_custom.cc +3 -3
- data/src/core/lib/iomgr/iomgr_custom.h +2 -2
- 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 +3 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -13
- data/src/core/lib/iomgr/iomgr_windows.cc +2 -3
- 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 +38 -15
- data/src/core/lib/iomgr/lockfree_event.h +2 -2
- data/src/core/lib/iomgr/polling_entity.cc +2 -2
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +10 -11
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_set_custom.cc +2 -3
- data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -10
- data/src/core/lib/iomgr/python_util.h +4 -3
- data/src/core/lib/iomgr/resolve_address.cc +14 -9
- data/src/core/lib/iomgr/resolve_address.h +12 -10
- data/src/core/lib/iomgr/resolve_address_custom.cc +14 -13
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -4
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -14
- data/src/core/lib/iomgr/resolve_address_windows.cc +10 -12
- data/src/core/lib/iomgr/resource_quota.cc +152 -62
- data/src/core/lib/iomgr/resource_quota.h +66 -17
- data/src/core/lib/iomgr/sockaddr.h +2 -1
- data/src/core/lib/iomgr/socket_factory_posix.cc +8 -7
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +20 -6
- data/src/core/lib/iomgr/socket_mutator.h +27 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +29 -27
- 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 +5 -3
- data/src/core/lib/iomgr/tcp_client.h +4 -0
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +18 -26
- data/src/core/lib/iomgr/tcp_client_custom.cc +19 -27
- data/src/core/lib/iomgr/tcp_client_posix.cc +56 -47
- data/src/core/lib/iomgr/tcp_client_posix.h +8 -6
- data/src/core/lib/iomgr/tcp_client_windows.cc +23 -14
- data/src/core/lib/iomgr/tcp_custom.cc +46 -55
- data/src/core/lib/iomgr/tcp_custom.h +15 -13
- data/src/core/lib/iomgr/tcp_posix.cc +119 -145
- data/src/core/lib/iomgr/tcp_posix.h +19 -12
- data/src/core/lib/iomgr/tcp_server.cc +9 -7
- data/src/core/lib/iomgr/tcp_server.h +18 -14
- data/src/core/lib/iomgr/tcp_server_custom.cc +63 -73
- data/src/core/lib/iomgr/tcp_server_posix.cc +49 -35
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +16 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +22 -20
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +11 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +40 -36
- data/src/core/lib/iomgr/tcp_windows.cc +21 -40
- data/src/core/lib/iomgr/tcp_windows.h +4 -3
- data/src/core/lib/iomgr/timer.cc +1 -0
- data/src/core/lib/iomgr/timer.h +7 -3
- data/src/core/lib/iomgr/timer_custom.cc +7 -6
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +32 -62
- 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 +4 -4
- data/src/core/lib/iomgr/unix_sockets_posix.cc +21 -24
- data/src/core/lib/iomgr/unix_sockets_posix.h +4 -5
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +2 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +6 -7
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +4 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.cc +4 -4
- data/src/core/lib/iomgr/work_serializer.h +18 -2
- data/src/core/lib/json/json.h +11 -1
- data/src/core/lib/json/json_reader.cc +14 -23
- data/src/core/lib/json/json_util.cc +68 -0
- data/src/core/lib/json/json_util.h +65 -115
- data/src/core/lib/json/json_writer.cc +0 -3
- data/src/core/lib/matchers/matchers.cc +327 -0
- data/src/core/lib/matchers/matchers.h +160 -0
- data/src/core/lib/profiling/basic_timers.cc +8 -6
- data/src/core/lib/profiling/stap_timers.cc +2 -2
- data/src/core/lib/security/authorization/authorization_engine.h +13 -53
- 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 +126 -66
- data/src/core/lib/security/authorization/evaluate_args.h +47 -15
- data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +171 -0
- data/src/core/lib/security/authorization/sdk_server_authz_filter.h +67 -0
- data/src/core/lib/security/context/security_context.cc +15 -11
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +9 -8
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.cc +16 -14
- data/src/core/lib/security/credentials/credentials.h +11 -5
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -3
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +404 -0
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +81 -0
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +20 -14
- data/src/core/lib/security/credentials/external/aws_request_signer.h +2 -3
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +270 -54
- data/src/core/lib/security/credentials/external/external_account_credentials.h +16 -12
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +6 -6
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +26 -26
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +13 -12
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +5 -4
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- 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 +92 -31
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +4 -3
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +18 -5
- data/src/core/lib/security/credentials/jwt/json_token.cc +4 -7
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +34 -17
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +13 -5
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +15 -22
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +3 -3
- data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
- data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +57 -66
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +11 -9
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +10 -12
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +11 -10
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +2 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +12 -15
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +20 -21
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +382 -5
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +74 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +5 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +2 -3
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +3 -2
- data/src/core/lib/security/credentials/tls/tls_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/tls_utils.cc +123 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +51 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +209 -10
- data/src/core/lib/security/credentials/xds/xds_credentials.h +27 -9
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +20 -12
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +50 -17
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +35 -8
- 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 +4 -4
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +23 -10
- data/src/core/lib/security/security_connector/security_connector.cc +12 -6
- data/src/core/lib/security/security_connector/security_connector.h +10 -5
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +24 -17
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +41 -14
- data/src/core/lib/security/security_connector/ssl_utils.h +16 -23
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +156 -113
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +67 -52
- data/src/core/lib/security/transport/auth_filters.h +1 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +27 -21
- data/src/core/lib/security/transport/secure_endpoint.cc +10 -20
- data/src/core/lib/security/transport/secure_endpoint.h +1 -0
- data/src/core/lib/security/transport/security_handshaker.cc +158 -90
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +20 -16
- 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/slice/percent_encoding.cc +73 -30
- data/src/core/lib/slice/percent_encoding.h +29 -28
- data/src/core/lib/slice/slice.cc +14 -21
- data/src/core/lib/{gpr/tls_pthread.cc → slice/slice_api.cc} +15 -6
- data/src/core/lib/slice/slice_buffer.cc +6 -7
- data/src/core/lib/slice/slice_intern.cc +19 -27
- data/src/core/lib/slice/slice_internal.h +4 -246
- data/src/core/lib/slice/slice_refcount.cc +17 -0
- data/src/core/lib/slice/slice_refcount.h +121 -0
- data/src/core/lib/slice/slice_refcount_base.h +173 -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/slice/static_slice.cc +529 -0
- data/src/core/lib/slice/static_slice.h +331 -0
- 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 +198 -186
- data/src/core/lib/surface/call.h +10 -5
- data/src/core/lib/surface/call_details.cc +10 -10
- data/src/core/lib/surface/call_log_batch.cc +2 -2
- data/src/core/lib/surface/channel.cc +57 -51
- data/src/core/lib/surface/channel.h +19 -14
- 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 +140 -145
- data/src/core/lib/surface/completion_queue.h +18 -17
- 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 +18 -65
- data/src/core/lib/surface/init.h +10 -2
- data/src/core/lib/surface/init_secure.cc +36 -14
- data/src/core/lib/surface/lame_client.cc +62 -61
- data/src/core/lib/surface/lame_client.h +5 -0
- data/src/core/lib/surface/metadata_array.cc +2 -2
- data/src/core/lib/surface/server.cc +167 -116
- data/src/core/lib/surface/server.h +140 -40
- 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 +1 -1
- data/src/core/lib/transport/byte_stream.cc +5 -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 +8 -6
- data/src/core/lib/transport/error_utils.cc +64 -27
- data/src/core/lib/transport/error_utils.h +13 -7
- data/src/core/lib/transport/metadata.cc +47 -22
- data/src/core/lib/transport/metadata.h +15 -12
- data/src/core/lib/transport/metadata_batch.cc +41 -339
- data/src/core/lib/transport/metadata_batch.h +932 -68
- data/src/core/lib/transport/parsed_metadata.h +263 -0
- data/src/core/lib/transport/pid_controller.cc +4 -4
- data/src/core/lib/transport/static_metadata.cc +715 -847
- data/src/core/lib/transport/static_metadata.h +115 -379
- data/src/core/lib/transport/status_metadata.cc +5 -3
- data/src/core/lib/transport/transport.cc +8 -8
- data/src/core/lib/transport/transport.h +12 -10
- data/src/core/lib/transport/transport_op_string.cc +46 -26
- data/src/core/lib/uri/uri_parser.cc +131 -249
- data/src/core/lib/uri/uri_parser.h +57 -21
- data/src/core/plugin_registry/grpc_plugin_registry.cc +101 -44
- data/src/core/tsi/alts/crypt/aes_gcm.cc +6 -3
- data/src/core/tsi/alts/crypt/gsec.cc +5 -4
- 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 +18 -17
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +27 -33
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +57 -51
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
- 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_iovec_record_protocol.cc +8 -6
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +6 -6
- data/src/core/tsi/fake_transport_security.cc +31 -12
- data/src/core/tsi/local_transport_security.cc +36 -73
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +20 -55
- 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 +115 -77
- data/src/core/tsi/ssl_transport_security.h +12 -14
- data/src/core/tsi/transport_security.cc +21 -9
- 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 +27 -1
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +21 -8
- 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 +19 -8
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
- data/src/ruby/ext/grpc/rb_channel_credentials.c +15 -5
- data/src/ruby/ext/grpc/rb_channel_credentials.h +5 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
- data/src/ruby/ext/grpc/rb_compression_options.c +6 -5
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +4 -2
- data/src/ruby/ext/grpc/rb_grpc.c +9 -4
- data/src/ruby/ext/grpc/rb_grpc.h +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +24 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +50 -14
- data/src/ruby/ext/grpc/rb_server.c +19 -6
- data/src/ruby/ext/grpc/rb_server_credentials.c +22 -6
- data/src/ruby/ext/grpc/rb_server_credentials.h +5 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +218 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +37 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +170 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +37 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
- 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/messages_pb.rb +35 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -2
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +23 -5
- data/src/ruby/spec/call_spec.rb +1 -1
- data/src/ruby/spec/channel_credentials_spec.rb +32 -0
- data/src/ruby/spec/channel_spec.rb +17 -6
- data/src/ruby/spec/client_auth_spec.rb +27 -1
- data/src/ruby/spec/client_server_spec.rb +1 -1
- data/src/ruby/spec/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +2 -2
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- 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/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 +14 -5
- 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 +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -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 +54 -48
- 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 +1 -3
- 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 -2
- data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- 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 +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- 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 +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- 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 +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- 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/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +396 -0
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
- data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- 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 +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- 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 +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- 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 +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- 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 +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- 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/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +1 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- 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 +79 -62
- 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/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- 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 +756 -724
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +55 -50
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +22 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +6 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +16 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
- data/third_party/boringssl-with-bazel/src/crypto/{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 +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +22 -10
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +3 -42
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +16 -16
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +196 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +35 -86
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +326 -281
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +15 -26
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +20 -75
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +11 -8
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +156 -0
- data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +8 -9
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +68 -45
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +49 -65
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +101 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
- data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +31 -3
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +4 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +28 -12
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +15 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +32 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +35 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +136 -213
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +16 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +56 -72
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +56 -73
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +30 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +123 -44
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +30 -20
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +50 -33
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +65 -41
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +161 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +93 -107
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +91 -113
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +50 -86
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +400 -325
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
- data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +125 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +28 -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 +9 -4
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +156 -15
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +11 -8
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +1 -0
- 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/{fipsmodule/is_fips.c → rand_extra/passive.c} +16 -11
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/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 +345 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +20 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -179
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +7 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +24 -47
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +4 -31
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +12 -9
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +17 -24
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +26 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +25 -69
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +54 -74
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +61 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -19
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +15 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +23 -21
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +50 -14
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +5 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +23 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +4 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +27 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +28 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +6 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +26 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +10 -12
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +7 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +40 -20
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +27 -36
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +7 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +86 -44
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +69 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1026 -615
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +2 -176
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +63 -13
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +3 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +32 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +23 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +56 -26
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +10 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +38 -51
- 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 +33 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +104 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +39 -16
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +406 -108
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +48 -36
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1425 -377
- 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 +188 -49
- 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} +847 -622
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +92 -44
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +314 -217
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +177 -35
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +491 -152
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -8
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +34 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +60 -112
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +136 -104
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +12 -17
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +28 -23
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +79 -34
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +235 -178
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +160 -91
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +269 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/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/upb/decode.c +354 -204
- data/third_party/upb/upb/decode.h +50 -3
- data/third_party/upb/upb/decode_fast.c +1053 -0
- data/third_party/upb/upb/decode_fast.h +153 -0
- data/third_party/upb/upb/decode_internal.h +193 -0
- data/third_party/upb/upb/def.c +609 -610
- data/third_party/upb/upb/def.h +57 -50
- data/third_party/upb/upb/def.hpp +66 -123
- data/third_party/upb/upb/encode.c +267 -176
- data/third_party/upb/upb/encode.h +56 -4
- data/third_party/upb/upb/msg.c +304 -84
- data/third_party/upb/upb/msg.h +76 -441
- data/third_party/upb/upb/msg_internal.h +687 -0
- data/third_party/upb/upb/port_def.inc +156 -82
- data/third_party/upb/upb/port_undef.inc +41 -8
- data/third_party/upb/upb/reflection.c +64 -55
- data/third_party/upb/upb/reflection.h +36 -8
- data/third_party/upb/upb/reflection.hpp +37 -0
- data/third_party/upb/upb/table.c +238 -276
- data/third_party/upb/upb/{table.int.h → table_internal.h} +66 -181
- data/third_party/upb/upb/text_encode.c +77 -26
- data/third_party/upb/upb/text_encode.h +30 -1
- data/third_party/upb/upb/upb.c +75 -47
- data/third_party/upb/upb/upb.h +72 -13
- data/third_party/upb/upb/upb.hpp +28 -4
- data/third_party/upb/upb/upb_internal.h +58 -0
- data/third_party/xxhash/xxhash.h +5325 -0
- metadata +287 -137
- data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -909
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
- 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_fallback.cc +0 -68
- 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/resolving_lb_policy.cc +0 -355
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -138
- 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/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/udpa/core/v1/authority.upb.c +0 -28
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +0 -53
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +0 -52
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +0 -129
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +0 -42
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +0 -77
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +0 -36
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +0 -85
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +0 -54
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +0 -160
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +0 -36
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +0 -84
- 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 -117
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +0 -42
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +0 -62
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +0 -45
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +0 -49
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +0 -68
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +0 -51
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +0 -35
- data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.cc +0 -265
- data/src/core/ext/xds/google_mesh_ca_certificate_provider_factory.h +0 -104
- 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/gprpp/map.h +0 -53
- data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
- data/src/core/lib/iomgr/iomgr_posix.h +0 -26
- data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- 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/sockaddr_custom.h +0 -54
- data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
- data/src/core/lib/iomgr/tcp_uv.cc +0 -419
- data/src/core/lib/iomgr/timer_uv.cc +0 -66
- data/src/core/lib/iomgr/udp_server.cc +0 -748
- data/src/core/lib/iomgr/udp_server.h +0 -104
- data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
- data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
- data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
- data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
- data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -97
- data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
- data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
- data/src/core/lib/transport/authority_override.cc +0 -38
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -504
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +0 -104
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -237
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
- data/third_party/upb/upb/port.c +0 -26
@@ -18,18 +18,18 @@
|
|
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>
|
24
30
|
#include <grpc/support/alloc.h>
|
25
31
|
#include <grpc/support/log.h>
|
26
|
-
#include <grpc/support/port_platform.h>
|
27
32
|
#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
33
|
|
34
34
|
#include "src/core/ext/transport/chttp2/transport/context_list.h"
|
35
35
|
#include "src/core/ext/transport/chttp2/transport/frame_data.h"
|
@@ -100,23 +100,23 @@ grpc_core::DebugOnlyTraceFlag grpc_trace_chttp2_refcount(false,
|
|
100
100
|
"chttp2_refcount");
|
101
101
|
|
102
102
|
// 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,
|
103
|
+
static void write_action_begin_locked(void* t, grpc_error_handle error);
|
104
|
+
static void write_action(void* t, grpc_error_handle error);
|
105
|
+
static void write_action_end(void* t, grpc_error_handle error);
|
106
|
+
static void write_action_end_locked(void* t, grpc_error_handle error);
|
107
107
|
|
108
|
-
static void read_action(void* t,
|
109
|
-
static void read_action_locked(void* t,
|
108
|
+
static void read_action(void* t, grpc_error_handle error);
|
109
|
+
static void read_action_locked(void* t, grpc_error_handle error);
|
110
110
|
static void continue_read_action_locked(grpc_chttp2_transport* t);
|
111
111
|
|
112
|
-
static void complete_fetch(void* gs,
|
113
|
-
static void complete_fetch_locked(void* gs,
|
112
|
+
static void complete_fetch(void* gs, grpc_error_handle error);
|
113
|
+
static void complete_fetch_locked(void* gs, grpc_error_handle error);
|
114
114
|
// Set a transport level setting, and push it to our peer
|
115
115
|
static void queue_setting_update(grpc_chttp2_transport* t,
|
116
116
|
grpc_chttp2_setting_id id, uint32_t value);
|
117
117
|
|
118
118
|
static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
119
|
-
|
119
|
+
grpc_error_handle error);
|
120
120
|
|
121
121
|
// Start new streams that have been created if we can
|
122
122
|
static void maybe_start_some_streams(grpc_chttp2_transport* t);
|
@@ -126,46 +126,68 @@ static void connectivity_state_set(grpc_chttp2_transport* t,
|
|
126
126
|
const absl::Status& status,
|
127
127
|
const char* reason);
|
128
128
|
|
129
|
-
static void benign_reclaimer(void*
|
130
|
-
static void destructive_reclaimer(void*
|
131
|
-
static void benign_reclaimer_locked(void*
|
132
|
-
static void destructive_reclaimer_locked(void*
|
129
|
+
static void benign_reclaimer(void* arg, grpc_error_handle error);
|
130
|
+
static void destructive_reclaimer(void* arg, grpc_error_handle error);
|
131
|
+
static void benign_reclaimer_locked(void* arg, grpc_error_handle error);
|
132
|
+
static void destructive_reclaimer_locked(void* arg, grpc_error_handle error);
|
133
133
|
|
134
134
|
static void post_benign_reclaimer(grpc_chttp2_transport* t);
|
135
135
|
static void post_destructive_reclaimer(grpc_chttp2_transport* t);
|
136
136
|
|
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
|
137
|
+
static void close_transport_locked(grpc_chttp2_transport* t,
|
138
|
+
grpc_error_handle error);
|
139
|
+
static void end_all_the_calls(grpc_chttp2_transport* t,
|
140
|
+
grpc_error_handle error);
|
141
|
+
|
142
|
+
static void start_bdp_ping(void* tp, grpc_error_handle error);
|
143
|
+
static void finish_bdp_ping(void* tp, grpc_error_handle error);
|
144
|
+
static void start_bdp_ping_locked(void* tp, grpc_error_handle error);
|
145
|
+
static void finish_bdp_ping_locked(void* tp, grpc_error_handle error);
|
146
|
+
static void next_bdp_ping_timer_expired(void* tp, grpc_error_handle error);
|
147
|
+
static void next_bdp_ping_timer_expired_locked(void* tp,
|
148
|
+
grpc_error_handle error);
|
149
|
+
|
150
|
+
static void cancel_pings(grpc_chttp2_transport* t, grpc_error_handle error);
|
148
151
|
static void send_ping_locked(grpc_chttp2_transport* t,
|
149
|
-
grpc_closure* on_initiate,
|
150
|
-
|
151
|
-
static void retry_initiate_ping_locked(void* tp, grpc_error* error);
|
152
|
+
grpc_closure* on_initiate, grpc_closure* on_ack);
|
153
|
+
static void retry_initiate_ping_locked(void* tp, grpc_error_handle error);
|
152
154
|
|
153
155
|
// keepalive-relevant functions
|
154
|
-
static void init_keepalive_ping(void* arg,
|
155
|
-
static void init_keepalive_ping_locked(void* arg,
|
156
|
-
static void start_keepalive_ping(void* arg,
|
157
|
-
static void finish_keepalive_ping(void* arg,
|
158
|
-
static void start_keepalive_ping_locked(void* arg,
|
159
|
-
static void finish_keepalive_ping_locked(void* arg,
|
160
|
-
static void keepalive_watchdog_fired(void* arg,
|
161
|
-
static void keepalive_watchdog_fired_locked(void* arg,
|
156
|
+
static void init_keepalive_ping(void* arg, grpc_error_handle error);
|
157
|
+
static void init_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
158
|
+
static void start_keepalive_ping(void* arg, grpc_error_handle error);
|
159
|
+
static void finish_keepalive_ping(void* arg, grpc_error_handle error);
|
160
|
+
static void start_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
161
|
+
static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error);
|
162
|
+
static void keepalive_watchdog_fired(void* arg, grpc_error_handle error);
|
163
|
+
static void keepalive_watchdog_fired_locked(void* arg, grpc_error_handle error);
|
162
164
|
|
163
|
-
static void reset_byte_stream(void* arg,
|
165
|
+
static void reset_byte_stream(void* arg, grpc_error_handle error);
|
164
166
|
|
165
167
|
// Flow control default enabled. Can be disabled by setting
|
166
168
|
// GRPC_EXPERIMENTAL_DISABLE_FLOW_CONTROL
|
167
169
|
bool g_flow_control_enabled = true;
|
168
170
|
|
171
|
+
namespace grpc_core {
|
172
|
+
|
173
|
+
namespace {
|
174
|
+
TestOnlyGlobalHttp2TransportInitCallback test_only_init_callback = nullptr;
|
175
|
+
TestOnlyGlobalHttp2TransportDestructCallback test_only_destruct_callback =
|
176
|
+
nullptr;
|
177
|
+
} // namespace
|
178
|
+
|
179
|
+
void TestOnlySetGlobalHttp2TransportInitCallback(
|
180
|
+
TestOnlyGlobalHttp2TransportInitCallback callback) {
|
181
|
+
test_only_init_callback = callback;
|
182
|
+
}
|
183
|
+
|
184
|
+
void TestOnlySetGlobalHttp2TransportDestructCallback(
|
185
|
+
TestOnlyGlobalHttp2TransportDestructCallback callback) {
|
186
|
+
test_only_destruct_callback = callback;
|
187
|
+
}
|
188
|
+
|
189
|
+
} // namespace grpc_core
|
190
|
+
|
169
191
|
//
|
170
192
|
// CONSTRUCTION/DESTRUCTION/REFCOUNTING
|
171
193
|
//
|
@@ -182,9 +204,8 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
182
204
|
grpc_slice_buffer_destroy_internal(&qbuf);
|
183
205
|
|
184
206
|
grpc_slice_buffer_destroy_internal(&outbuf);
|
185
|
-
grpc_chttp2_hpack_compressor_destroy(&hpack_compressor);
|
186
207
|
|
187
|
-
|
208
|
+
grpc_error_handle error =
|
188
209
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed");
|
189
210
|
// ContextList::Execute follows semantics of a callback function and does not
|
190
211
|
// take a ref on error
|
@@ -193,7 +214,6 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
193
214
|
cl = nullptr;
|
194
215
|
|
195
216
|
grpc_slice_buffer_destroy_internal(&read_buffer);
|
196
|
-
grpc_chttp2_hpack_parser_destroy(&hpack_parser);
|
197
217
|
grpc_chttp2_goaway_parser_destroy(&goaway_parser);
|
198
218
|
|
199
219
|
for (i = 0; i < STREAM_LIST_COUNT; i++) {
|
@@ -222,6 +242,9 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
222
242
|
|
223
243
|
GRPC_ERROR_UNREF(closed_with_error);
|
224
244
|
gpr_free(ping_acks);
|
245
|
+
if (grpc_core::test_only_destruct_callback != nullptr) {
|
246
|
+
grpc_core::test_only_destruct_callback();
|
247
|
+
}
|
225
248
|
}
|
226
249
|
|
227
250
|
static const grpc_transport_vtable* get_vtable(void);
|
@@ -256,8 +279,7 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
256
279
|
const int value =
|
257
280
|
grpc_channel_arg_get_integer(&channel_args->args[i], options);
|
258
281
|
if (value >= 0) {
|
259
|
-
|
260
|
-
&t->hpack_compressor, static_cast<uint32_t>(value));
|
282
|
+
t->hpack_compressor.SetMaxUsableSize(value);
|
261
283
|
}
|
262
284
|
} else if (0 == strcmp(channel_args->args[i].key,
|
263
285
|
GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA)) {
|
@@ -367,7 +389,9 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
367
389
|
t->channelz_socket =
|
368
390
|
grpc_core::MakeRefCounted<grpc_core::channelz::SocketNode>(
|
369
391
|
std::string(grpc_endpoint_get_local_address(t->ep)), t->peer_string,
|
370
|
-
absl::StrFormat("%s %s", get_vtable()->name, t->peer_string)
|
392
|
+
absl::StrFormat("%s %s", get_vtable()->name, t->peer_string),
|
393
|
+
grpc_core::channelz::SocketNode::Security::GetFromChannelArgs(
|
394
|
+
channel_args));
|
371
395
|
}
|
372
396
|
return enable_bdp;
|
373
397
|
}
|
@@ -448,7 +472,6 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
448
472
|
grpc_slice_buffer_add(&outbuf, grpc_slice_from_copied_string(
|
449
473
|
GRPC_CHTTP2_CLIENT_CONNECT_STRING));
|
450
474
|
}
|
451
|
-
grpc_chttp2_hpack_compressor_init(&hpack_compressor);
|
452
475
|
grpc_slice_buffer_init(&qbuf);
|
453
476
|
// copy in initial settings to all setting sets
|
454
477
|
size_t i;
|
@@ -458,7 +481,6 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
458
481
|
settings[j][i] = grpc_chttp2_settings_parameters[i].default_value;
|
459
482
|
}
|
460
483
|
}
|
461
|
-
grpc_chttp2_hpack_parser_init(&hpack_parser);
|
462
484
|
grpc_chttp2_goaway_parser_init(&goaway_parser);
|
463
485
|
|
464
486
|
// configure http2 the way we like it
|
@@ -505,11 +527,16 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
505
527
|
|
506
528
|
grpc_chttp2_initiate_write(this, GRPC_CHTTP2_INITIATE_WRITE_INITIAL_WRITE);
|
507
529
|
post_benign_reclaimer(this);
|
530
|
+
if (grpc_core::test_only_init_callback != nullptr) {
|
531
|
+
grpc_core::test_only_init_callback();
|
532
|
+
}
|
508
533
|
}
|
509
534
|
|
510
|
-
static void destroy_transport_locked(void* tp,
|
535
|
+
static void destroy_transport_locked(void* tp, grpc_error_handle /*error*/) {
|
511
536
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
512
537
|
t->destroying = 1;
|
538
|
+
grpc_resource_user_shutdown(t->resource_user);
|
539
|
+
grpc_resource_user_unref(t->resource_user);
|
513
540
|
close_transport_locked(
|
514
541
|
t, grpc_error_set_int(
|
515
542
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed"),
|
@@ -525,7 +552,7 @@ static void destroy_transport(grpc_transport* gt) {
|
|
525
552
|
}
|
526
553
|
|
527
554
|
static void close_transport_locked(grpc_chttp2_transport* t,
|
528
|
-
|
555
|
+
grpc_error_handle error) {
|
529
556
|
end_all_the_calls(t, GRPC_ERROR_REF(error));
|
530
557
|
cancel_pings(t, GRPC_ERROR_REF(error));
|
531
558
|
if (t->closed_with_error == GRPC_ERROR_NONE) {
|
@@ -534,7 +561,7 @@ static void close_transport_locked(grpc_chttp2_transport* t,
|
|
534
561
|
GRPC_STATUS_UNAVAILABLE);
|
535
562
|
}
|
536
563
|
if (t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE) {
|
537
|
-
if (t->close_transport_on_writes_finished ==
|
564
|
+
if (t->close_transport_on_writes_finished == GRPC_ERROR_NONE) {
|
538
565
|
t->close_transport_on_writes_finished =
|
539
566
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
540
567
|
"Delayed close due to in-progress write");
|
@@ -580,6 +607,11 @@ static void close_transport_locked(grpc_chttp2_transport* t,
|
|
580
607
|
GRPC_ERROR_REF(error));
|
581
608
|
t->notify_on_receive_settings = nullptr;
|
582
609
|
}
|
610
|
+
if (t->notify_on_close != nullptr) {
|
611
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, t->notify_on_close,
|
612
|
+
GRPC_ERROR_REF(error));
|
613
|
+
t->notify_on_close = nullptr;
|
614
|
+
}
|
583
615
|
GRPC_ERROR_UNREF(error);
|
584
616
|
}
|
585
617
|
|
@@ -614,10 +646,10 @@ grpc_chttp2_stream::grpc_chttp2_stream(grpc_chttp2_transport* t,
|
|
614
646
|
: t(t),
|
615
647
|
refcount(refcount),
|
616
648
|
reffer(this),
|
617
|
-
|
618
|
-
|
649
|
+
initial_metadata_buffer(arena),
|
650
|
+
trailing_metadata_buffer(arena) {
|
619
651
|
if (server_data) {
|
620
|
-
id = static_cast<uint32_t>((
|
652
|
+
id = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(server_data));
|
621
653
|
*t->accepting_stream = this;
|
622
654
|
grpc_chttp2_stream_map_add(&t->stream_map, id, this);
|
623
655
|
post_destructive_reclaimer(t);
|
@@ -679,13 +711,10 @@ grpc_chttp2_stream::~grpc_chttp2_stream() {
|
|
679
711
|
GRPC_ERROR_UNREF(read_closed_error);
|
680
712
|
GRPC_ERROR_UNREF(write_closed_error);
|
681
713
|
GRPC_ERROR_UNREF(byte_stream_error);
|
682
|
-
|
683
714
|
flow_control.Destroy();
|
684
|
-
|
685
|
-
if (t->resource_user != nullptr) {
|
715
|
+
if (!t->is_client) {
|
686
716
|
grpc_resource_user_free(t->resource_user, GRPC_RESOURCE_QUOTA_CALL_SIZE);
|
687
717
|
}
|
688
|
-
|
689
718
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "stream");
|
690
719
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, destroy_stream_arg, GRPC_ERROR_NONE);
|
691
720
|
}
|
@@ -699,7 +728,7 @@ static int init_stream(grpc_transport* gt, grpc_stream* gs,
|
|
699
728
|
return 0;
|
700
729
|
}
|
701
730
|
|
702
|
-
static void destroy_stream_locked(void* sp,
|
731
|
+
static void destroy_stream_locked(void* sp, grpc_error_handle /*error*/) {
|
703
732
|
GPR_TIMER_SCOPE("destroy_stream", 0);
|
704
733
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(sp);
|
705
734
|
s->~grpc_chttp2_stream();
|
@@ -737,10 +766,10 @@ grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(grpc_chttp2_transport* t,
|
|
737
766
|
// Don't accept the stream if memory quota doesn't allow. Note that we should
|
738
767
|
// simply refuse the stream here instead of canceling the stream after it's
|
739
768
|
// accepted since the latter will create the call which costs much memory.
|
740
|
-
|
741
|
-
|
769
|
+
GPR_ASSERT(t->resource_user != nullptr);
|
770
|
+
if (!grpc_resource_user_safe_alloc(t->resource_user,
|
742
771
|
GRPC_RESOURCE_QUOTA_CALL_SIZE)) {
|
743
|
-
gpr_log(
|
772
|
+
gpr_log(GPR_INFO, "Memory exhausted, rejecting the stream.");
|
744
773
|
grpc_chttp2_add_rst_stream_to_next_write(t, id, GRPC_HTTP2_REFUSED_STREAM,
|
745
774
|
nullptr);
|
746
775
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_RST_STREAM);
|
@@ -750,7 +779,7 @@ grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(grpc_chttp2_transport* t,
|
|
750
779
|
GPR_ASSERT(t->accepting_stream == nullptr);
|
751
780
|
t->accepting_stream = &accepting;
|
752
781
|
t->accept_stream_cb(t->accept_stream_cb_user_data, &t->base,
|
753
|
-
|
782
|
+
reinterpret_cast<void*>(id));
|
754
783
|
t->accepting_stream = nullptr;
|
755
784
|
return accepting;
|
756
785
|
}
|
@@ -786,9 +815,9 @@ static void set_write_state(grpc_chttp2_transport* t,
|
|
786
815
|
// from peer while we had some pending writes)
|
787
816
|
if (st == GRPC_CHTTP2_WRITE_STATE_IDLE) {
|
788
817
|
grpc_core::ExecCtx::RunList(DEBUG_LOCATION, &t->run_after_write);
|
789
|
-
if (t->close_transport_on_writes_finished !=
|
790
|
-
|
791
|
-
t->close_transport_on_writes_finished =
|
818
|
+
if (t->close_transport_on_writes_finished != GRPC_ERROR_NONE) {
|
819
|
+
grpc_error_handle err = t->close_transport_on_writes_finished;
|
820
|
+
t->close_transport_on_writes_finished = GRPC_ERROR_NONE;
|
792
821
|
close_transport_locked(t, err);
|
793
822
|
}
|
794
823
|
}
|
@@ -919,7 +948,8 @@ static const char* begin_writing_desc(bool partial) {
|
|
919
948
|
}
|
920
949
|
}
|
921
950
|
|
922
|
-
static void write_action_begin_locked(void* gt,
|
951
|
+
static void write_action_begin_locked(void* gt,
|
952
|
+
grpc_error_handle /*error_ignored*/) {
|
923
953
|
GPR_TIMER_SCOPE("write_action_begin_locked", 0);
|
924
954
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
925
955
|
GPR_ASSERT(t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE);
|
@@ -958,7 +988,7 @@ static void write_action_begin_locked(void* gt, grpc_error* /*error_ignored*/) {
|
|
958
988
|
}
|
959
989
|
}
|
960
990
|
|
961
|
-
static void write_action(void* gt,
|
991
|
+
static void write_action(void* gt, grpc_error_handle /*error*/) {
|
962
992
|
GPR_TIMER_SCOPE("write_action", 0);
|
963
993
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
964
994
|
void* cl = t->cl;
|
@@ -970,7 +1000,7 @@ static void write_action(void* gt, grpc_error* /*error*/) {
|
|
970
1000
|
cl);
|
971
1001
|
}
|
972
1002
|
|
973
|
-
static void write_action_end(void* tp,
|
1003
|
+
static void write_action_end(void* tp, grpc_error_handle error) {
|
974
1004
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
975
1005
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->write_action_end_locked,
|
976
1006
|
write_action_end_locked, t, nullptr),
|
@@ -979,7 +1009,7 @@ static void write_action_end(void* tp, grpc_error* error) {
|
|
979
1009
|
|
980
1010
|
// Callback from the grpc_endpoint after bytes have been written by calling
|
981
1011
|
// sendmsg
|
982
|
-
static void write_action_end_locked(void* tp,
|
1012
|
+
static void write_action_end_locked(void* tp, grpc_error_handle error) {
|
983
1013
|
GPR_TIMER_SCOPE("terminate_writing_with_lock", 0);
|
984
1014
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
985
1015
|
|
@@ -1034,7 +1064,7 @@ static void queue_setting_update(grpc_chttp2_transport* t,
|
|
1034
1064
|
grpc_chttp2_setting_id id, uint32_t value) {
|
1035
1065
|
const grpc_chttp2_setting_parameters* sp =
|
1036
1066
|
&grpc_chttp2_settings_parameters[id];
|
1037
|
-
uint32_t use_value =
|
1067
|
+
uint32_t use_value = grpc_core::Clamp(value, sp->min_value, sp->max_value);
|
1038
1068
|
if (use_value != value) {
|
1039
1069
|
gpr_log(GPR_INFO, "Requested parameter %s clamped from %d to %d", sp->name,
|
1040
1070
|
value, use_value);
|
@@ -1048,7 +1078,7 @@ static void queue_setting_update(grpc_chttp2_transport* t,
|
|
1048
1078
|
void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
1049
1079
|
uint32_t goaway_error,
|
1050
1080
|
uint32_t last_stream_id,
|
1051
|
-
|
1081
|
+
absl::string_view goaway_text) {
|
1052
1082
|
// Discard the error from a previous goaway frame (if any)
|
1053
1083
|
if (t->goaway_error != GRPC_ERROR_NONE) {
|
1054
1084
|
GRPC_ERROR_UNREF(t->goaway_error);
|
@@ -1068,7 +1098,7 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1068
1098
|
// received a GOAWAY with a non NO_ERROR code.
|
1069
1099
|
if (goaway_error != GRPC_HTTP2_NO_ERROR) {
|
1070
1100
|
gpr_log(GPR_INFO, "%s: Got goaway [%d] err=%s", t->peer_string.c_str(),
|
1071
|
-
goaway_error,
|
1101
|
+
goaway_error, grpc_error_std_string(t->goaway_error).c_str());
|
1072
1102
|
}
|
1073
1103
|
absl::Status status = grpc_error_to_absl_status(t->goaway_error);
|
1074
1104
|
// When a client receives a GOAWAY with error code ENHANCE_YOUR_CALM and debug
|
@@ -1077,7 +1107,7 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1077
1107
|
// for new connections on that channel.
|
1078
1108
|
if (GPR_UNLIKELY(t->is_client &&
|
1079
1109
|
goaway_error == GRPC_HTTP2_ENHANCE_YOUR_CALM &&
|
1080
|
-
|
1110
|
+
goaway_text == "too_many_pings")) {
|
1081
1111
|
gpr_log(GPR_ERROR,
|
1082
1112
|
"Received a GOAWAY with error code ENHANCE_YOUR_CALM and debug "
|
1083
1113
|
"data equal to \"too_many_pings\"");
|
@@ -1174,7 +1204,8 @@ static void null_then_sched_closure(grpc_closure** closure) {
|
|
1174
1204
|
void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
1175
1205
|
grpc_chttp2_stream* /*s*/,
|
1176
1206
|
grpc_closure** pclosure,
|
1177
|
-
|
1207
|
+
grpc_error_handle error,
|
1208
|
+
const char* desc) {
|
1178
1209
|
grpc_closure* closure = *pclosure;
|
1179
1210
|
*pclosure = nullptr;
|
1180
1211
|
if (closure == nullptr) {
|
@@ -1183,7 +1214,6 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1183
1214
|
}
|
1184
1215
|
closure->next_data.scratch -= CLOSURE_BARRIER_FIRST_REF_BIT;
|
1185
1216
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1186
|
-
const char* errstr = grpc_error_string(error);
|
1187
1217
|
gpr_log(
|
1188
1218
|
GPR_INFO,
|
1189
1219
|
"complete_closure_step: t=%p %p refs=%d flags=0x%04x desc=%s err=%s "
|
@@ -1193,15 +1223,16 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1193
1223
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1194
1224
|
static_cast<int>(closure->next_data.scratch %
|
1195
1225
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1196
|
-
desc,
|
1226
|
+
desc, grpc_error_std_string(error).c_str(),
|
1227
|
+
write_state_name(t->write_state));
|
1197
1228
|
}
|
1198
1229
|
if (error != GRPC_ERROR_NONE) {
|
1199
1230
|
if (closure->error_data.error == GRPC_ERROR_NONE) {
|
1200
1231
|
closure->error_data.error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1201
1232
|
"Error in HTTP transport completing operation");
|
1202
|
-
closure->error_data.error =
|
1203
|
-
closure->error_data.error,
|
1204
|
-
|
1233
|
+
closure->error_data.error =
|
1234
|
+
grpc_error_set_str(closure->error_data.error,
|
1235
|
+
GRPC_ERROR_STR_TARGET_ADDRESS, t->peer_string);
|
1205
1236
|
}
|
1206
1237
|
closure->error_data.error =
|
1207
1238
|
grpc_error_add_child(closure->error_data.error, error);
|
@@ -1221,9 +1252,10 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1221
1252
|
}
|
1222
1253
|
|
1223
1254
|
static bool contains_non_ok_status(grpc_metadata_batch* batch) {
|
1224
|
-
if (batch->
|
1225
|
-
return !grpc_mdelem_static_value_eq(
|
1226
|
-
|
1255
|
+
if (batch->legacy_index()->named.grpc_status != nullptr) {
|
1256
|
+
return !grpc_mdelem_static_value_eq(
|
1257
|
+
batch->legacy_index()->named.grpc_status->md,
|
1258
|
+
GRPC_MDELEM_GRPC_STATUS_0);
|
1227
1259
|
}
|
1228
1260
|
return false;
|
1229
1261
|
}
|
@@ -1251,7 +1283,6 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1251
1283
|
if (s->fetching_send_message == nullptr) {
|
1252
1284
|
// Stream was cancelled before message fetch completed
|
1253
1285
|
abort(); /* TODO(ctiller): what cleanup here? */
|
1254
|
-
return; /* early out */
|
1255
1286
|
}
|
1256
1287
|
if (s->fetched_send_message_length == s->fetching_send_message->length()) {
|
1257
1288
|
int64_t notify_offset = s->next_message_end_offset;
|
@@ -1282,7 +1313,8 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1282
1313
|
UINT32_MAX, GRPC_CLOSURE_INIT(&s->complete_fetch_locked,
|
1283
1314
|
::complete_fetch, s,
|
1284
1315
|
grpc_schedule_on_exec_ctx))) {
|
1285
|
-
|
1316
|
+
grpc_error_handle error =
|
1317
|
+
s->fetching_send_message->Pull(&s->fetching_slice);
|
1286
1318
|
if (error != GRPC_ERROR_NONE) {
|
1287
1319
|
s->fetching_send_message.reset();
|
1288
1320
|
grpc_chttp2_cancel_stream(t, s, error);
|
@@ -1293,14 +1325,14 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1293
1325
|
}
|
1294
1326
|
}
|
1295
1327
|
|
1296
|
-
static void complete_fetch(void* gs,
|
1328
|
+
static void complete_fetch(void* gs, grpc_error_handle error) {
|
1297
1329
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(gs);
|
1298
1330
|
s->t->combiner->Run(GRPC_CLOSURE_INIT(&s->complete_fetch_locked,
|
1299
1331
|
::complete_fetch_locked, s, nullptr),
|
1300
1332
|
GRPC_ERROR_REF(error));
|
1301
1333
|
}
|
1302
1334
|
|
1303
|
-
static void complete_fetch_locked(void* gs,
|
1335
|
+
static void complete_fetch_locked(void* gs, grpc_error_handle error) {
|
1304
1336
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(gs);
|
1305
1337
|
grpc_chttp2_transport* t = s->t;
|
1306
1338
|
if (error == GRPC_ERROR_NONE) {
|
@@ -1318,19 +1350,18 @@ static void complete_fetch_locked(void* gs, grpc_error* error) {
|
|
1318
1350
|
|
1319
1351
|
static void log_metadata(const grpc_metadata_batch* md_batch, uint32_t id,
|
1320
1352
|
bool is_client, bool is_initial) {
|
1321
|
-
|
1322
|
-
|
1323
|
-
char*
|
1324
|
-
char* value = grpc_slice_to_c_string(GRPC_MDVALUE(md->md));
|
1353
|
+
md_batch->ForEach([=](grpc_mdelem md) {
|
1354
|
+
char* key = grpc_slice_to_c_string(GRPC_MDKEY(md));
|
1355
|
+
char* value = grpc_slice_to_c_string(GRPC_MDVALUE(md));
|
1325
1356
|
gpr_log(GPR_INFO, "HTTP:%d:%s:%s: %s: %s", id, is_initial ? "HDR" : "TRL",
|
1326
1357
|
is_client ? "CLI" : "SVR", key, value);
|
1327
1358
|
gpr_free(key);
|
1328
1359
|
gpr_free(value);
|
1329
|
-
}
|
1360
|
+
});
|
1330
1361
|
}
|
1331
1362
|
|
1332
1363
|
static void perform_stream_op_locked(void* stream_op,
|
1333
|
-
|
1364
|
+
grpc_error_handle /*error_ignored*/) {
|
1334
1365
|
GPR_TIMER_SCOPE("perform_stream_op_locked", 0);
|
1335
1366
|
|
1336
1367
|
grpc_transport_stream_op_batch* op =
|
@@ -1380,12 +1411,13 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1380
1411
|
on_complete->next_data.scratch |= CLOSURE_BARRIER_MAY_COVER_WRITE;
|
1381
1412
|
|
1382
1413
|
// Identify stream compression
|
1383
|
-
if (op_payload->send_initial_metadata.send_initial_metadata->
|
1384
|
-
.content_encoding == nullptr ||
|
1414
|
+
if (op_payload->send_initial_metadata.send_initial_metadata->legacy_index()
|
1415
|
+
->named.content_encoding == nullptr ||
|
1385
1416
|
grpc_stream_compression_method_parse(
|
1386
1417
|
GRPC_MDVALUE(
|
1387
|
-
op_payload->send_initial_metadata.send_initial_metadata
|
1388
|
-
|
1418
|
+
op_payload->send_initial_metadata.send_initial_metadata
|
1419
|
+
->legacy_index()
|
1420
|
+
->named.content_encoding->md),
|
1389
1421
|
true, &s->stream_compression_method) == 0) {
|
1390
1422
|
s->stream_compression_method = GRPC_STREAM_COMPRESSION_IDENTITY_COMPRESS;
|
1391
1423
|
}
|
@@ -1399,7 +1431,10 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1399
1431
|
s->send_initial_metadata =
|
1400
1432
|
op_payload->send_initial_metadata.send_initial_metadata;
|
1401
1433
|
if (t->is_client) {
|
1402
|
-
s->deadline =
|
1434
|
+
s->deadline = std::min(
|
1435
|
+
s->deadline,
|
1436
|
+
s->send_initial_metadata->get(grpc_core::GrpcTimeoutMetadata())
|
1437
|
+
.value_or(GRPC_MILLIS_INF_FUTURE));
|
1403
1438
|
}
|
1404
1439
|
if (contains_non_ok_status(s->send_initial_metadata)) {
|
1405
1440
|
s->seen_error = true;
|
@@ -1505,8 +1540,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1505
1540
|
s->sent_trailing_metadata_op = nullptr;
|
1506
1541
|
grpc_chttp2_complete_closure_step(
|
1507
1542
|
t, s, &s->send_trailing_metadata_finished,
|
1508
|
-
|
1509
|
-
op->payload->send_trailing_metadata.send_trailing_metadata)
|
1543
|
+
op->payload->send_trailing_metadata.send_trailing_metadata->empty()
|
1510
1544
|
? GRPC_ERROR_NONE
|
1511
1545
|
: GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
1512
1546
|
"Attempt to send trailing metadata after "
|
@@ -1544,6 +1578,8 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1544
1578
|
GPR_ASSERT(!s->pending_byte_stream);
|
1545
1579
|
s->recv_message_ready = op_payload->recv_message.recv_message_ready;
|
1546
1580
|
s->recv_message = op_payload->recv_message.recv_message;
|
1581
|
+
s->call_failed_before_recv_message =
|
1582
|
+
op_payload->recv_message.call_failed_before_recv_message;
|
1547
1583
|
if (s->id != 0) {
|
1548
1584
|
if (!s->read_closed) {
|
1549
1585
|
before = s->frame_storage.length +
|
@@ -1553,8 +1589,7 @@ static void perform_stream_op_locked(void* stream_op,
|
|
1553
1589
|
grpc_chttp2_maybe_complete_recv_message(t, s);
|
1554
1590
|
if (s->id != 0) {
|
1555
1591
|
if (!s->read_closed && s->frame_storage.length == 0) {
|
1556
|
-
size_t after = s->
|
1557
|
-
s->unprocessed_incoming_frames_buffer_cached_length;
|
1592
|
+
size_t after = s->unprocessed_incoming_frames_buffer_cached_length;
|
1558
1593
|
s->flow_control->IncomingByteStreamUpdate(GRPC_HEADER_SIZE_IN_BYTES,
|
1559
1594
|
before - after);
|
1560
1595
|
grpc_chttp2_act_on_flowctl_action(s->flow_control->MakeAction(), t, s);
|
@@ -1591,14 +1626,14 @@ static void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1591
1626
|
|
1592
1627
|
if (!t->is_client) {
|
1593
1628
|
if (op->send_initial_metadata) {
|
1594
|
-
|
1595
|
-
|
1596
|
-
|
1629
|
+
GPR_ASSERT(!op->payload->send_initial_metadata.send_initial_metadata
|
1630
|
+
->get(grpc_core::GrpcTimeoutMetadata())
|
1631
|
+
.has_value());
|
1597
1632
|
}
|
1598
1633
|
if (op->send_trailing_metadata) {
|
1599
|
-
|
1600
|
-
|
1601
|
-
|
1634
|
+
GPR_ASSERT(!op->payload->send_trailing_metadata.send_trailing_metadata
|
1635
|
+
->get(grpc_core::GrpcTimeoutMetadata())
|
1636
|
+
.has_value());
|
1602
1637
|
}
|
1603
1638
|
}
|
1604
1639
|
|
@@ -1614,7 +1649,7 @@ static void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1614
1649
|
GRPC_ERROR_NONE);
|
1615
1650
|
}
|
1616
1651
|
|
1617
|
-
static void cancel_pings(grpc_chttp2_transport* t,
|
1652
|
+
static void cancel_pings(grpc_chttp2_transport* t, grpc_error_handle error) {
|
1618
1653
|
// callback remaining pings: they're not allowed to call into the transport,
|
1619
1654
|
// and maybe they hold resources that need to be freed
|
1620
1655
|
grpc_chttp2_ping_queue* pq = &t->ping_queue;
|
@@ -1681,14 +1716,14 @@ static void send_keepalive_ping_locked(grpc_chttp2_transport* t) {
|
|
1681
1716
|
GRPC_ERROR_NONE);
|
1682
1717
|
}
|
1683
1718
|
|
1684
|
-
void grpc_chttp2_retry_initiate_ping(void* tp,
|
1719
|
+
void grpc_chttp2_retry_initiate_ping(void* tp, grpc_error_handle error) {
|
1685
1720
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1686
1721
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->retry_initiate_ping_locked,
|
1687
1722
|
retry_initiate_ping_locked, t, nullptr),
|
1688
1723
|
GRPC_ERROR_REF(error));
|
1689
1724
|
}
|
1690
1725
|
|
1691
|
-
static void retry_initiate_ping_locked(void* tp,
|
1726
|
+
static void retry_initiate_ping_locked(void* tp, grpc_error_handle error) {
|
1692
1727
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1693
1728
|
t->ping_state.is_delayed_ping_timer_set = false;
|
1694
1729
|
if (error == GRPC_ERROR_NONE) {
|
@@ -1711,18 +1746,18 @@ void grpc_chttp2_ack_ping(grpc_chttp2_transport* t, uint64_t id) {
|
|
1711
1746
|
}
|
1712
1747
|
}
|
1713
1748
|
|
1714
|
-
static void send_goaway(grpc_chttp2_transport* t,
|
1749
|
+
static void send_goaway(grpc_chttp2_transport* t, grpc_error_handle error) {
|
1715
1750
|
// We want to log this irrespective of whether http tracing is enabled
|
1716
|
-
gpr_log(
|
1717
|
-
|
1751
|
+
gpr_log(GPR_DEBUG, "%s: Sending goaway err=%s", t->peer_string.c_str(),
|
1752
|
+
grpc_error_std_string(error).c_str());
|
1718
1753
|
t->sent_goaway_state = GRPC_CHTTP2_GOAWAY_SEND_SCHEDULED;
|
1719
1754
|
grpc_http2_error_code http_error;
|
1720
|
-
|
1721
|
-
grpc_error_get_status(error, GRPC_MILLIS_INF_FUTURE, nullptr, &
|
1755
|
+
std::string message;
|
1756
|
+
grpc_error_get_status(error, GRPC_MILLIS_INF_FUTURE, nullptr, &message,
|
1722
1757
|
&http_error, nullptr);
|
1723
|
-
grpc_chttp2_goaway_append(
|
1724
|
-
|
1725
|
-
|
1758
|
+
grpc_chttp2_goaway_append(
|
1759
|
+
t->last_new_stream_id, static_cast<uint32_t>(http_error),
|
1760
|
+
grpc_slice_from_cpp_string(std::move(message)), &t->qbuf);
|
1726
1761
|
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_GOAWAY_SENT);
|
1727
1762
|
GRPC_ERROR_UNREF(error);
|
1728
1763
|
}
|
@@ -1752,12 +1787,12 @@ void grpc_chttp2_reset_ping_clock(grpc_chttp2_transport* t) {
|
|
1752
1787
|
}
|
1753
1788
|
|
1754
1789
|
static void perform_transport_op_locked(void* stream_op,
|
1755
|
-
|
1790
|
+
grpc_error_handle /*error_ignored*/) {
|
1756
1791
|
grpc_transport_op* op = static_cast<grpc_transport_op*>(stream_op);
|
1757
1792
|
grpc_chttp2_transport* t =
|
1758
1793
|
static_cast<grpc_chttp2_transport*>(op->handler_private.extra_arg);
|
1759
1794
|
|
1760
|
-
if (op->goaway_error) {
|
1795
|
+
if (op->goaway_error != GRPC_ERROR_NONE) {
|
1761
1796
|
send_goaway(t, op->goaway_error);
|
1762
1797
|
}
|
1763
1798
|
|
@@ -1824,15 +1859,14 @@ void grpc_chttp2_maybe_complete_recv_initial_metadata(
|
|
1824
1859
|
&s->unprocessed_incoming_frames_buffer);
|
1825
1860
|
}
|
1826
1861
|
}
|
1827
|
-
|
1828
|
-
s->recv_initial_metadata);
|
1862
|
+
*s->recv_initial_metadata = std::move(s->initial_metadata_buffer);
|
1829
1863
|
null_then_sched_closure(&s->recv_initial_metadata_ready);
|
1830
1864
|
}
|
1831
1865
|
}
|
1832
1866
|
|
1833
1867
|
void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* /*t*/,
|
1834
1868
|
grpc_chttp2_stream* s) {
|
1835
|
-
|
1869
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
1836
1870
|
if (s->recv_message_ready != nullptr) {
|
1837
1871
|
*s->recv_message = nullptr;
|
1838
1872
|
if (s->final_metadata_requested && s->seen_error) {
|
@@ -1909,6 +1943,10 @@ void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* /*t*/,
|
|
1909
1943
|
null_then_sched_closure(&s->recv_message_ready);
|
1910
1944
|
} else if (s->published_metadata[1] != GRPC_METADATA_NOT_PUBLISHED) {
|
1911
1945
|
*s->recv_message = nullptr;
|
1946
|
+
if (s->call_failed_before_recv_message != nullptr) {
|
1947
|
+
*s->call_failed_before_recv_message =
|
1948
|
+
(s->published_metadata[1] != GRPC_METADATA_PUBLISHED_AT_CLOSE);
|
1949
|
+
}
|
1912
1950
|
null_then_sched_closure(&s->recv_message_ready);
|
1913
1951
|
}
|
1914
1952
|
GRPC_ERROR_UNREF(error);
|
@@ -1937,7 +1975,8 @@ void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
|
|
1937
1975
|
GRPC_STREAM_COMPRESSION_IDENTITY_DECOMPRESS) {
|
1938
1976
|
grpc_slice_buffer_move_first(
|
1939
1977
|
&s->frame_storage,
|
1940
|
-
|
1978
|
+
std::min(s->frame_storage.length,
|
1979
|
+
size_t(GRPC_HEADER_SIZE_IN_BYTES)),
|
1941
1980
|
&s->unprocessed_incoming_frames_buffer);
|
1942
1981
|
if (s->unprocessed_incoming_frames_buffer.length > 0) {
|
1943
1982
|
s->unprocessed_incoming_frames_decompressed = true;
|
@@ -1974,15 +2013,14 @@ void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
|
|
1974
2013
|
s->recv_trailing_metadata_finished != nullptr) {
|
1975
2014
|
grpc_transport_move_stats(&s->stats, s->collecting_stats);
|
1976
2015
|
s->collecting_stats = nullptr;
|
1977
|
-
|
1978
|
-
s->recv_trailing_metadata);
|
2016
|
+
*s->recv_trailing_metadata = std::move(s->trailing_metadata_buffer);
|
1979
2017
|
null_then_sched_closure(&s->recv_trailing_metadata_finished);
|
1980
2018
|
}
|
1981
2019
|
}
|
1982
2020
|
}
|
1983
2021
|
|
1984
2022
|
static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
1985
|
-
|
2023
|
+
grpc_error_handle error) {
|
1986
2024
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(
|
1987
2025
|
grpc_chttp2_stream_map_delete(&t->stream_map, id));
|
1988
2026
|
GPR_DEBUG_ASSERT(s);
|
@@ -2025,7 +2063,7 @@ static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
|
2025
2063
|
}
|
2026
2064
|
|
2027
2065
|
void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2028
|
-
|
2066
|
+
grpc_error_handle due_to_error) {
|
2029
2067
|
if (!t->is_client && !s->sent_trailing_metadata &&
|
2030
2068
|
grpc_error_has_clear_grpc_status(due_to_error)) {
|
2031
2069
|
close_from_api(t, s, due_to_error);
|
@@ -2049,10 +2087,11 @@ void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2049
2087
|
}
|
2050
2088
|
|
2051
2089
|
void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2052
|
-
|
2090
|
+
grpc_error_handle error) {
|
2053
2091
|
grpc_status_code status;
|
2054
|
-
|
2055
|
-
grpc_error_get_status(error, s->deadline, &status, &
|
2092
|
+
std::string message;
|
2093
|
+
grpc_error_get_status(error, s->deadline, &status, &message, nullptr,
|
2094
|
+
nullptr);
|
2056
2095
|
if (status != GRPC_STATUS_OK) {
|
2057
2096
|
s->seen_error = true;
|
2058
2097
|
}
|
@@ -2067,17 +2106,14 @@ void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2067
2106
|
char status_string[GPR_LTOA_MIN_BUFSIZE];
|
2068
2107
|
gpr_ltoa(status, status_string);
|
2069
2108
|
GRPC_LOG_IF_ERROR("add_status",
|
2070
|
-
|
2071
|
-
|
2072
|
-
|
2073
|
-
|
2074
|
-
|
2075
|
-
|
2076
|
-
|
2077
|
-
|
2078
|
-
grpc_chttp2_incoming_metadata_buffer_replace_or_add(
|
2079
|
-
&s->metadata_buffer[1],
|
2080
|
-
grpc_mdelem_create(GRPC_MDSTR_GRPC_MESSAGE, slice, nullptr)));
|
2109
|
+
s->trailing_metadata_buffer.ReplaceOrAppend(
|
2110
|
+
GRPC_MDSTR_GRPC_STATUS,
|
2111
|
+
grpc_core::UnmanagedMemorySlice(status_string)));
|
2112
|
+
if (!message.empty()) {
|
2113
|
+
grpc_slice message_slice = grpc_slice_from_cpp_string(std::move(message));
|
2114
|
+
GRPC_LOG_IF_ERROR("add_status_message",
|
2115
|
+
s->trailing_metadata_buffer.ReplaceOrAppend(
|
2116
|
+
GRPC_MDSTR_GRPC_MESSAGE, message_slice));
|
2081
2117
|
}
|
2082
2118
|
s->published_metadata[1] = GRPC_METADATA_SYNTHESIZED_FROM_FAKE;
|
2083
2119
|
grpc_chttp2_maybe_complete_recv_trailing_metadata(t, s);
|
@@ -2086,7 +2122,8 @@ void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2086
2122
|
GRPC_ERROR_UNREF(error);
|
2087
2123
|
}
|
2088
2124
|
|
2089
|
-
static void add_error(
|
2125
|
+
static void add_error(grpc_error_handle error, grpc_error_handle* refs,
|
2126
|
+
size_t* nrefs) {
|
2090
2127
|
if (error == GRPC_ERROR_NONE) return;
|
2091
2128
|
for (size_t i = 0; i < *nrefs; i++) {
|
2092
2129
|
if (error == refs[i]) {
|
@@ -2097,16 +2134,17 @@ static void add_error(grpc_error* error, grpc_error** refs, size_t* nrefs) {
|
|
2097
2134
|
++*nrefs;
|
2098
2135
|
}
|
2099
2136
|
|
2100
|
-
static
|
2101
|
-
|
2102
|
-
|
2137
|
+
static grpc_error_handle removal_error(grpc_error_handle extra_error,
|
2138
|
+
grpc_chttp2_stream* s,
|
2139
|
+
const char* main_error_msg) {
|
2140
|
+
grpc_error_handle refs[3];
|
2103
2141
|
size_t nrefs = 0;
|
2104
2142
|
add_error(s->read_closed_error, refs, &nrefs);
|
2105
2143
|
add_error(s->write_closed_error, refs, &nrefs);
|
2106
2144
|
add_error(extra_error, refs, &nrefs);
|
2107
|
-
|
2145
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
2108
2146
|
if (nrefs > 0) {
|
2109
|
-
error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
2147
|
+
error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(main_error_msg,
|
2110
2148
|
refs, nrefs);
|
2111
2149
|
}
|
2112
2150
|
GRPC_ERROR_UNREF(extra_error);
|
@@ -2114,7 +2152,8 @@ static grpc_error* removal_error(grpc_error* extra_error, grpc_chttp2_stream* s,
|
|
2114
2152
|
}
|
2115
2153
|
|
2116
2154
|
static void flush_write_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2117
|
-
grpc_chttp2_write_cb** list,
|
2155
|
+
grpc_chttp2_write_cb** list,
|
2156
|
+
grpc_error_handle error) {
|
2118
2157
|
while (*list) {
|
2119
2158
|
grpc_chttp2_write_cb* cb = *list;
|
2120
2159
|
*list = cb->next;
|
@@ -2127,7 +2166,8 @@ static void flush_write_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2127
2166
|
}
|
2128
2167
|
|
2129
2168
|
void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
2130
|
-
grpc_chttp2_stream* s,
|
2169
|
+
grpc_chttp2_stream* s,
|
2170
|
+
grpc_error_handle error) {
|
2131
2171
|
error =
|
2132
2172
|
removal_error(error, s, "Pending writes failed due to stream closure");
|
2133
2173
|
s->send_initial_metadata = nullptr;
|
@@ -2151,10 +2191,10 @@ void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
|
2151
2191
|
|
2152
2192
|
void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
2153
2193
|
grpc_chttp2_stream* s, int close_reads,
|
2154
|
-
int close_writes,
|
2194
|
+
int close_writes, grpc_error_handle error) {
|
2155
2195
|
if (s->read_closed && s->write_closed) {
|
2156
2196
|
// already closed, but we should still fake the status if needed.
|
2157
|
-
|
2197
|
+
grpc_error_handle overall_error = removal_error(error, s, "Stream removed");
|
2158
2198
|
if (overall_error != GRPC_ERROR_NONE) {
|
2159
2199
|
grpc_chttp2_fake_status(t, s, overall_error);
|
2160
2200
|
}
|
@@ -2175,7 +2215,7 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2175
2215
|
}
|
2176
2216
|
if (s->read_closed && s->write_closed) {
|
2177
2217
|
became_closed = true;
|
2178
|
-
|
2218
|
+
grpc_error_handle overall_error =
|
2179
2219
|
removal_error(GRPC_ERROR_REF(error), s, "Stream removed");
|
2180
2220
|
if (s->id != 0) {
|
2181
2221
|
remove_stream(t, s->id, GRPC_ERROR_REF(overall_error));
|
@@ -2204,7 +2244,7 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2204
2244
|
}
|
2205
2245
|
|
2206
2246
|
static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2207
|
-
|
2247
|
+
grpc_error_handle error) {
|
2208
2248
|
grpc_slice hdr;
|
2209
2249
|
grpc_slice status_hdr;
|
2210
2250
|
grpc_slice http_status_hdr;
|
@@ -2213,8 +2253,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2213
2253
|
uint8_t* p;
|
2214
2254
|
uint32_t len = 0;
|
2215
2255
|
grpc_status_code grpc_status;
|
2216
|
-
|
2217
|
-
grpc_error_get_status(error, s->deadline, &grpc_status, &
|
2256
|
+
std::string message;
|
2257
|
+
grpc_error_get_status(error, s->deadline, &grpc_status, &message, nullptr,
|
2218
2258
|
nullptr);
|
2219
2259
|
|
2220
2260
|
GPR_ASSERT(grpc_status >= 0 && (int)grpc_status < 100);
|
@@ -2307,10 +2347,10 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2307
2347
|
GPR_ASSERT(p == GRPC_SLICE_END_PTR(status_hdr));
|
2308
2348
|
len += static_cast<uint32_t> GRPC_SLICE_LENGTH(status_hdr);
|
2309
2349
|
|
2310
|
-
size_t msg_len =
|
2350
|
+
size_t msg_len = message.length();
|
2311
2351
|
GPR_ASSERT(msg_len <= UINT32_MAX);
|
2312
|
-
|
2313
|
-
message_pfx = GRPC_SLICE_MALLOC(14 +
|
2352
|
+
grpc_core::VarintWriter<1> msg_len_writer(msg_len);
|
2353
|
+
message_pfx = GRPC_SLICE_MALLOC(14 + msg_len_writer.length());
|
2314
2354
|
p = GRPC_SLICE_START_PTR(message_pfx);
|
2315
2355
|
*p++ = 0x00; /* literal header, not indexed */
|
2316
2356
|
*p++ = 12; /* len(grpc-message) */
|
@@ -2326,8 +2366,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2326
2366
|
*p++ = 'a';
|
2327
2367
|
*p++ = 'g';
|
2328
2368
|
*p++ = 'e';
|
2329
|
-
|
2330
|
-
p +=
|
2369
|
+
msg_len_writer.Write(0, p);
|
2370
|
+
p += msg_len_writer.length();
|
2331
2371
|
GPR_ASSERT(p == GRPC_SLICE_END_PTR(message_pfx));
|
2332
2372
|
len += static_cast<uint32_t> GRPC_SLICE_LENGTH(message_pfx);
|
2333
2373
|
len += static_cast<uint32_t>(msg_len);
|
@@ -2352,7 +2392,8 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2352
2392
|
}
|
2353
2393
|
grpc_slice_buffer_add(&t->qbuf, status_hdr);
|
2354
2394
|
grpc_slice_buffer_add(&t->qbuf, message_pfx);
|
2355
|
-
grpc_slice_buffer_add(&t->qbuf,
|
2395
|
+
grpc_slice_buffer_add(&t->qbuf,
|
2396
|
+
grpc_slice_from_cpp_string(std::move(message)));
|
2356
2397
|
grpc_chttp2_reset_ping_clock(t);
|
2357
2398
|
grpc_chttp2_add_rst_stream_to_next_write(t, s->id, GRPC_HTTP2_NO_ERROR,
|
2358
2399
|
&s->stats.outgoing);
|
@@ -2362,7 +2403,7 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2362
2403
|
}
|
2363
2404
|
|
2364
2405
|
struct cancel_stream_cb_args {
|
2365
|
-
|
2406
|
+
grpc_error_handle error;
|
2366
2407
|
grpc_chttp2_transport* t;
|
2367
2408
|
};
|
2368
2409
|
|
@@ -2372,7 +2413,8 @@ static void cancel_stream_cb(void* user_data, uint32_t /*key*/, void* stream) {
|
|
2372
2413
|
grpc_chttp2_cancel_stream(args->t, s, GRPC_ERROR_REF(args->error));
|
2373
2414
|
}
|
2374
2415
|
|
2375
|
-
static void end_all_the_calls(grpc_chttp2_transport* t,
|
2416
|
+
static void end_all_the_calls(grpc_chttp2_transport* t,
|
2417
|
+
grpc_error_handle error) {
|
2376
2418
|
intptr_t http2_error;
|
2377
2419
|
// If there is no explicit grpc or HTTP/2 error, set to UNAVAILABLE on server.
|
2378
2420
|
if (!t->is_client && !grpc_error_has_clear_grpc_status(error) &&
|
@@ -2398,7 +2440,7 @@ static void WithUrgency(grpc_chttp2_transport* t,
|
|
2398
2440
|
break;
|
2399
2441
|
case grpc_core::chttp2::FlowControlAction::Urgency::UPDATE_IMMEDIATELY:
|
2400
2442
|
grpc_chttp2_initiate_write(t, reason);
|
2401
|
-
|
2443
|
+
ABSL_FALLTHROUGH_INTENDED;
|
2402
2444
|
case grpc_core::chttp2::FlowControlAction::Urgency::QUEUE_UPDATE:
|
2403
2445
|
action();
|
2404
2446
|
break;
|
@@ -2426,15 +2468,15 @@ void grpc_chttp2_act_on_flowctl_action(
|
|
2426
2468
|
});
|
2427
2469
|
}
|
2428
2470
|
|
2429
|
-
static
|
2471
|
+
static grpc_error_handle try_http_parsing(grpc_chttp2_transport* t) {
|
2430
2472
|
grpc_http_parser parser;
|
2431
2473
|
size_t i = 0;
|
2432
|
-
|
2474
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
2433
2475
|
grpc_http_response response;
|
2434
2476
|
|
2435
2477
|
grpc_http_parser_init(&parser, GRPC_HTTP_RESPONSE, &response);
|
2436
2478
|
|
2437
|
-
|
2479
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
2438
2480
|
for (; i < t->read_buffer.count && parse_error == GRPC_ERROR_NONE; i++) {
|
2439
2481
|
parse_error =
|
2440
2482
|
grpc_http_parser_parse(&parser, t->read_buffer.slices[i], nullptr);
|
@@ -2455,34 +2497,34 @@ static grpc_error* try_http_parsing(grpc_chttp2_transport* t) {
|
|
2455
2497
|
return error;
|
2456
2498
|
}
|
2457
2499
|
|
2458
|
-
static void read_action(void* tp,
|
2500
|
+
static void read_action(void* tp, grpc_error_handle error) {
|
2459
2501
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2460
2502
|
t->combiner->Run(
|
2461
2503
|
GRPC_CLOSURE_INIT(&t->read_action_locked, read_action_locked, t, nullptr),
|
2462
2504
|
GRPC_ERROR_REF(error));
|
2463
2505
|
}
|
2464
2506
|
|
2465
|
-
static void read_action_locked(void* tp,
|
2507
|
+
static void read_action_locked(void* tp, grpc_error_handle error) {
|
2466
2508
|
GPR_TIMER_SCOPE("reading_action_locked", 0);
|
2467
2509
|
|
2468
2510
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2469
2511
|
|
2470
|
-
GRPC_ERROR_REF(error);
|
2512
|
+
(void)GRPC_ERROR_REF(error);
|
2471
2513
|
|
2472
|
-
|
2514
|
+
grpc_error_handle err = error;
|
2473
2515
|
if (err != GRPC_ERROR_NONE) {
|
2474
2516
|
err = grpc_error_set_int(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
2475
2517
|
"Endpoint read failed", &err, 1),
|
2476
2518
|
GRPC_ERROR_INT_OCCURRED_DURING_WRITE,
|
2477
2519
|
t->write_state);
|
2478
2520
|
}
|
2479
|
-
|
2521
|
+
std::swap(err, error);
|
2480
2522
|
GRPC_ERROR_UNREF(err);
|
2481
2523
|
if (t->closed_with_error == GRPC_ERROR_NONE) {
|
2482
2524
|
GPR_TIMER_SCOPE("reading_action.parse", 0);
|
2483
2525
|
size_t i = 0;
|
2484
|
-
|
2485
|
-
|
2526
|
+
grpc_error_handle errors[3] = {GRPC_ERROR_REF(error), GRPC_ERROR_NONE,
|
2527
|
+
GRPC_ERROR_NONE};
|
2486
2528
|
for (; i < t->read_buffer.count && errors[1] == GRPC_ERROR_NONE; i++) {
|
2487
2529
|
errors[1] = grpc_chttp2_perform_read(t, t->read_buffer.slices[i]);
|
2488
2530
|
}
|
@@ -2570,23 +2612,21 @@ void schedule_bdp_ping_locked(grpc_chttp2_transport* t) {
|
|
2570
2612
|
grpc_schedule_on_exec_ctx),
|
2571
2613
|
GRPC_CLOSURE_INIT(&t->finish_bdp_ping_locked, finish_bdp_ping, t,
|
2572
2614
|
grpc_schedule_on_exec_ctx));
|
2573
|
-
|
2574
|
-
// fixed.
|
2575
|
-
// grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_BDP_PING);
|
2615
|
+
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_BDP_PING);
|
2576
2616
|
}
|
2577
2617
|
|
2578
|
-
static void start_bdp_ping(void* tp,
|
2618
|
+
static void start_bdp_ping(void* tp, grpc_error_handle error) {
|
2579
2619
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2580
2620
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_bdp_ping_locked,
|
2581
2621
|
start_bdp_ping_locked, t, nullptr),
|
2582
2622
|
GRPC_ERROR_REF(error));
|
2583
2623
|
}
|
2584
2624
|
|
2585
|
-
static void start_bdp_ping_locked(void* tp,
|
2625
|
+
static void start_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2586
2626
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2587
2627
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2588
2628
|
gpr_log(GPR_INFO, "%s: Start BDP ping err=%s", t->peer_string.c_str(),
|
2589
|
-
|
2629
|
+
grpc_error_std_string(error).c_str());
|
2590
2630
|
}
|
2591
2631
|
if (error != GRPC_ERROR_NONE || t->closed_with_error != GRPC_ERROR_NONE) {
|
2592
2632
|
return;
|
@@ -2599,18 +2639,18 @@ static void start_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2599
2639
|
t->bdp_ping_started = true;
|
2600
2640
|
}
|
2601
2641
|
|
2602
|
-
static void finish_bdp_ping(void* tp,
|
2642
|
+
static void finish_bdp_ping(void* tp, grpc_error_handle error) {
|
2603
2643
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2604
2644
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_bdp_ping_locked,
|
2605
2645
|
finish_bdp_ping_locked, t, nullptr),
|
2606
2646
|
GRPC_ERROR_REF(error));
|
2607
2647
|
}
|
2608
2648
|
|
2609
|
-
static void finish_bdp_ping_locked(void* tp,
|
2649
|
+
static void finish_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2610
2650
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2611
2651
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2612
2652
|
gpr_log(GPR_INFO, "%s: Complete BDP ping err=%s", t->peer_string.c_str(),
|
2613
|
-
|
2653
|
+
grpc_error_std_string(error).c_str());
|
2614
2654
|
}
|
2615
2655
|
if (error != GRPC_ERROR_NONE || t->closed_with_error != GRPC_ERROR_NONE) {
|
2616
2656
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "bdp_ping");
|
@@ -2636,7 +2676,7 @@ static void finish_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2636
2676
|
&t->next_bdp_ping_timer_expired_locked);
|
2637
2677
|
}
|
2638
2678
|
|
2639
|
-
static void next_bdp_ping_timer_expired(void* tp,
|
2679
|
+
static void next_bdp_ping_timer_expired(void* tp, grpc_error_handle error) {
|
2640
2680
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2641
2681
|
t->combiner->Run(
|
2642
2682
|
GRPC_CLOSURE_INIT(&t->next_bdp_ping_timer_expired_locked,
|
@@ -2644,7 +2684,8 @@ static void next_bdp_ping_timer_expired(void* tp, grpc_error* error) {
|
|
2644
2684
|
GRPC_ERROR_REF(error));
|
2645
2685
|
}
|
2646
2686
|
|
2647
|
-
static void next_bdp_ping_timer_expired_locked(void* tp,
|
2687
|
+
static void next_bdp_ping_timer_expired_locked(void* tp,
|
2688
|
+
grpc_error_handle error) {
|
2648
2689
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2649
2690
|
GPR_ASSERT(t->have_next_bdp_ping_timer);
|
2650
2691
|
t->have_next_bdp_ping_timer = false;
|
@@ -2720,14 +2761,14 @@ void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
|
|
2720
2761
|
}
|
2721
2762
|
}
|
2722
2763
|
|
2723
|
-
static void init_keepalive_ping(void* arg,
|
2764
|
+
static void init_keepalive_ping(void* arg, grpc_error_handle error) {
|
2724
2765
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2725
2766
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->init_keepalive_ping_locked,
|
2726
2767
|
init_keepalive_ping_locked, t, nullptr),
|
2727
2768
|
GRPC_ERROR_REF(error));
|
2728
2769
|
}
|
2729
2770
|
|
2730
|
-
static void init_keepalive_ping_locked(void* arg,
|
2771
|
+
static void init_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2731
2772
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2732
2773
|
GPR_ASSERT(t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_WAITING);
|
2733
2774
|
if (t->destroying || t->closed_with_error != GRPC_ERROR_NONE) {
|
@@ -2760,14 +2801,14 @@ static void init_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2760
2801
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "init keepalive ping");
|
2761
2802
|
}
|
2762
2803
|
|
2763
|
-
static void start_keepalive_ping(void* arg,
|
2804
|
+
static void start_keepalive_ping(void* arg, grpc_error_handle error) {
|
2764
2805
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2765
2806
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_keepalive_ping_locked,
|
2766
2807
|
start_keepalive_ping_locked, t, nullptr),
|
2767
2808
|
GRPC_ERROR_REF(error));
|
2768
2809
|
}
|
2769
2810
|
|
2770
|
-
static void start_keepalive_ping_locked(void* arg,
|
2811
|
+
static void start_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2771
2812
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2772
2813
|
if (error != GRPC_ERROR_NONE) {
|
2773
2814
|
return;
|
@@ -2788,14 +2829,14 @@ static void start_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2788
2829
|
t->keepalive_ping_started = true;
|
2789
2830
|
}
|
2790
2831
|
|
2791
|
-
static void finish_keepalive_ping(void* arg,
|
2832
|
+
static void finish_keepalive_ping(void* arg, grpc_error_handle error) {
|
2792
2833
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2793
2834
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_keepalive_ping_locked,
|
2794
2835
|
finish_keepalive_ping_locked, t, nullptr),
|
2795
2836
|
GRPC_ERROR_REF(error));
|
2796
2837
|
}
|
2797
2838
|
|
2798
|
-
static void finish_keepalive_ping_locked(void* arg,
|
2839
|
+
static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2799
2840
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2800
2841
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2801
2842
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2826,7 +2867,7 @@ static void finish_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2826
2867
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "keepalive ping end");
|
2827
2868
|
}
|
2828
2869
|
|
2829
|
-
static void keepalive_watchdog_fired(void* arg,
|
2870
|
+
static void keepalive_watchdog_fired(void* arg, grpc_error_handle error) {
|
2830
2871
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2831
2872
|
t->combiner->Run(
|
2832
2873
|
GRPC_CLOSURE_INIT(&t->keepalive_watchdog_fired_locked,
|
@@ -2834,7 +2875,8 @@ static void keepalive_watchdog_fired(void* arg, grpc_error* error) {
|
|
2834
2875
|
GRPC_ERROR_REF(error));
|
2835
2876
|
}
|
2836
2877
|
|
2837
|
-
static void keepalive_watchdog_fired_locked(void* arg,
|
2878
|
+
static void keepalive_watchdog_fired_locked(void* arg,
|
2879
|
+
grpc_error_handle error) {
|
2838
2880
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2839
2881
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2840
2882
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2891,7 +2933,7 @@ static void set_pollset_set(grpc_transport* gt, grpc_stream* /*gs*/,
|
|
2891
2933
|
// BYTE STREAM
|
2892
2934
|
//
|
2893
2935
|
|
2894
|
-
static void reset_byte_stream(void* arg,
|
2936
|
+
static void reset_byte_stream(void* arg, grpc_error_handle error) {
|
2895
2937
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(arg);
|
2896
2938
|
s->pending_byte_stream = false;
|
2897
2939
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2922,8 +2964,8 @@ Chttp2IncomingByteStream::Chttp2IncomingByteStream(
|
|
2922
2964
|
stream->byte_stream_error = GRPC_ERROR_NONE;
|
2923
2965
|
}
|
2924
2966
|
|
2925
|
-
void Chttp2IncomingByteStream::OrphanLocked(
|
2926
|
-
|
2967
|
+
void Chttp2IncomingByteStream::OrphanLocked(
|
2968
|
+
void* arg, grpc_error_handle /*error_ignored*/) {
|
2927
2969
|
Chttp2IncomingByteStream* bs = static_cast<Chttp2IncomingByteStream*>(arg);
|
2928
2970
|
grpc_chttp2_stream* s = bs->stream_;
|
2929
2971
|
grpc_chttp2_transport* t = s->t;
|
@@ -2942,7 +2984,7 @@ void Chttp2IncomingByteStream::Orphan() {
|
|
2942
2984
|
}
|
2943
2985
|
|
2944
2986
|
void Chttp2IncomingByteStream::NextLocked(void* arg,
|
2945
|
-
|
2987
|
+
grpc_error_handle /*error_ignored*/) {
|
2946
2988
|
Chttp2IncomingByteStream* bs = static_cast<Chttp2IncomingByteStream*>(arg);
|
2947
2989
|
grpc_chttp2_transport* t = bs->transport_;
|
2948
2990
|
grpc_chttp2_stream* s = bs->stream_;
|
@@ -3012,9 +3054,9 @@ void Chttp2IncomingByteStream::MaybeCreateStreamDecompressionCtx() {
|
|
3012
3054
|
}
|
3013
3055
|
}
|
3014
3056
|
|
3015
|
-
|
3057
|
+
grpc_error_handle Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
3016
3058
|
GPR_TIMER_SCOPE("incoming_byte_stream_pull", 0);
|
3017
|
-
|
3059
|
+
grpc_error_handle error;
|
3018
3060
|
if (stream_->unprocessed_incoming_frames_buffer.length > 0) {
|
3019
3061
|
if (!stream_->unprocessed_incoming_frames_decompressed &&
|
3020
3062
|
stream_->stream_decompression_method !=
|
@@ -3057,7 +3099,7 @@ grpc_error* Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
|
3057
3099
|
return GRPC_ERROR_NONE;
|
3058
3100
|
}
|
3059
3101
|
|
3060
|
-
void Chttp2IncomingByteStream::PublishError(
|
3102
|
+
void Chttp2IncomingByteStream::PublishError(grpc_error_handle error) {
|
3061
3103
|
GPR_ASSERT(error != GRPC_ERROR_NONE);
|
3062
3104
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, stream_->on_next,
|
3063
3105
|
GRPC_ERROR_REF(error));
|
@@ -3067,10 +3109,10 @@ void Chttp2IncomingByteStream::PublishError(grpc_error* error) {
|
|
3067
3109
|
grpc_chttp2_cancel_stream(transport_, stream_, GRPC_ERROR_REF(error));
|
3068
3110
|
}
|
3069
3111
|
|
3070
|
-
|
3071
|
-
|
3112
|
+
grpc_error_handle Chttp2IncomingByteStream::Push(const grpc_slice& slice,
|
3113
|
+
grpc_slice* slice_out) {
|
3072
3114
|
if (remaining_bytes_ < GRPC_SLICE_LENGTH(slice)) {
|
3073
|
-
|
3115
|
+
grpc_error_handle error =
|
3074
3116
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Too many bytes in stream");
|
3075
3117
|
transport_->combiner->Run(&stream_->reset_byte_stream,
|
3076
3118
|
GRPC_ERROR_REF(error));
|
@@ -3085,8 +3127,8 @@ grpc_error* Chttp2IncomingByteStream::Push(const grpc_slice& slice,
|
|
3085
3127
|
}
|
3086
3128
|
}
|
3087
3129
|
|
3088
|
-
|
3089
|
-
|
3130
|
+
grpc_error_handle Chttp2IncomingByteStream::Finished(grpc_error_handle error,
|
3131
|
+
bool reset_on_error) {
|
3090
3132
|
if (error == GRPC_ERROR_NONE) {
|
3091
3133
|
if (remaining_bytes_ != 0) {
|
3092
3134
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Truncated message");
|
@@ -3100,7 +3142,7 @@ grpc_error* Chttp2IncomingByteStream::Finished(grpc_error* error,
|
|
3100
3142
|
return error;
|
3101
3143
|
}
|
3102
3144
|
|
3103
|
-
void Chttp2IncomingByteStream::Shutdown(
|
3145
|
+
void Chttp2IncomingByteStream::Shutdown(grpc_error_handle error) {
|
3104
3146
|
GRPC_ERROR_UNREF(Finished(error, true /* reset_on_error */));
|
3105
3147
|
}
|
3106
3148
|
|
@@ -3116,8 +3158,8 @@ static void post_benign_reclaimer(grpc_chttp2_transport* t) {
|
|
3116
3158
|
GRPC_CHTTP2_REF_TRANSPORT(t, "benign_reclaimer");
|
3117
3159
|
GRPC_CLOSURE_INIT(&t->benign_reclaimer_locked, benign_reclaimer, t,
|
3118
3160
|
grpc_schedule_on_exec_ctx);
|
3119
|
-
grpc_resource_user_post_reclaimer(
|
3120
|
-
|
3161
|
+
grpc_resource_user_post_reclaimer(t->resource_user, false,
|
3162
|
+
&t->benign_reclaimer_locked);
|
3121
3163
|
}
|
3122
3164
|
}
|
3123
3165
|
|
@@ -3127,19 +3169,19 @@ static void post_destructive_reclaimer(grpc_chttp2_transport* t) {
|
|
3127
3169
|
GRPC_CHTTP2_REF_TRANSPORT(t, "destructive_reclaimer");
|
3128
3170
|
GRPC_CLOSURE_INIT(&t->destructive_reclaimer_locked, destructive_reclaimer,
|
3129
3171
|
t, grpc_schedule_on_exec_ctx);
|
3130
|
-
grpc_resource_user_post_reclaimer(
|
3131
|
-
|
3172
|
+
grpc_resource_user_post_reclaimer(t->resource_user, true,
|
3173
|
+
&t->destructive_reclaimer_locked);
|
3132
3174
|
}
|
3133
3175
|
}
|
3134
3176
|
|
3135
|
-
static void benign_reclaimer(void* arg,
|
3177
|
+
static void benign_reclaimer(void* arg, grpc_error_handle error) {
|
3136
3178
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3137
3179
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->benign_reclaimer_locked,
|
3138
3180
|
benign_reclaimer_locked, t, nullptr),
|
3139
3181
|
GRPC_ERROR_REF(error));
|
3140
3182
|
}
|
3141
3183
|
|
3142
|
-
static void benign_reclaimer_locked(void* arg,
|
3184
|
+
static void benign_reclaimer_locked(void* arg, grpc_error_handle error) {
|
3143
3185
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3144
3186
|
if (error == GRPC_ERROR_NONE &&
|
3145
3187
|
grpc_chttp2_stream_map_size(&t->stream_map) == 0) {
|
@@ -3163,20 +3205,19 @@ static void benign_reclaimer_locked(void* arg, grpc_error* error) {
|
|
3163
3205
|
}
|
3164
3206
|
t->benign_reclaimer_registered = false;
|
3165
3207
|
if (error != GRPC_ERROR_CANCELLED) {
|
3166
|
-
grpc_resource_user_finish_reclamation(
|
3167
|
-
grpc_endpoint_get_resource_user(t->ep));
|
3208
|
+
grpc_resource_user_finish_reclamation(t->resource_user);
|
3168
3209
|
}
|
3169
3210
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
3170
3211
|
}
|
3171
3212
|
|
3172
|
-
static void destructive_reclaimer(void* arg,
|
3213
|
+
static void destructive_reclaimer(void* arg, grpc_error_handle error) {
|
3173
3214
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3174
3215
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->destructive_reclaimer_locked,
|
3175
3216
|
destructive_reclaimer_locked, t, nullptr),
|
3176
3217
|
GRPC_ERROR_REF(error));
|
3177
3218
|
}
|
3178
3219
|
|
3179
|
-
static void destructive_reclaimer_locked(void* arg,
|
3220
|
+
static void destructive_reclaimer_locked(void* arg, grpc_error_handle error) {
|
3180
3221
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3181
3222
|
size_t n = grpc_chttp2_stream_map_size(&t->stream_map);
|
3182
3223
|
t->destructive_reclaimer_registered = false;
|
@@ -3201,8 +3242,7 @@ static void destructive_reclaimer_locked(void* arg, grpc_error* error) {
|
|
3201
3242
|
}
|
3202
3243
|
}
|
3203
3244
|
if (error != GRPC_ERROR_CANCELLED) {
|
3204
|
-
grpc_resource_user_finish_reclamation(
|
3205
|
-
grpc_endpoint_get_resource_user(t->ep));
|
3245
|
+
grpc_resource_user_finish_reclamation(t->resource_user);
|
3206
3246
|
}
|
3207
3247
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "destructive_reclaimer");
|
3208
3248
|
}
|
@@ -3294,7 +3334,7 @@ grpc_transport* grpc_create_chttp2_transport(
|
|
3294
3334
|
|
3295
3335
|
void grpc_chttp2_transport_start_reading(
|
3296
3336
|
grpc_transport* transport, grpc_slice_buffer* read_buffer,
|
3297
|
-
grpc_closure* notify_on_receive_settings) {
|
3337
|
+
grpc_closure* notify_on_receive_settings, grpc_closure* notify_on_close) {
|
3298
3338
|
grpc_chttp2_transport* t =
|
3299
3339
|
reinterpret_cast<grpc_chttp2_transport*>(transport);
|
3300
3340
|
GRPC_CHTTP2_REF_TRANSPORT(
|
@@ -3304,6 +3344,7 @@ void grpc_chttp2_transport_start_reading(
|
|
3304
3344
|
gpr_free(read_buffer);
|
3305
3345
|
}
|
3306
3346
|
t->notify_on_receive_settings = notify_on_receive_settings;
|
3347
|
+
t->notify_on_close = notify_on_close;
|
3307
3348
|
t->combiner->Run(
|
3308
3349
|
GRPC_CLOSURE_INIT(&t->read_action_locked, read_action_locked, t, nullptr),
|
3309
3350
|
GRPC_ERROR_NONE);
|