grpc 1.35.0 → 1.38.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 +168 -131
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/channel_args.h +28 -0
- data/include/grpc/event_engine/event_engine.h +336 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/event_engine/slice_allocator.h +81 -0
- data/include/grpc/grpc.h +15 -1
- data/include/grpc/grpc_security.h +16 -11
- data/include/grpc/grpc_security_constants.h +14 -0
- data/include/grpc/impl/codegen/grpc_types.h +11 -0
- data/include/grpc/impl/codegen/port_platform.h +7 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +740 -3185
- data/src/core/ext/filters/client_channel/client_channel.h +488 -56
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +10 -2
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +18 -14
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- 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 -10
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +26 -23
- data/src/core/ext/filters/client_channel/lb_policy.cc +4 -1
- data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +49 -48
- 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 +2 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +22 -18
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +23 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +318 -193
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +5 -0
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +30 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +32 -47
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +316 -171
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- 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.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver.h +3 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +59 -60
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +17 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +67 -74
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- 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 +33 -23
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +38 -43
- 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 +379 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +346 -178
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
- 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.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +86 -162
- data/src/core/ext/filters/client_channel/subchannel.h +68 -99
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +10 -8
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +501 -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 +189 -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 +28 -21
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +47 -42
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +5 -4
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -8
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +5 -4
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +6 -5
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +507 -196
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +13 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +3 -3
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +64 -21
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +167 -122
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +13 -9
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
- data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
- 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 +1459 -0
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +11 -16
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +42 -59
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +75 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +2 -2
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +9 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +7 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +28 -13
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +6 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +11 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +41 -7
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -21
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +122 -77
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +13 -9
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +37 -5
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +0 -1
- 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 +488 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +11 -9
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +44 -27
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +57 -16
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +150 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +0 -1
- 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 +67 -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 +268 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +19 -21
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +64 -51
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +16 -13
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +50 -18
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +4 -7
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +0 -17
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +30 -23
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +85 -73
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -3
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -3
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +0 -1
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -2
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
- 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 +90 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +0 -1
- 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 +124 -0
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +21 -4
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +29 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
- data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/authority.upb.c +5 -5
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +60 -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 +143 -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 +84 -0
- data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/resource.upb.c +9 -9
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +94 -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 +166 -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 +85 -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/config/accesslog/v3/accesslog.upbdefs.c +168 -171
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +405 -420
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +2 -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 +177 -171
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +88 -88
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +153 -153
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +10 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +5 -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/substitution_format_string.upbdefs.c +33 -20
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +56 -59
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +116 -111
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +129 -121
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +21 -24
- 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 +141 -0
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +17 -13
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +753 -724
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -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 +120 -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 +76 -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 +371 -377
- 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 +112 -108
- 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 +177 -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 +130 -0
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
- 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/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/udpa/type/v1/typed_struct.upbdefs.c +44 -0
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +14 -11
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +42 -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 +62 -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 +45 -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 +49 -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 +67 -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 +50 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +2179 -688
- data/src/core/ext/xds/xds_api.h +326 -124
- data/src/core/ext/xds/xds_bootstrap.cc +115 -142
- data/src/core/ext/xds/xds_bootstrap.h +24 -17
- data/src/core/ext/xds/xds_certificate_provider.cc +184 -78
- data/src/core/ext/xds/xds_certificate_provider.h +84 -45
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +462 -183
- data/src/core/ext/xds/xds_client.h +65 -22
- data/src/core/ext/xds/xds_client_stats.cc +2 -1
- data/src/core/ext/xds/xds_client_stats.h +5 -4
- data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
- data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
- data/src/core/ext/xds/xds_http_filters.cc +114 -0
- data/src/core/ext/xds/xds_http_filters.h +130 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +444 -29
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +108 -5
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +26 -6
- data/src/core/lib/channel/channel_stack.cc +22 -9
- data/src/core/lib/channel/channel_stack.h +17 -9
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +108 -12
- data/src/core/lib/channel/channelz.h +30 -1
- data/src/core/lib/channel/channelz_registry.cc +14 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/handshaker.cc +9 -50
- data/src/core/lib/channel/handshaker.h +6 -23
- data/src/core/lib/channel/status_util.cc +12 -2
- data/src/core/lib/channel/status_util.h +5 -0
- data/src/core/lib/event_engine/slice_allocator.cc +59 -0
- data/src/core/lib/event_engine/sockaddr.cc +38 -0
- data/src/core/lib/gpr/log.cc +6 -1
- data/src/core/lib/gpr/sync_abseil.cc +3 -6
- data/src/core/lib/gpr/sync_windows.cc +2 -2
- data/src/core/lib/gprpp/atomic.h +3 -3
- data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
- data/src/core/lib/gprpp/mpscq.cc +2 -2
- data/src/core/lib/gprpp/ref_counted.h +29 -15
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -0
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +180 -0
- data/src/core/lib/gprpp/sync.h +129 -40
- data/src/core/lib/gprpp/thd.h +1 -1
- 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/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +13 -9
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +7 -9
- data/src/core/lib/iomgr/buffer_list.h +5 -6
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +5 -5
- 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 +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +167 -61
- data/src/core/lib/iomgr/error.h +218 -107
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +16 -13
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +22 -22
- data/src/core/lib/iomgr/ev_epollex_linux.cc +52 -49
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +12 -11
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/exec_ctx.cc +10 -6
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +1 -1
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +1 -2
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -3
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- 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 +5 -5
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +1 -1
- data/src/core/lib/iomgr/python_util.h +1 -1
- data/src/core/lib/iomgr/resolve_address.cc +3 -3
- data/src/core/lib/iomgr/resolve_address.h +6 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +12 -11
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +23 -20
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +16 -18
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +41 -42
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
- data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +27 -25
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +8 -8
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- 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 +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +4 -4
- data/src/core/lib/matchers/matchers.cc +339 -0
- data/src/core/lib/matchers/matchers.h +160 -0
- 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/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +4 -3
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +18 -14
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +17 -14
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +6 -5
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +9 -9
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +16 -15
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -5
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -8
- 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 +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +2 -1
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +2 -1
- data/src/core/lib/security/credentials/tls/tls_credentials.h +1 -1
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +130 -61
- data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +31 -8
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +88 -74
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +66 -37
- data/src/core/lib/security/transport/server_auth_filter.cc +24 -11
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice_intern.cc +5 -6
- data/src/core/lib/surface/call.cc +46 -45
- data/src/core/lib/surface/call.h +2 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +6 -5
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +46 -47
- data/src/core/lib/surface/completion_queue.h +2 -1
- data/src/core/lib/surface/init.cc +13 -15
- data/src/core/lib/surface/lame_client.cc +43 -24
- data/src/core/lib/surface/lame_client.h +4 -3
- data/src/core/lib/surface/server.cc +71 -58
- data/src/core/lib/surface/server.h +91 -28
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +19 -8
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata.cc +6 -2
- data/src/core/lib/transport/metadata_batch.cc +64 -37
- data/src/core/lib/transport/metadata_batch.h +33 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +4 -4
- data/src/core/lib/transport/transport_op_string.cc +5 -5
- data/src/core/plugin_registry/grpc_plugin_registry.cc +12 -0
- data/src/core/tsi/alts/crypt/gsec.h +4 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +23 -28
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +23 -27
- 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/fake_transport_security.cc +11 -2
- data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +2 -4
- data/src/core/tsi/ssl_transport_security.cc +32 -17
- data/src/core/tsi/ssl_transport_security.h +3 -7
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +9 -1
- data/src/ruby/ext/grpc/rb_channel.c +10 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +4 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
- data/src/ruby/ext/grpc/rb_server.c +13 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -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 +7 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- 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/errors_spec.rb +1 -1
- data/src/ruby/spec/generic/active_call_spec.rb +2 -2
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
- data/src/ruby/spec/server_credentials_spec.rb +25 -0
- data/src/ruby/spec/server_spec.rb +22 -0
- data/third_party/abseil-cpp/absl/algorithm/container.h +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 +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- 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/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_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 +4 -7
- 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.h +3 -3
- 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/boringssl-with-bazel/err_data.c +742 -724
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +4 -11
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.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 +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +16 -16
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +35 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +28 -79
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +40 -86
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +6 -17
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -61
- 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 +2 -2
- 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 +158 -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/cbs.c +60 -45
- 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/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/{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 +25 -0
- data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/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 +2 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +10 -2
- 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 +25 -2
- 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/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
- 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 +43 -46
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
- 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/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 +28 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +135 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -14
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +51 -32
- 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 +45 -48
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +121 -71
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +71 -41
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
- 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 +10 -7
- 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/{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/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/internal.h +19 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- 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 +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -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_v3.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +29 -23
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- 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 +6 -2
- 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_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +39 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +11 -10
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +25 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +2 -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 +25 -36
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- 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 +6 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +737 -551
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -167
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +22 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +15 -4
- 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 +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -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 +13 -40
- 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/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
- 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/span.h +2 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +239 -37
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +28 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +702 -219
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +141 -36
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +47 -15
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +11 -20
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +159 -13
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +253 -58
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
- 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_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +90 -25
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +7 -8
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +450 -104
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +48 -15
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +232 -85
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/xxhash/xxhash.h +5443 -0
- metadata +174 -95
- data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +0 -60
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +0 -52
- data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +0 -143
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +0 -42
- data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +0 -84
- data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +0 -94
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +0 -54
- data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +0 -173
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +0 -36
- data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +0 -92
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +0 -42
- data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +0 -62
- data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +0 -45
- data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +0 -49
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +0 -68
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +0 -40
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +0 -51
- data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +0 -35
- data/src/core/lib/iomgr/iomgr_posix.h +0 -26
- 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/security/authorization/authorization_engine.cc +0 -177
- data/src/core/lib/security/authorization/authorization_engine.h +0 -84
- data/src/core/lib/security/authorization/evaluate_args.cc +0 -148
- data/src/core/lib/security/authorization/evaluate_args.h +0 -59
- 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/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/upb/upb/json_decode.c +0 -1443
- data/third_party/upb/upb/json_decode.h +0 -23
- data/third_party/upb/upb/json_encode.c +0 -713
- data/third_party/upb/upb/json_encode.h +0 -36
@@ -28,10 +28,19 @@
|
|
28
28
|
|
29
29
|
namespace grpc_core {
|
30
30
|
|
31
|
+
// A function to modify channel args for a listening addr:port. Note that this
|
32
|
+
// is used to create a security connector for listeners when the servers are
|
33
|
+
// configured with a config fetcher. Not invoked if there is no config fetcher
|
34
|
+
// added to the server. Takes ownership of the args. Caller takes ownership of
|
35
|
+
// returned args. On failure, the error parameter will be set.
|
36
|
+
using Chttp2ServerArgsModifier =
|
37
|
+
std::function<grpc_channel_args*(grpc_channel_args*, grpc_error_handle*)>;
|
38
|
+
|
31
39
|
/// Adds a port to \a server. Sets \a port_num to the port number.
|
32
40
|
/// Takes ownership of \a args.
|
33
|
-
|
34
|
-
|
41
|
+
grpc_error_handle Chttp2ServerAddPort(
|
42
|
+
Server* server, const char* addr, grpc_channel_args* args,
|
43
|
+
Chttp2ServerArgsModifier connection_args_modifier, int* port_num);
|
35
44
|
|
36
45
|
} // namespace grpc_core
|
37
46
|
|
@@ -27,17 +27,26 @@
|
|
27
27
|
#include "src/core/lib/surface/api_trace.h"
|
28
28
|
#include "src/core/lib/surface/server.h"
|
29
29
|
|
30
|
+
namespace {
|
31
|
+
|
32
|
+
grpc_channel_args* ModifyArgsForConnection(grpc_channel_args* args,
|
33
|
+
grpc_error_handle* /*error*/) {
|
34
|
+
return args;
|
35
|
+
}
|
36
|
+
|
37
|
+
} // namespace
|
38
|
+
|
30
39
|
int grpc_server_add_insecure_http2_port(grpc_server* server, const char* addr) {
|
31
40
|
grpc_core::ExecCtx exec_ctx;
|
32
41
|
int port_num = 0;
|
33
42
|
GRPC_API_TRACE("grpc_server_add_insecure_http2_port(server=%p, addr=%s)", 2,
|
34
43
|
(server, addr));
|
35
|
-
|
44
|
+
grpc_error_handle err = grpc_core::Chttp2ServerAddPort(
|
36
45
|
server->core_server.get(), addr,
|
37
|
-
grpc_channel_args_copy(server->core_server->channel_args()),
|
46
|
+
grpc_channel_args_copy(server->core_server->channel_args()),
|
47
|
+
ModifyArgsForConnection, &port_num);
|
38
48
|
if (err != GRPC_ERROR_NONE) {
|
39
|
-
|
40
|
-
gpr_log(GPR_ERROR, "%s", msg);
|
49
|
+
gpr_log(GPR_ERROR, "%s", grpc_error_std_string(err).c_str());
|
41
50
|
|
42
51
|
GRPC_ERROR_UNREF(err);
|
43
52
|
}
|
@@ -51,16 +51,16 @@ void grpc_server_add_insecure_channel_from_fd(grpc_server* server,
|
|
51
51
|
grpc_transport* transport = grpc_create_chttp2_transport(
|
52
52
|
server_args, server_endpoint, false /* is_client */);
|
53
53
|
|
54
|
-
|
54
|
+
grpc_error_handle error =
|
55
55
|
core_server->SetupTransport(transport, nullptr, server_args, nullptr);
|
56
56
|
if (error == GRPC_ERROR_NONE) {
|
57
57
|
for (grpc_pollset* pollset : core_server->pollsets()) {
|
58
58
|
grpc_endpoint_add_to_pollset(server_endpoint, pollset);
|
59
59
|
}
|
60
|
-
grpc_chttp2_transport_start_reading(transport, nullptr, nullptr);
|
60
|
+
grpc_chttp2_transport_start_reading(transport, nullptr, nullptr, nullptr);
|
61
61
|
} else {
|
62
62
|
gpr_log(GPR_ERROR, "Failed to create channel: %s",
|
63
|
-
|
63
|
+
grpc_error_std_string(error).c_str());
|
64
64
|
GRPC_ERROR_UNREF(error);
|
65
65
|
grpc_transport_destroy(transport);
|
66
66
|
}
|
@@ -18,12 +18,11 @@
|
|
18
18
|
|
19
19
|
#include <grpc/support/port_platform.h>
|
20
20
|
|
21
|
-
#include <grpc/grpc.h>
|
22
|
-
|
23
21
|
#include <string.h>
|
24
22
|
|
25
23
|
#include "absl/strings/str_cat.h"
|
26
24
|
|
25
|
+
#include <grpc/grpc.h>
|
27
26
|
#include <grpc/support/alloc.h>
|
28
27
|
#include <grpc/support/log.h>
|
29
28
|
|
@@ -38,10 +37,39 @@
|
|
38
37
|
#include "src/core/lib/surface/api_trace.h"
|
39
38
|
#include "src/core/lib/surface/server.h"
|
40
39
|
|
40
|
+
namespace {
|
41
|
+
|
42
|
+
grpc_channel_args* ModifyArgsForConnection(grpc_channel_args* args,
|
43
|
+
grpc_error_handle* error) {
|
44
|
+
grpc_server_credentials* server_credentials =
|
45
|
+
grpc_find_server_credentials_in_args(args);
|
46
|
+
if (server_credentials == nullptr) {
|
47
|
+
*error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
48
|
+
"Could not find server credentials");
|
49
|
+
return args;
|
50
|
+
}
|
51
|
+
auto security_connector = server_credentials->create_security_connector(args);
|
52
|
+
if (security_connector == nullptr) {
|
53
|
+
*error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
54
|
+
absl::StrCat("Unable to create secure server with credentials of type ",
|
55
|
+
server_credentials->type())
|
56
|
+
.c_str());
|
57
|
+
return args;
|
58
|
+
}
|
59
|
+
grpc_arg arg_to_add =
|
60
|
+
grpc_security_connector_to_arg(security_connector.get());
|
61
|
+
grpc_channel_args* new_args =
|
62
|
+
grpc_channel_args_copy_and_add(args, &arg_to_add, 1);
|
63
|
+
grpc_channel_args_destroy(args);
|
64
|
+
return new_args;
|
65
|
+
}
|
66
|
+
|
67
|
+
} // namespace
|
68
|
+
|
41
69
|
int grpc_server_add_secure_http2_port(grpc_server* server, const char* addr,
|
42
70
|
grpc_server_credentials* creds) {
|
43
71
|
grpc_core::ExecCtx exec_ctx;
|
44
|
-
|
72
|
+
grpc_error_handle err = GRPC_ERROR_NONE;
|
45
73
|
grpc_core::RefCountedPtr<grpc_server_security_connector> sc;
|
46
74
|
int port_num = 0;
|
47
75
|
grpc_channel_args* args = nullptr;
|
@@ -55,30 +83,45 @@ int grpc_server_add_secure_http2_port(grpc_server* server, const char* addr,
|
|
55
83
|
"No credentials specified for secure server port (creds==NULL)");
|
56
84
|
goto done;
|
57
85
|
}
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
86
|
+
// TODO(yashykt): Ideally, we would not want to have different behavior here
|
87
|
+
// based on whether a config fetcher is configured or not. Currently, we have
|
88
|
+
// a feature for SSL credentials reloading with an application callback that
|
89
|
+
// assumes that there is a single security connector. If we delay the creation
|
90
|
+
// of the security connector to after the creation of the listener(s), we
|
91
|
+
// would have potentially multiple security connectors which breaks the
|
92
|
+
// assumption for SSL creds reloading. When the API for SSL creds reloading is
|
93
|
+
// rewritten, we would be able to make this workaround go away by removing
|
94
|
+
// that assumption. As an immediate drawback of this workaround, config
|
95
|
+
// fetchers need to be registered before adding ports to the server.
|
96
|
+
if (server->core_server->config_fetcher() != nullptr) {
|
97
|
+
// Create channel args.
|
98
|
+
grpc_arg arg_to_add = grpc_server_credentials_to_arg(creds);
|
99
|
+
args = grpc_channel_args_copy_and_add(server->core_server->channel_args(),
|
100
|
+
&arg_to_add, 1);
|
101
|
+
} else {
|
102
|
+
sc = creds->create_security_connector(nullptr);
|
103
|
+
if (sc == nullptr) {
|
104
|
+
err = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
105
|
+
absl::StrCat(
|
106
|
+
"Unable to create secure server with credentials of type ",
|
107
|
+
creds->type())
|
108
|
+
.c_str());
|
109
|
+
goto done;
|
110
|
+
}
|
111
|
+
grpc_arg args_to_add[2];
|
112
|
+
args_to_add[0] = grpc_server_credentials_to_arg(creds);
|
113
|
+
args_to_add[1] = grpc_security_connector_to_arg(sc.get());
|
114
|
+
args = grpc_channel_args_copy_and_add(server->core_server->channel_args(),
|
115
|
+
args_to_add,
|
116
|
+
GPR_ARRAY_SIZE(args_to_add));
|
65
117
|
}
|
66
|
-
// Create channel args.
|
67
|
-
grpc_arg args_to_add[2];
|
68
|
-
args_to_add[0] = grpc_server_credentials_to_arg(creds);
|
69
|
-
args_to_add[1] = grpc_security_connector_to_arg(sc.get());
|
70
|
-
args =
|
71
|
-
grpc_channel_args_copy_and_add(server->core_server->channel_args(),
|
72
|
-
args_to_add, GPR_ARRAY_SIZE(args_to_add));
|
73
118
|
// Add server port.
|
74
119
|
err = grpc_core::Chttp2ServerAddPort(server->core_server.get(), addr, args,
|
75
|
-
&port_num);
|
120
|
+
ModifyArgsForConnection, &port_num);
|
76
121
|
done:
|
77
122
|
sc.reset(DEBUG_LOCATION, "server");
|
78
|
-
|
79
123
|
if (err != GRPC_ERROR_NONE) {
|
80
|
-
|
81
|
-
gpr_log(GPR_ERROR, "%s", msg);
|
124
|
+
gpr_log(GPR_ERROR, "%s", grpc_error_std_string(err).c_str());
|
82
125
|
|
83
126
|
GRPC_ERROR_UNREF(err);
|
84
127
|
}
|
@@ -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,45 +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* arg,
|
130
|
-
static void destructive_reclaimer(void* arg,
|
131
|
-
static void benign_reclaimer_locked(void* arg,
|
132
|
-
static void destructive_reclaimer_locked(void* arg,
|
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
152
|
grpc_closure* on_initiate, grpc_closure* on_ack);
|
150
|
-
static void retry_initiate_ping_locked(void* tp,
|
153
|
+
static void retry_initiate_ping_locked(void* tp, grpc_error_handle error);
|
151
154
|
|
152
155
|
// keepalive-relevant functions
|
153
|
-
static void init_keepalive_ping(void* arg,
|
154
|
-
static void init_keepalive_ping_locked(void* arg,
|
155
|
-
static void start_keepalive_ping(void* arg,
|
156
|
-
static void finish_keepalive_ping(void* arg,
|
157
|
-
static void start_keepalive_ping_locked(void* arg,
|
158
|
-
static void finish_keepalive_ping_locked(void* arg,
|
159
|
-
static void keepalive_watchdog_fired(void* arg,
|
160
|
-
static void keepalive_watchdog_fired_locked(void* arg,
|
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);
|
161
164
|
|
162
|
-
static void reset_byte_stream(void* arg,
|
165
|
+
static void reset_byte_stream(void* arg, grpc_error_handle error);
|
163
166
|
|
164
167
|
// Flow control default enabled. Can be disabled by setting
|
165
168
|
// GRPC_EXPERIMENTAL_DISABLE_FLOW_CONTROL
|
166
169
|
bool g_flow_control_enabled = true;
|
167
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
|
+
|
168
191
|
//
|
169
192
|
// CONSTRUCTION/DESTRUCTION/REFCOUNTING
|
170
193
|
//
|
@@ -183,7 +206,7 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
183
206
|
grpc_slice_buffer_destroy_internal(&outbuf);
|
184
207
|
grpc_chttp2_hpack_compressor_destroy(&hpack_compressor);
|
185
208
|
|
186
|
-
|
209
|
+
grpc_error_handle error =
|
187
210
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Transport destroyed");
|
188
211
|
// ContextList::Execute follows semantics of a callback function and does not
|
189
212
|
// take a ref on error
|
@@ -221,6 +244,9 @@ grpc_chttp2_transport::~grpc_chttp2_transport() {
|
|
221
244
|
|
222
245
|
GRPC_ERROR_UNREF(closed_with_error);
|
223
246
|
gpr_free(ping_acks);
|
247
|
+
if (grpc_core::test_only_destruct_callback != nullptr) {
|
248
|
+
grpc_core::test_only_destruct_callback();
|
249
|
+
}
|
224
250
|
}
|
225
251
|
|
226
252
|
static const grpc_transport_vtable* get_vtable(void);
|
@@ -366,7 +392,9 @@ static bool read_channel_args(grpc_chttp2_transport* t,
|
|
366
392
|
t->channelz_socket =
|
367
393
|
grpc_core::MakeRefCounted<grpc_core::channelz::SocketNode>(
|
368
394
|
std::string(grpc_endpoint_get_local_address(t->ep)), t->peer_string,
|
369
|
-
absl::StrFormat("%s %s", get_vtable()->name, t->peer_string)
|
395
|
+
absl::StrFormat("%s %s", get_vtable()->name, t->peer_string),
|
396
|
+
grpc_core::channelz::SocketNode::Security::GetFromChannelArgs(
|
397
|
+
channel_args));
|
370
398
|
}
|
371
399
|
return enable_bdp;
|
372
400
|
}
|
@@ -504,9 +532,12 @@ grpc_chttp2_transport::grpc_chttp2_transport(
|
|
504
532
|
|
505
533
|
grpc_chttp2_initiate_write(this, GRPC_CHTTP2_INITIATE_WRITE_INITIAL_WRITE);
|
506
534
|
post_benign_reclaimer(this);
|
535
|
+
if (grpc_core::test_only_init_callback != nullptr) {
|
536
|
+
grpc_core::test_only_init_callback();
|
537
|
+
}
|
507
538
|
}
|
508
539
|
|
509
|
-
static void destroy_transport_locked(void* tp,
|
540
|
+
static void destroy_transport_locked(void* tp, grpc_error_handle /*error*/) {
|
510
541
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
511
542
|
t->destroying = 1;
|
512
543
|
close_transport_locked(
|
@@ -524,7 +555,7 @@ static void destroy_transport(grpc_transport* gt) {
|
|
524
555
|
}
|
525
556
|
|
526
557
|
static void close_transport_locked(grpc_chttp2_transport* t,
|
527
|
-
|
558
|
+
grpc_error_handle error) {
|
528
559
|
end_all_the_calls(t, GRPC_ERROR_REF(error));
|
529
560
|
cancel_pings(t, GRPC_ERROR_REF(error));
|
530
561
|
if (t->closed_with_error == GRPC_ERROR_NONE) {
|
@@ -579,6 +610,11 @@ static void close_transport_locked(grpc_chttp2_transport* t,
|
|
579
610
|
GRPC_ERROR_REF(error));
|
580
611
|
t->notify_on_receive_settings = nullptr;
|
581
612
|
}
|
613
|
+
if (t->notify_on_close != nullptr) {
|
614
|
+
grpc_core::ExecCtx::Run(DEBUG_LOCATION, t->notify_on_close,
|
615
|
+
GRPC_ERROR_REF(error));
|
616
|
+
t->notify_on_close = nullptr;
|
617
|
+
}
|
582
618
|
GRPC_ERROR_UNREF(error);
|
583
619
|
}
|
584
620
|
|
@@ -698,7 +734,7 @@ static int init_stream(grpc_transport* gt, grpc_stream* gs,
|
|
698
734
|
return 0;
|
699
735
|
}
|
700
736
|
|
701
|
-
static void destroy_stream_locked(void* sp,
|
737
|
+
static void destroy_stream_locked(void* sp, grpc_error_handle /*error*/) {
|
702
738
|
GPR_TIMER_SCOPE("destroy_stream", 0);
|
703
739
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(sp);
|
704
740
|
s->~grpc_chttp2_stream();
|
@@ -786,7 +822,7 @@ static void set_write_state(grpc_chttp2_transport* t,
|
|
786
822
|
if (st == GRPC_CHTTP2_WRITE_STATE_IDLE) {
|
787
823
|
grpc_core::ExecCtx::RunList(DEBUG_LOCATION, &t->run_after_write);
|
788
824
|
if (t->close_transport_on_writes_finished != nullptr) {
|
789
|
-
|
825
|
+
grpc_error_handle err = t->close_transport_on_writes_finished;
|
790
826
|
t->close_transport_on_writes_finished = nullptr;
|
791
827
|
close_transport_locked(t, err);
|
792
828
|
}
|
@@ -918,7 +954,8 @@ static const char* begin_writing_desc(bool partial) {
|
|
918
954
|
}
|
919
955
|
}
|
920
956
|
|
921
|
-
static void write_action_begin_locked(void* gt,
|
957
|
+
static void write_action_begin_locked(void* gt,
|
958
|
+
grpc_error_handle /*error_ignored*/) {
|
922
959
|
GPR_TIMER_SCOPE("write_action_begin_locked", 0);
|
923
960
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
924
961
|
GPR_ASSERT(t->write_state != GRPC_CHTTP2_WRITE_STATE_IDLE);
|
@@ -957,7 +994,7 @@ static void write_action_begin_locked(void* gt, grpc_error* /*error_ignored*/) {
|
|
957
994
|
}
|
958
995
|
}
|
959
996
|
|
960
|
-
static void write_action(void* gt,
|
997
|
+
static void write_action(void* gt, grpc_error_handle /*error*/) {
|
961
998
|
GPR_TIMER_SCOPE("write_action", 0);
|
962
999
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(gt);
|
963
1000
|
void* cl = t->cl;
|
@@ -969,7 +1006,7 @@ static void write_action(void* gt, grpc_error* /*error*/) {
|
|
969
1006
|
cl);
|
970
1007
|
}
|
971
1008
|
|
972
|
-
static void write_action_end(void* tp,
|
1009
|
+
static void write_action_end(void* tp, grpc_error_handle error) {
|
973
1010
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
974
1011
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->write_action_end_locked,
|
975
1012
|
write_action_end_locked, t, nullptr),
|
@@ -978,7 +1015,7 @@ static void write_action_end(void* tp, grpc_error* error) {
|
|
978
1015
|
|
979
1016
|
// Callback from the grpc_endpoint after bytes have been written by calling
|
980
1017
|
// sendmsg
|
981
|
-
static void write_action_end_locked(void* tp,
|
1018
|
+
static void write_action_end_locked(void* tp, grpc_error_handle error) {
|
982
1019
|
GPR_TIMER_SCOPE("terminate_writing_with_lock", 0);
|
983
1020
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
984
1021
|
|
@@ -1067,7 +1104,7 @@ void grpc_chttp2_add_incoming_goaway(grpc_chttp2_transport* t,
|
|
1067
1104
|
// received a GOAWAY with a non NO_ERROR code.
|
1068
1105
|
if (goaway_error != GRPC_HTTP2_NO_ERROR) {
|
1069
1106
|
gpr_log(GPR_INFO, "%s: Got goaway [%d] err=%s", t->peer_string.c_str(),
|
1070
|
-
goaway_error,
|
1107
|
+
goaway_error, grpc_error_std_string(t->goaway_error).c_str());
|
1071
1108
|
}
|
1072
1109
|
absl::Status status = grpc_error_to_absl_status(t->goaway_error);
|
1073
1110
|
// When a client receives a GOAWAY with error code ENHANCE_YOUR_CALM and debug
|
@@ -1173,7 +1210,8 @@ static void null_then_sched_closure(grpc_closure** closure) {
|
|
1173
1210
|
void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
1174
1211
|
grpc_chttp2_stream* /*s*/,
|
1175
1212
|
grpc_closure** pclosure,
|
1176
|
-
|
1213
|
+
grpc_error_handle error,
|
1214
|
+
const char* desc) {
|
1177
1215
|
grpc_closure* closure = *pclosure;
|
1178
1216
|
*pclosure = nullptr;
|
1179
1217
|
if (closure == nullptr) {
|
@@ -1182,7 +1220,6 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1182
1220
|
}
|
1183
1221
|
closure->next_data.scratch -= CLOSURE_BARRIER_FIRST_REF_BIT;
|
1184
1222
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
1185
|
-
const char* errstr = grpc_error_string(error);
|
1186
1223
|
gpr_log(
|
1187
1224
|
GPR_INFO,
|
1188
1225
|
"complete_closure_step: t=%p %p refs=%d flags=0x%04x desc=%s err=%s "
|
@@ -1192,7 +1229,8 @@ void grpc_chttp2_complete_closure_step(grpc_chttp2_transport* t,
|
|
1192
1229
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1193
1230
|
static_cast<int>(closure->next_data.scratch %
|
1194
1231
|
CLOSURE_BARRIER_FIRST_REF_BIT),
|
1195
|
-
desc,
|
1232
|
+
desc, grpc_error_std_string(error).c_str(),
|
1233
|
+
write_state_name(t->write_state));
|
1196
1234
|
}
|
1197
1235
|
if (error != GRPC_ERROR_NONE) {
|
1198
1236
|
if (closure->error_data.error == GRPC_ERROR_NONE) {
|
@@ -1281,7 +1319,8 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1281
1319
|
UINT32_MAX, GRPC_CLOSURE_INIT(&s->complete_fetch_locked,
|
1282
1320
|
::complete_fetch, s,
|
1283
1321
|
grpc_schedule_on_exec_ctx))) {
|
1284
|
-
|
1322
|
+
grpc_error_handle error =
|
1323
|
+
s->fetching_send_message->Pull(&s->fetching_slice);
|
1285
1324
|
if (error != GRPC_ERROR_NONE) {
|
1286
1325
|
s->fetching_send_message.reset();
|
1287
1326
|
grpc_chttp2_cancel_stream(t, s, error);
|
@@ -1292,14 +1331,14 @@ static void continue_fetching_send_locked(grpc_chttp2_transport* t,
|
|
1292
1331
|
}
|
1293
1332
|
}
|
1294
1333
|
|
1295
|
-
static void complete_fetch(void* gs,
|
1334
|
+
static void complete_fetch(void* gs, grpc_error_handle error) {
|
1296
1335
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(gs);
|
1297
1336
|
s->t->combiner->Run(GRPC_CLOSURE_INIT(&s->complete_fetch_locked,
|
1298
1337
|
::complete_fetch_locked, s, nullptr),
|
1299
1338
|
GRPC_ERROR_REF(error));
|
1300
1339
|
}
|
1301
1340
|
|
1302
|
-
static void complete_fetch_locked(void* gs,
|
1341
|
+
static void complete_fetch_locked(void* gs, grpc_error_handle error) {
|
1303
1342
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(gs);
|
1304
1343
|
grpc_chttp2_transport* t = s->t;
|
1305
1344
|
if (error == GRPC_ERROR_NONE) {
|
@@ -1329,7 +1368,7 @@ static void log_metadata(const grpc_metadata_batch* md_batch, uint32_t id,
|
|
1329
1368
|
}
|
1330
1369
|
|
1331
1370
|
static void perform_stream_op_locked(void* stream_op,
|
1332
|
-
|
1371
|
+
grpc_error_handle /*error_ignored*/) {
|
1333
1372
|
GPR_TIMER_SCOPE("perform_stream_op_locked", 0);
|
1334
1373
|
|
1335
1374
|
grpc_transport_stream_op_batch* op =
|
@@ -1613,7 +1652,7 @@ static void perform_stream_op(grpc_transport* gt, grpc_stream* gs,
|
|
1613
1652
|
GRPC_ERROR_NONE);
|
1614
1653
|
}
|
1615
1654
|
|
1616
|
-
static void cancel_pings(grpc_chttp2_transport* t,
|
1655
|
+
static void cancel_pings(grpc_chttp2_transport* t, grpc_error_handle error) {
|
1617
1656
|
// callback remaining pings: they're not allowed to call into the transport,
|
1618
1657
|
// and maybe they hold resources that need to be freed
|
1619
1658
|
grpc_chttp2_ping_queue* pq = &t->ping_queue;
|
@@ -1680,14 +1719,14 @@ static void send_keepalive_ping_locked(grpc_chttp2_transport* t) {
|
|
1680
1719
|
GRPC_ERROR_NONE);
|
1681
1720
|
}
|
1682
1721
|
|
1683
|
-
void grpc_chttp2_retry_initiate_ping(void* tp,
|
1722
|
+
void grpc_chttp2_retry_initiate_ping(void* tp, grpc_error_handle error) {
|
1684
1723
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1685
1724
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->retry_initiate_ping_locked,
|
1686
1725
|
retry_initiate_ping_locked, t, nullptr),
|
1687
1726
|
GRPC_ERROR_REF(error));
|
1688
1727
|
}
|
1689
1728
|
|
1690
|
-
static void retry_initiate_ping_locked(void* tp,
|
1729
|
+
static void retry_initiate_ping_locked(void* tp, grpc_error_handle error) {
|
1691
1730
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
1692
1731
|
t->ping_state.is_delayed_ping_timer_set = false;
|
1693
1732
|
if (error == GRPC_ERROR_NONE) {
|
@@ -1710,10 +1749,10 @@ void grpc_chttp2_ack_ping(grpc_chttp2_transport* t, uint64_t id) {
|
|
1710
1749
|
}
|
1711
1750
|
}
|
1712
1751
|
|
1713
|
-
static void send_goaway(grpc_chttp2_transport* t,
|
1752
|
+
static void send_goaway(grpc_chttp2_transport* t, grpc_error_handle error) {
|
1714
1753
|
// We want to log this irrespective of whether http tracing is enabled
|
1715
1754
|
gpr_log(GPR_INFO, "%s: Sending goaway err=%s", t->peer_string.c_str(),
|
1716
|
-
|
1755
|
+
grpc_error_std_string(error).c_str());
|
1717
1756
|
t->sent_goaway_state = GRPC_CHTTP2_GOAWAY_SEND_SCHEDULED;
|
1718
1757
|
grpc_http2_error_code http_error;
|
1719
1758
|
grpc_slice slice;
|
@@ -1751,7 +1790,7 @@ void grpc_chttp2_reset_ping_clock(grpc_chttp2_transport* t) {
|
|
1751
1790
|
}
|
1752
1791
|
|
1753
1792
|
static void perform_transport_op_locked(void* stream_op,
|
1754
|
-
|
1793
|
+
grpc_error_handle /*error_ignored*/) {
|
1755
1794
|
grpc_transport_op* op = static_cast<grpc_transport_op*>(stream_op);
|
1756
1795
|
grpc_chttp2_transport* t =
|
1757
1796
|
static_cast<grpc_chttp2_transport*>(op->handler_private.extra_arg);
|
@@ -1831,7 +1870,7 @@ void grpc_chttp2_maybe_complete_recv_initial_metadata(
|
|
1831
1870
|
|
1832
1871
|
void grpc_chttp2_maybe_complete_recv_message(grpc_chttp2_transport* /*t*/,
|
1833
1872
|
grpc_chttp2_stream* s) {
|
1834
|
-
|
1873
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
1835
1874
|
if (s->recv_message_ready != nullptr) {
|
1836
1875
|
*s->recv_message = nullptr;
|
1837
1876
|
if (s->final_metadata_requested && s->seen_error) {
|
@@ -1981,7 +2020,7 @@ void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_chttp2_transport* t,
|
|
1981
2020
|
}
|
1982
2021
|
|
1983
2022
|
static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
1984
|
-
|
2023
|
+
grpc_error_handle error) {
|
1985
2024
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(
|
1986
2025
|
grpc_chttp2_stream_map_delete(&t->stream_map, id));
|
1987
2026
|
GPR_DEBUG_ASSERT(s);
|
@@ -2024,7 +2063,7 @@ static void remove_stream(grpc_chttp2_transport* t, uint32_t id,
|
|
2024
2063
|
}
|
2025
2064
|
|
2026
2065
|
void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2027
|
-
|
2066
|
+
grpc_error_handle due_to_error) {
|
2028
2067
|
if (!t->is_client && !s->sent_trailing_metadata &&
|
2029
2068
|
grpc_error_has_clear_grpc_status(due_to_error)) {
|
2030
2069
|
close_from_api(t, s, due_to_error);
|
@@ -2048,7 +2087,7 @@ void grpc_chttp2_cancel_stream(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2048
2087
|
}
|
2049
2088
|
|
2050
2089
|
void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2051
|
-
|
2090
|
+
grpc_error_handle error) {
|
2052
2091
|
grpc_status_code status;
|
2053
2092
|
grpc_slice slice;
|
2054
2093
|
grpc_error_get_status(error, s->deadline, &status, &slice, nullptr, nullptr);
|
@@ -2085,7 +2124,8 @@ void grpc_chttp2_fake_status(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2085
2124
|
GRPC_ERROR_UNREF(error);
|
2086
2125
|
}
|
2087
2126
|
|
2088
|
-
static void add_error(
|
2127
|
+
static void add_error(grpc_error_handle error, grpc_error_handle* refs,
|
2128
|
+
size_t* nrefs) {
|
2089
2129
|
if (error == GRPC_ERROR_NONE) return;
|
2090
2130
|
for (size_t i = 0; i < *nrefs; i++) {
|
2091
2131
|
if (error == refs[i]) {
|
@@ -2096,16 +2136,17 @@ static void add_error(grpc_error* error, grpc_error** refs, size_t* nrefs) {
|
|
2096
2136
|
++*nrefs;
|
2097
2137
|
}
|
2098
2138
|
|
2099
|
-
static
|
2100
|
-
|
2101
|
-
|
2139
|
+
static grpc_error_handle removal_error(grpc_error_handle extra_error,
|
2140
|
+
grpc_chttp2_stream* s,
|
2141
|
+
const char* main_error_msg) {
|
2142
|
+
grpc_error_handle refs[3];
|
2102
2143
|
size_t nrefs = 0;
|
2103
2144
|
add_error(s->read_closed_error, refs, &nrefs);
|
2104
2145
|
add_error(s->write_closed_error, refs, &nrefs);
|
2105
2146
|
add_error(extra_error, refs, &nrefs);
|
2106
|
-
|
2147
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
2107
2148
|
if (nrefs > 0) {
|
2108
|
-
error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
2149
|
+
error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(main_error_msg,
|
2109
2150
|
refs, nrefs);
|
2110
2151
|
}
|
2111
2152
|
GRPC_ERROR_UNREF(extra_error);
|
@@ -2113,7 +2154,8 @@ static grpc_error* removal_error(grpc_error* extra_error, grpc_chttp2_stream* s,
|
|
2113
2154
|
}
|
2114
2155
|
|
2115
2156
|
static void flush_write_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2116
|
-
grpc_chttp2_write_cb** list,
|
2157
|
+
grpc_chttp2_write_cb** list,
|
2158
|
+
grpc_error_handle error) {
|
2117
2159
|
while (*list) {
|
2118
2160
|
grpc_chttp2_write_cb* cb = *list;
|
2119
2161
|
*list = cb->next;
|
@@ -2126,7 +2168,8 @@ static void flush_write_list(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2126
2168
|
}
|
2127
2169
|
|
2128
2170
|
void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
2129
|
-
grpc_chttp2_stream* s,
|
2171
|
+
grpc_chttp2_stream* s,
|
2172
|
+
grpc_error_handle error) {
|
2130
2173
|
error =
|
2131
2174
|
removal_error(error, s, "Pending writes failed due to stream closure");
|
2132
2175
|
s->send_initial_metadata = nullptr;
|
@@ -2150,10 +2193,10 @@ void grpc_chttp2_fail_pending_writes(grpc_chttp2_transport* t,
|
|
2150
2193
|
|
2151
2194
|
void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
2152
2195
|
grpc_chttp2_stream* s, int close_reads,
|
2153
|
-
int close_writes,
|
2196
|
+
int close_writes, grpc_error_handle error) {
|
2154
2197
|
if (s->read_closed && s->write_closed) {
|
2155
2198
|
// already closed, but we should still fake the status if needed.
|
2156
|
-
|
2199
|
+
grpc_error_handle overall_error = removal_error(error, s, "Stream removed");
|
2157
2200
|
if (overall_error != GRPC_ERROR_NONE) {
|
2158
2201
|
grpc_chttp2_fake_status(t, s, overall_error);
|
2159
2202
|
}
|
@@ -2174,7 +2217,7 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2174
2217
|
}
|
2175
2218
|
if (s->read_closed && s->write_closed) {
|
2176
2219
|
became_closed = true;
|
2177
|
-
|
2220
|
+
grpc_error_handle overall_error =
|
2178
2221
|
removal_error(GRPC_ERROR_REF(error), s, "Stream removed");
|
2179
2222
|
if (s->id != 0) {
|
2180
2223
|
remove_stream(t, s->id, GRPC_ERROR_REF(overall_error));
|
@@ -2203,7 +2246,7 @@ void grpc_chttp2_mark_stream_closed(grpc_chttp2_transport* t,
|
|
2203
2246
|
}
|
2204
2247
|
|
2205
2248
|
static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
2206
|
-
|
2249
|
+
grpc_error_handle error) {
|
2207
2250
|
grpc_slice hdr;
|
2208
2251
|
grpc_slice status_hdr;
|
2209
2252
|
grpc_slice http_status_hdr;
|
@@ -2361,7 +2404,7 @@ static void close_from_api(grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
|
2361
2404
|
}
|
2362
2405
|
|
2363
2406
|
struct cancel_stream_cb_args {
|
2364
|
-
|
2407
|
+
grpc_error_handle error;
|
2365
2408
|
grpc_chttp2_transport* t;
|
2366
2409
|
};
|
2367
2410
|
|
@@ -2371,7 +2414,8 @@ static void cancel_stream_cb(void* user_data, uint32_t /*key*/, void* stream) {
|
|
2371
2414
|
grpc_chttp2_cancel_stream(args->t, s, GRPC_ERROR_REF(args->error));
|
2372
2415
|
}
|
2373
2416
|
|
2374
|
-
static void end_all_the_calls(grpc_chttp2_transport* t,
|
2417
|
+
static void end_all_the_calls(grpc_chttp2_transport* t,
|
2418
|
+
grpc_error_handle error) {
|
2375
2419
|
intptr_t http2_error;
|
2376
2420
|
// If there is no explicit grpc or HTTP/2 error, set to UNAVAILABLE on server.
|
2377
2421
|
if (!t->is_client && !grpc_error_has_clear_grpc_status(error) &&
|
@@ -2425,15 +2469,15 @@ void grpc_chttp2_act_on_flowctl_action(
|
|
2425
2469
|
});
|
2426
2470
|
}
|
2427
2471
|
|
2428
|
-
static
|
2472
|
+
static grpc_error_handle try_http_parsing(grpc_chttp2_transport* t) {
|
2429
2473
|
grpc_http_parser parser;
|
2430
2474
|
size_t i = 0;
|
2431
|
-
|
2475
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
2432
2476
|
grpc_http_response response;
|
2433
2477
|
|
2434
2478
|
grpc_http_parser_init(&parser, GRPC_HTTP_RESPONSE, &response);
|
2435
2479
|
|
2436
|
-
|
2480
|
+
grpc_error_handle parse_error = GRPC_ERROR_NONE;
|
2437
2481
|
for (; i < t->read_buffer.count && parse_error == GRPC_ERROR_NONE; i++) {
|
2438
2482
|
parse_error =
|
2439
2483
|
grpc_http_parser_parse(&parser, t->read_buffer.slices[i], nullptr);
|
@@ -2454,34 +2498,34 @@ static grpc_error* try_http_parsing(grpc_chttp2_transport* t) {
|
|
2454
2498
|
return error;
|
2455
2499
|
}
|
2456
2500
|
|
2457
|
-
static void read_action(void* tp,
|
2501
|
+
static void read_action(void* tp, grpc_error_handle error) {
|
2458
2502
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2459
2503
|
t->combiner->Run(
|
2460
2504
|
GRPC_CLOSURE_INIT(&t->read_action_locked, read_action_locked, t, nullptr),
|
2461
2505
|
GRPC_ERROR_REF(error));
|
2462
2506
|
}
|
2463
2507
|
|
2464
|
-
static void read_action_locked(void* tp,
|
2508
|
+
static void read_action_locked(void* tp, grpc_error_handle error) {
|
2465
2509
|
GPR_TIMER_SCOPE("reading_action_locked", 0);
|
2466
2510
|
|
2467
2511
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2468
2512
|
|
2469
2513
|
GRPC_ERROR_REF(error);
|
2470
2514
|
|
2471
|
-
|
2515
|
+
grpc_error_handle err = error;
|
2472
2516
|
if (err != GRPC_ERROR_NONE) {
|
2473
2517
|
err = grpc_error_set_int(GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING(
|
2474
2518
|
"Endpoint read failed", &err, 1),
|
2475
2519
|
GRPC_ERROR_INT_OCCURRED_DURING_WRITE,
|
2476
2520
|
t->write_state);
|
2477
2521
|
}
|
2478
|
-
GPR_SWAP(
|
2522
|
+
GPR_SWAP(grpc_error_handle, err, error);
|
2479
2523
|
GRPC_ERROR_UNREF(err);
|
2480
2524
|
if (t->closed_with_error == GRPC_ERROR_NONE) {
|
2481
2525
|
GPR_TIMER_SCOPE("reading_action.parse", 0);
|
2482
2526
|
size_t i = 0;
|
2483
|
-
|
2484
|
-
|
2527
|
+
grpc_error_handle errors[3] = {GRPC_ERROR_REF(error), GRPC_ERROR_NONE,
|
2528
|
+
GRPC_ERROR_NONE};
|
2485
2529
|
for (; i < t->read_buffer.count && errors[1] == GRPC_ERROR_NONE; i++) {
|
2486
2530
|
errors[1] = grpc_chttp2_perform_read(t, t->read_buffer.slices[i]);
|
2487
2531
|
}
|
@@ -2569,23 +2613,21 @@ void schedule_bdp_ping_locked(grpc_chttp2_transport* t) {
|
|
2569
2613
|
grpc_schedule_on_exec_ctx),
|
2570
2614
|
GRPC_CLOSURE_INIT(&t->finish_bdp_ping_locked, finish_bdp_ping, t,
|
2571
2615
|
grpc_schedule_on_exec_ctx));
|
2572
|
-
|
2573
|
-
// fixed.
|
2574
|
-
// grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_BDP_PING);
|
2616
|
+
grpc_chttp2_initiate_write(t, GRPC_CHTTP2_INITIATE_WRITE_BDP_PING);
|
2575
2617
|
}
|
2576
2618
|
|
2577
|
-
static void start_bdp_ping(void* tp,
|
2619
|
+
static void start_bdp_ping(void* tp, grpc_error_handle error) {
|
2578
2620
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2579
2621
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_bdp_ping_locked,
|
2580
2622
|
start_bdp_ping_locked, t, nullptr),
|
2581
2623
|
GRPC_ERROR_REF(error));
|
2582
2624
|
}
|
2583
2625
|
|
2584
|
-
static void start_bdp_ping_locked(void* tp,
|
2626
|
+
static void start_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2585
2627
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2586
2628
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2587
2629
|
gpr_log(GPR_INFO, "%s: Start BDP ping err=%s", t->peer_string.c_str(),
|
2588
|
-
|
2630
|
+
grpc_error_std_string(error).c_str());
|
2589
2631
|
}
|
2590
2632
|
if (error != GRPC_ERROR_NONE || t->closed_with_error != GRPC_ERROR_NONE) {
|
2591
2633
|
return;
|
@@ -2598,18 +2640,18 @@ static void start_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2598
2640
|
t->bdp_ping_started = true;
|
2599
2641
|
}
|
2600
2642
|
|
2601
|
-
static void finish_bdp_ping(void* tp,
|
2643
|
+
static void finish_bdp_ping(void* tp, grpc_error_handle error) {
|
2602
2644
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2603
2645
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_bdp_ping_locked,
|
2604
2646
|
finish_bdp_ping_locked, t, nullptr),
|
2605
2647
|
GRPC_ERROR_REF(error));
|
2606
2648
|
}
|
2607
2649
|
|
2608
|
-
static void finish_bdp_ping_locked(void* tp,
|
2650
|
+
static void finish_bdp_ping_locked(void* tp, grpc_error_handle error) {
|
2609
2651
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2610
2652
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_http_trace)) {
|
2611
2653
|
gpr_log(GPR_INFO, "%s: Complete BDP ping err=%s", t->peer_string.c_str(),
|
2612
|
-
|
2654
|
+
grpc_error_std_string(error).c_str());
|
2613
2655
|
}
|
2614
2656
|
if (error != GRPC_ERROR_NONE || t->closed_with_error != GRPC_ERROR_NONE) {
|
2615
2657
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "bdp_ping");
|
@@ -2635,7 +2677,7 @@ static void finish_bdp_ping_locked(void* tp, grpc_error* error) {
|
|
2635
2677
|
&t->next_bdp_ping_timer_expired_locked);
|
2636
2678
|
}
|
2637
2679
|
|
2638
|
-
static void next_bdp_ping_timer_expired(void* tp,
|
2680
|
+
static void next_bdp_ping_timer_expired(void* tp, grpc_error_handle error) {
|
2639
2681
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2640
2682
|
t->combiner->Run(
|
2641
2683
|
GRPC_CLOSURE_INIT(&t->next_bdp_ping_timer_expired_locked,
|
@@ -2643,7 +2685,8 @@ static void next_bdp_ping_timer_expired(void* tp, grpc_error* error) {
|
|
2643
2685
|
GRPC_ERROR_REF(error));
|
2644
2686
|
}
|
2645
2687
|
|
2646
|
-
static void next_bdp_ping_timer_expired_locked(void* tp,
|
2688
|
+
static void next_bdp_ping_timer_expired_locked(void* tp,
|
2689
|
+
grpc_error_handle error) {
|
2647
2690
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(tp);
|
2648
2691
|
GPR_ASSERT(t->have_next_bdp_ping_timer);
|
2649
2692
|
t->have_next_bdp_ping_timer = false;
|
@@ -2719,14 +2762,14 @@ void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
|
|
2719
2762
|
}
|
2720
2763
|
}
|
2721
2764
|
|
2722
|
-
static void init_keepalive_ping(void* arg,
|
2765
|
+
static void init_keepalive_ping(void* arg, grpc_error_handle error) {
|
2723
2766
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2724
2767
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->init_keepalive_ping_locked,
|
2725
2768
|
init_keepalive_ping_locked, t, nullptr),
|
2726
2769
|
GRPC_ERROR_REF(error));
|
2727
2770
|
}
|
2728
2771
|
|
2729
|
-
static void init_keepalive_ping_locked(void* arg,
|
2772
|
+
static void init_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2730
2773
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2731
2774
|
GPR_ASSERT(t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_WAITING);
|
2732
2775
|
if (t->destroying || t->closed_with_error != GRPC_ERROR_NONE) {
|
@@ -2759,14 +2802,14 @@ static void init_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2759
2802
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "init keepalive ping");
|
2760
2803
|
}
|
2761
2804
|
|
2762
|
-
static void start_keepalive_ping(void* arg,
|
2805
|
+
static void start_keepalive_ping(void* arg, grpc_error_handle error) {
|
2763
2806
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2764
2807
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->start_keepalive_ping_locked,
|
2765
2808
|
start_keepalive_ping_locked, t, nullptr),
|
2766
2809
|
GRPC_ERROR_REF(error));
|
2767
2810
|
}
|
2768
2811
|
|
2769
|
-
static void start_keepalive_ping_locked(void* arg,
|
2812
|
+
static void start_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2770
2813
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2771
2814
|
if (error != GRPC_ERROR_NONE) {
|
2772
2815
|
return;
|
@@ -2787,14 +2830,14 @@ static void start_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2787
2830
|
t->keepalive_ping_started = true;
|
2788
2831
|
}
|
2789
2832
|
|
2790
|
-
static void finish_keepalive_ping(void* arg,
|
2833
|
+
static void finish_keepalive_ping(void* arg, grpc_error_handle error) {
|
2791
2834
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2792
2835
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->finish_keepalive_ping_locked,
|
2793
2836
|
finish_keepalive_ping_locked, t, nullptr),
|
2794
2837
|
GRPC_ERROR_REF(error));
|
2795
2838
|
}
|
2796
2839
|
|
2797
|
-
static void finish_keepalive_ping_locked(void* arg,
|
2840
|
+
static void finish_keepalive_ping_locked(void* arg, grpc_error_handle error) {
|
2798
2841
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2799
2842
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2800
2843
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2825,7 +2868,7 @@ static void finish_keepalive_ping_locked(void* arg, grpc_error* error) {
|
|
2825
2868
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "keepalive ping end");
|
2826
2869
|
}
|
2827
2870
|
|
2828
|
-
static void keepalive_watchdog_fired(void* arg,
|
2871
|
+
static void keepalive_watchdog_fired(void* arg, grpc_error_handle error) {
|
2829
2872
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2830
2873
|
t->combiner->Run(
|
2831
2874
|
GRPC_CLOSURE_INIT(&t->keepalive_watchdog_fired_locked,
|
@@ -2833,7 +2876,8 @@ static void keepalive_watchdog_fired(void* arg, grpc_error* error) {
|
|
2833
2876
|
GRPC_ERROR_REF(error));
|
2834
2877
|
}
|
2835
2878
|
|
2836
|
-
static void keepalive_watchdog_fired_locked(void* arg,
|
2879
|
+
static void keepalive_watchdog_fired_locked(void* arg,
|
2880
|
+
grpc_error_handle error) {
|
2837
2881
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
2838
2882
|
if (t->keepalive_state == GRPC_CHTTP2_KEEPALIVE_STATE_PINGING) {
|
2839
2883
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2890,7 +2934,7 @@ static void set_pollset_set(grpc_transport* gt, grpc_stream* /*gs*/,
|
|
2890
2934
|
// BYTE STREAM
|
2891
2935
|
//
|
2892
2936
|
|
2893
|
-
static void reset_byte_stream(void* arg,
|
2937
|
+
static void reset_byte_stream(void* arg, grpc_error_handle error) {
|
2894
2938
|
grpc_chttp2_stream* s = static_cast<grpc_chttp2_stream*>(arg);
|
2895
2939
|
s->pending_byte_stream = false;
|
2896
2940
|
if (error == GRPC_ERROR_NONE) {
|
@@ -2921,8 +2965,8 @@ Chttp2IncomingByteStream::Chttp2IncomingByteStream(
|
|
2921
2965
|
stream->byte_stream_error = GRPC_ERROR_NONE;
|
2922
2966
|
}
|
2923
2967
|
|
2924
|
-
void Chttp2IncomingByteStream::OrphanLocked(
|
2925
|
-
|
2968
|
+
void Chttp2IncomingByteStream::OrphanLocked(
|
2969
|
+
void* arg, grpc_error_handle /*error_ignored*/) {
|
2926
2970
|
Chttp2IncomingByteStream* bs = static_cast<Chttp2IncomingByteStream*>(arg);
|
2927
2971
|
grpc_chttp2_stream* s = bs->stream_;
|
2928
2972
|
grpc_chttp2_transport* t = s->t;
|
@@ -2941,7 +2985,7 @@ void Chttp2IncomingByteStream::Orphan() {
|
|
2941
2985
|
}
|
2942
2986
|
|
2943
2987
|
void Chttp2IncomingByteStream::NextLocked(void* arg,
|
2944
|
-
|
2988
|
+
grpc_error_handle /*error_ignored*/) {
|
2945
2989
|
Chttp2IncomingByteStream* bs = static_cast<Chttp2IncomingByteStream*>(arg);
|
2946
2990
|
grpc_chttp2_transport* t = bs->transport_;
|
2947
2991
|
grpc_chttp2_stream* s = bs->stream_;
|
@@ -3011,9 +3055,9 @@ void Chttp2IncomingByteStream::MaybeCreateStreamDecompressionCtx() {
|
|
3011
3055
|
}
|
3012
3056
|
}
|
3013
3057
|
|
3014
|
-
|
3058
|
+
grpc_error_handle Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
3015
3059
|
GPR_TIMER_SCOPE("incoming_byte_stream_pull", 0);
|
3016
|
-
|
3060
|
+
grpc_error_handle error;
|
3017
3061
|
if (stream_->unprocessed_incoming_frames_buffer.length > 0) {
|
3018
3062
|
if (!stream_->unprocessed_incoming_frames_decompressed &&
|
3019
3063
|
stream_->stream_decompression_method !=
|
@@ -3056,7 +3100,7 @@ grpc_error* Chttp2IncomingByteStream::Pull(grpc_slice* slice) {
|
|
3056
3100
|
return GRPC_ERROR_NONE;
|
3057
3101
|
}
|
3058
3102
|
|
3059
|
-
void Chttp2IncomingByteStream::PublishError(
|
3103
|
+
void Chttp2IncomingByteStream::PublishError(grpc_error_handle error) {
|
3060
3104
|
GPR_ASSERT(error != GRPC_ERROR_NONE);
|
3061
3105
|
grpc_core::ExecCtx::Run(DEBUG_LOCATION, stream_->on_next,
|
3062
3106
|
GRPC_ERROR_REF(error));
|
@@ -3066,10 +3110,10 @@ void Chttp2IncomingByteStream::PublishError(grpc_error* error) {
|
|
3066
3110
|
grpc_chttp2_cancel_stream(transport_, stream_, GRPC_ERROR_REF(error));
|
3067
3111
|
}
|
3068
3112
|
|
3069
|
-
|
3070
|
-
|
3113
|
+
grpc_error_handle Chttp2IncomingByteStream::Push(const grpc_slice& slice,
|
3114
|
+
grpc_slice* slice_out) {
|
3071
3115
|
if (remaining_bytes_ < GRPC_SLICE_LENGTH(slice)) {
|
3072
|
-
|
3116
|
+
grpc_error_handle error =
|
3073
3117
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Too many bytes in stream");
|
3074
3118
|
transport_->combiner->Run(&stream_->reset_byte_stream,
|
3075
3119
|
GRPC_ERROR_REF(error));
|
@@ -3084,8 +3128,8 @@ grpc_error* Chttp2IncomingByteStream::Push(const grpc_slice& slice,
|
|
3084
3128
|
}
|
3085
3129
|
}
|
3086
3130
|
|
3087
|
-
|
3088
|
-
|
3131
|
+
grpc_error_handle Chttp2IncomingByteStream::Finished(grpc_error_handle error,
|
3132
|
+
bool reset_on_error) {
|
3089
3133
|
if (error == GRPC_ERROR_NONE) {
|
3090
3134
|
if (remaining_bytes_ != 0) {
|
3091
3135
|
error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Truncated message");
|
@@ -3099,7 +3143,7 @@ grpc_error* Chttp2IncomingByteStream::Finished(grpc_error* error,
|
|
3099
3143
|
return error;
|
3100
3144
|
}
|
3101
3145
|
|
3102
|
-
void Chttp2IncomingByteStream::Shutdown(
|
3146
|
+
void Chttp2IncomingByteStream::Shutdown(grpc_error_handle error) {
|
3103
3147
|
GRPC_ERROR_UNREF(Finished(error, true /* reset_on_error */));
|
3104
3148
|
}
|
3105
3149
|
|
@@ -3131,14 +3175,14 @@ static void post_destructive_reclaimer(grpc_chttp2_transport* t) {
|
|
3131
3175
|
}
|
3132
3176
|
}
|
3133
3177
|
|
3134
|
-
static void benign_reclaimer(void* arg,
|
3178
|
+
static void benign_reclaimer(void* arg, grpc_error_handle error) {
|
3135
3179
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3136
3180
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->benign_reclaimer_locked,
|
3137
3181
|
benign_reclaimer_locked, t, nullptr),
|
3138
3182
|
GRPC_ERROR_REF(error));
|
3139
3183
|
}
|
3140
3184
|
|
3141
|
-
static void benign_reclaimer_locked(void* arg,
|
3185
|
+
static void benign_reclaimer_locked(void* arg, grpc_error_handle error) {
|
3142
3186
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3143
3187
|
if (error == GRPC_ERROR_NONE &&
|
3144
3188
|
grpc_chttp2_stream_map_size(&t->stream_map) == 0) {
|
@@ -3168,14 +3212,14 @@ static void benign_reclaimer_locked(void* arg, grpc_error* error) {
|
|
3168
3212
|
GRPC_CHTTP2_UNREF_TRANSPORT(t, "benign_reclaimer");
|
3169
3213
|
}
|
3170
3214
|
|
3171
|
-
static void destructive_reclaimer(void* arg,
|
3215
|
+
static void destructive_reclaimer(void* arg, grpc_error_handle error) {
|
3172
3216
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3173
3217
|
t->combiner->Run(GRPC_CLOSURE_INIT(&t->destructive_reclaimer_locked,
|
3174
3218
|
destructive_reclaimer_locked, t, nullptr),
|
3175
3219
|
GRPC_ERROR_REF(error));
|
3176
3220
|
}
|
3177
3221
|
|
3178
|
-
static void destructive_reclaimer_locked(void* arg,
|
3222
|
+
static void destructive_reclaimer_locked(void* arg, grpc_error_handle error) {
|
3179
3223
|
grpc_chttp2_transport* t = static_cast<grpc_chttp2_transport*>(arg);
|
3180
3224
|
size_t n = grpc_chttp2_stream_map_size(&t->stream_map);
|
3181
3225
|
t->destructive_reclaimer_registered = false;
|
@@ -3293,7 +3337,7 @@ grpc_transport* grpc_create_chttp2_transport(
|
|
3293
3337
|
|
3294
3338
|
void grpc_chttp2_transport_start_reading(
|
3295
3339
|
grpc_transport* transport, grpc_slice_buffer* read_buffer,
|
3296
|
-
grpc_closure* notify_on_receive_settings) {
|
3340
|
+
grpc_closure* notify_on_receive_settings, grpc_closure* notify_on_close) {
|
3297
3341
|
grpc_chttp2_transport* t =
|
3298
3342
|
reinterpret_cast<grpc_chttp2_transport*>(transport);
|
3299
3343
|
GRPC_CHTTP2_REF_TRANSPORT(
|
@@ -3303,6 +3347,7 @@ void grpc_chttp2_transport_start_reading(
|
|
3303
3347
|
gpr_free(read_buffer);
|
3304
3348
|
}
|
3305
3349
|
t->notify_on_receive_settings = notify_on_receive_settings;
|
3350
|
+
t->notify_on_close = notify_on_close;
|
3306
3351
|
t->combiner->Run(
|
3307
3352
|
GRPC_CLOSURE_INIT(&t->read_action_locked, read_action_locked, t, nullptr),
|
3308
3353
|
GRPC_ERROR_NONE);
|