grpc 1.37.1 → 1.40.0.pre1
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 +112 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +330 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +66 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +44 -19
- data/include/grpc/impl/codegen/port_platform.h +46 -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 +975 -3282
- data/src/core/ext/filters/client_channel/client_channel.h +513 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +20 -7
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- 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 +53 -51
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- 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 +14 -23
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +16 -16
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -17
- 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 +17 -20
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +53 -65
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +36 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +33 -55
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +151 -163
- data/src/core/ext/filters/client_channel/lb_policy.cc +2 -16
- data/src/core/ext/filters/client_channel/lb_policy.h +70 -46
- 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/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
- 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_event_engine.cc +31 -0
- 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 +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- 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_event_engine.cc +28 -0
- 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 +18 -12
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- 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 +20 -13
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +158 -102
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- 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 +2598 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- 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_call_data.h +45 -5
- 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 +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- 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 +19 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +33 -23
- 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 +12 -10
- 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 +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +49 -46
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +66 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +141 -126
- 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 +9 -9
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +12 -12
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -16
- 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 +11 -10
- 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_parser.cc +652 -736
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +195 -74
- 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 +33 -28
- data/src/core/ext/transport/chttp2/transport/parsing.cc +129 -106
- data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +56 -35
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +180 -76
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +97 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +45 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +67 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +66 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +227 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +32 -24
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -73
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +27 -19
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +24 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +57 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +29 -17
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +15 -11
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +85 -43
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +274 -91
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +11 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +30 -13
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +33 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +115 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +1 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +82 -66
- data/src/core/ext/upb-generated/validate/validate.upb.h +220 -124
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +437 -410
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
- 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 +9 -8
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +135 -125
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +131 -123
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -55
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +684 -664
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +441 -375
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +122 -114
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +112 -79
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
- 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 +665 -317
- data/src/core/ext/xds/xds_api.h +52 -14
- data/src/core/ext/xds/xds_bootstrap.cc +101 -160
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +370 -215
- data/src/core/ext/xds/xds_client.h +38 -28
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_http_filters.cc +3 -2
- data/src/core/ext/xds/xds_http_filters.h +3 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- 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 +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +11 -10
- 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 +21 -13
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/channel/status_util.h +4 -0
- data/src/core/lib/compression/stream_compression.h +1 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/debug/stats.h +1 -1
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/manual_constructor.h +1 -1
- data/src/core/lib/gprpp/orphanable.h +3 -3
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/gprpp/sync.h +2 -30
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- 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 +8 -10
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- 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 +3 -3
- 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_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -61
- data/src/core/lib/iomgr/error.h +217 -106
- 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 +5 -5
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +192 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +263 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- 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 +2 -2
- 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 +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- 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 +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +2 -2
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -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 +13 -10
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- 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 +22 -19
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +7 -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 +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- 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 +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +29 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- 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 +25 -23
- 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.h +6 -1
- 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 +6 -6
- 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_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 +5 -6
- data/src/core/lib/matchers/matchers.cc +46 -58
- data/src/core/lib/matchers/matchers.h +30 -29
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- 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 +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- 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 +15 -12
- 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 +5 -4
- 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 +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
- 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/jwt/json_token.cc +2 -2
- 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 -5
- 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/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 +68 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +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 +2 -2
- 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 +22 -9
- 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 +27 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +60 -76
- 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 +45 -36
- data/src/core/lib/security/transport/server_auth_filter.cc +17 -18
- 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_internal.h +1 -0
- data/src/core/lib/surface/call.cc +72 -52
- data/src/core/lib/surface/call.h +13 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +31 -23
- data/src/core/lib/surface/server.h +19 -18
- 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 +2 -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 +21 -10
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -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/test_services_pb.rb +6 -6
- 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/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 +483 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +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 +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- 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 +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- 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 +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- 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 +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -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 +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- 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 +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
- 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/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/xxhash/xxhash.h +77 -195
- metadata +116 -51
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -126,8 +126,8 @@ grpc_millis GetClientIdleTimeout(const grpc_channel_args* args) {
|
|
126
126
|
|
127
127
|
class ChannelData {
|
128
128
|
public:
|
129
|
-
static
|
130
|
-
|
129
|
+
static grpc_error_handle Init(grpc_channel_element* elem,
|
130
|
+
grpc_channel_element_args* args);
|
131
131
|
static void Destroy(grpc_channel_element* elem);
|
132
132
|
|
133
133
|
static void StartTransportOp(grpc_channel_element* elem,
|
@@ -139,11 +139,12 @@ class ChannelData {
|
|
139
139
|
|
140
140
|
private:
|
141
141
|
ChannelData(grpc_channel_element* elem, grpc_channel_element_args* args,
|
142
|
-
|
142
|
+
grpc_error_handle* error);
|
143
143
|
~ChannelData() = default;
|
144
144
|
|
145
|
-
static void IdleTimerCallback(void* arg,
|
146
|
-
static void IdleTransportOpCompleteCallback(void* arg,
|
145
|
+
static void IdleTimerCallback(void* arg, grpc_error_handle error);
|
146
|
+
static void IdleTransportOpCompleteCallback(void* arg,
|
147
|
+
grpc_error_handle error);
|
147
148
|
|
148
149
|
void StartIdleTimer();
|
149
150
|
|
@@ -170,9 +171,9 @@ class ChannelData {
|
|
170
171
|
grpc_closure idle_transport_op_complete_callback_;
|
171
172
|
};
|
172
173
|
|
173
|
-
|
174
|
-
|
175
|
-
|
174
|
+
grpc_error_handle ChannelData::Init(grpc_channel_element* elem,
|
175
|
+
grpc_channel_element_args* args) {
|
176
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
176
177
|
new (elem->channel_data) ChannelData(elem, args, &error);
|
177
178
|
return error;
|
178
179
|
}
|
@@ -186,7 +187,7 @@ void ChannelData::StartTransportOp(grpc_channel_element* elem,
|
|
186
187
|
grpc_transport_op* op) {
|
187
188
|
ChannelData* chand = static_cast<ChannelData*>(elem->channel_data);
|
188
189
|
// Catch the disconnect_with_error transport op.
|
189
|
-
if (op->disconnect_with_error !=
|
190
|
+
if (op->disconnect_with_error != GRPC_ERROR_NONE) {
|
190
191
|
// IncreaseCallCount() introduces a phony call and prevent the timer from
|
191
192
|
// being reset by other threads.
|
192
193
|
chand->IncreaseCallCount();
|
@@ -283,7 +284,7 @@ void ChannelData::DecreaseCallCount() {
|
|
283
284
|
|
284
285
|
ChannelData::ChannelData(grpc_channel_element* elem,
|
285
286
|
grpc_channel_element_args* args,
|
286
|
-
|
287
|
+
grpc_error_handle* /*error*/)
|
287
288
|
: elem_(elem),
|
288
289
|
channel_stack_(args->channel_stack),
|
289
290
|
client_idle_timeout_(GetClientIdleTimeout(args->channel_args)) {
|
@@ -303,7 +304,7 @@ ChannelData::ChannelData(grpc_channel_element* elem,
|
|
303
304
|
grpc_schedule_on_exec_ctx);
|
304
305
|
}
|
305
306
|
|
306
|
-
void ChannelData::IdleTimerCallback(void* arg,
|
307
|
+
void ChannelData::IdleTimerCallback(void* arg, grpc_error_handle error) {
|
307
308
|
GRPC_IDLE_FILTER_LOG("timer alarms");
|
308
309
|
ChannelData* chand = static_cast<ChannelData*>(arg);
|
309
310
|
if (error != GRPC_ERROR_NONE) {
|
@@ -352,7 +353,7 @@ void ChannelData::IdleTimerCallback(void* arg, grpc_error* error) {
|
|
352
353
|
}
|
353
354
|
|
354
355
|
void ChannelData::IdleTransportOpCompleteCallback(void* arg,
|
355
|
-
|
356
|
+
grpc_error_handle /*error*/) {
|
356
357
|
ChannelData* chand = static_cast<ChannelData*>(arg);
|
357
358
|
GRPC_CHANNEL_STACK_UNREF(chand->channel_stack_, "idle transport op");
|
358
359
|
}
|
@@ -381,15 +382,15 @@ void ChannelData::EnterIdle() {
|
|
381
382
|
|
382
383
|
class CallData {
|
383
384
|
public:
|
384
|
-
static
|
385
|
-
|
385
|
+
static grpc_error_handle Init(grpc_call_element* elem,
|
386
|
+
const grpc_call_element_args* args);
|
386
387
|
static void Destroy(grpc_call_element* elem,
|
387
388
|
const grpc_call_final_info* final_info,
|
388
389
|
grpc_closure* then_schedule_closure);
|
389
390
|
};
|
390
391
|
|
391
|
-
|
392
|
-
|
392
|
+
grpc_error_handle CallData::Init(grpc_call_element* elem,
|
393
|
+
const grpc_call_element_args* /*args*/) {
|
393
394
|
ChannelData* chand = static_cast<ChannelData*>(elem->channel_data);
|
394
395
|
chand->IncreaseCallCount();
|
395
396
|
return GRPC_ERROR_NONE;
|
@@ -51,7 +51,7 @@ class TimerState {
|
|
51
51
|
private:
|
52
52
|
// The on_complete callback used when sending a cancel_error batch down the
|
53
53
|
// filter stack. Yields the call combiner when the batch returns.
|
54
|
-
static void YieldCallCombiner(void* arg,
|
54
|
+
static void YieldCallCombiner(void* arg, grpc_error_handle /*ignored*/) {
|
55
55
|
TimerState* self = static_cast<TimerState*>(arg);
|
56
56
|
grpc_deadline_state* deadline_state =
|
57
57
|
static_cast<grpc_deadline_state*>(self->elem_->call_data);
|
@@ -62,7 +62,7 @@ class TimerState {
|
|
62
62
|
|
63
63
|
// This is called via the call combiner, so access to deadline_state is
|
64
64
|
// synchronized.
|
65
|
-
static void SendCancelOpInCallCombiner(void* arg,
|
65
|
+
static void SendCancelOpInCallCombiner(void* arg, grpc_error_handle error) {
|
66
66
|
TimerState* self = static_cast<TimerState*>(arg);
|
67
67
|
grpc_transport_stream_op_batch* batch = grpc_make_transport_stream_op(
|
68
68
|
GRPC_CLOSURE_INIT(&self->closure_, YieldCallCombiner, self, nullptr));
|
@@ -72,7 +72,7 @@ class TimerState {
|
|
72
72
|
}
|
73
73
|
|
74
74
|
// Timer callback.
|
75
|
-
static void TimerCallback(void* arg,
|
75
|
+
static void TimerCallback(void* arg, grpc_error_handle error) {
|
76
76
|
TimerState* self = static_cast<TimerState*>(arg);
|
77
77
|
grpc_deadline_state* deadline_state =
|
78
78
|
static_cast<grpc_deadline_state*>(self->elem_->call_data);
|
@@ -135,7 +135,7 @@ static void cancel_timer_if_needed(grpc_deadline_state* deadline_state) {
|
|
135
135
|
}
|
136
136
|
|
137
137
|
// Callback run when we receive trailing metadata.
|
138
|
-
static void recv_trailing_metadata_ready(void* arg,
|
138
|
+
static void recv_trailing_metadata_ready(void* arg, grpc_error_handle error) {
|
139
139
|
grpc_deadline_state* deadline_state = static_cast<grpc_deadline_state*>(arg);
|
140
140
|
cancel_timer_if_needed(deadline_state);
|
141
141
|
// Invoke the original callback.
|
@@ -168,7 +168,7 @@ struct start_timer_after_init_state {
|
|
168
168
|
grpc_millis deadline;
|
169
169
|
grpc_closure closure;
|
170
170
|
};
|
171
|
-
static void start_timer_after_init(void* arg,
|
171
|
+
static void start_timer_after_init(void* arg, grpc_error_handle error) {
|
172
172
|
struct start_timer_after_init_state* state =
|
173
173
|
static_cast<struct start_timer_after_init_state*>(arg);
|
174
174
|
grpc_deadline_state* deadline_state =
|
@@ -241,8 +241,8 @@ void grpc_deadline_state_client_start_transport_stream_op_batch(
|
|
241
241
|
//
|
242
242
|
|
243
243
|
// Constructor for channel_data. Used for both client and server filters.
|
244
|
-
static
|
245
|
-
|
244
|
+
static grpc_error_handle deadline_init_channel_elem(
|
245
|
+
grpc_channel_element* /*elem*/, grpc_channel_element_args* args) {
|
246
246
|
GPR_ASSERT(!args->is_last);
|
247
247
|
return GRPC_ERROR_NONE;
|
248
248
|
}
|
@@ -268,8 +268,8 @@ typedef struct server_call_data {
|
|
268
268
|
} server_call_data;
|
269
269
|
|
270
270
|
// Constructor for call_data. Used for both client and server filters.
|
271
|
-
static
|
272
|
-
|
271
|
+
static grpc_error_handle deadline_init_call_elem(
|
272
|
+
grpc_call_element* elem, const grpc_call_element_args* args) {
|
273
273
|
new (elem->call_data) grpc_deadline_state(elem, *args, args->deadline);
|
274
274
|
return GRPC_ERROR_NONE;
|
275
275
|
}
|
@@ -292,7 +292,7 @@ static void deadline_client_start_transport_stream_op_batch(
|
|
292
292
|
}
|
293
293
|
|
294
294
|
// Callback for receiving initial metadata on the server.
|
295
|
-
static void recv_initial_metadata_ready(void* arg,
|
295
|
+
static void recv_initial_metadata_ready(void* arg, grpc_error_handle error) {
|
296
296
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
297
297
|
server_call_data* calld = static_cast<server_call_data*>(elem->call_data);
|
298
298
|
start_timer_if_needed(elem, calld->recv_initial_metadata->deadline);
|
@@ -83,8 +83,8 @@ inline bool UnderFraction(const uint32_t numerator,
|
|
83
83
|
|
84
84
|
class ChannelData {
|
85
85
|
public:
|
86
|
-
static
|
87
|
-
|
86
|
+
static grpc_error_handle Init(grpc_channel_element* elem,
|
87
|
+
grpc_channel_element_args* args);
|
88
88
|
static void Destroy(grpc_channel_element* elem);
|
89
89
|
|
90
90
|
int index() const { return index_; }
|
@@ -99,8 +99,8 @@ class ChannelData {
|
|
99
99
|
|
100
100
|
class CallData {
|
101
101
|
public:
|
102
|
-
static
|
103
|
-
|
102
|
+
static grpc_error_handle Init(grpc_call_element* elem,
|
103
|
+
const grpc_call_element_args* args);
|
104
104
|
|
105
105
|
static void Destroy(grpc_call_element* elem,
|
106
106
|
const grpc_call_final_info* /*final_info*/,
|
@@ -129,7 +129,7 @@ class CallData {
|
|
129
129
|
// GRPC_ERROR_NONE.
|
130
130
|
// If this call is already been delay injected, skip the active faults
|
131
131
|
// quota check.
|
132
|
-
|
132
|
+
grpc_error_handle MaybeAbort();
|
133
133
|
|
134
134
|
// Delays the stream operations batch.
|
135
135
|
void DelayBatch(grpc_call_element* elem,
|
@@ -144,11 +144,11 @@ class CallData {
|
|
144
144
|
}
|
145
145
|
|
146
146
|
// This is a callback that will be invoked after the delay timer is up.
|
147
|
-
static void ResumeBatch(void* arg,
|
147
|
+
static void ResumeBatch(void* arg, grpc_error_handle error);
|
148
148
|
|
149
149
|
// This is a callback invoked upon completion of recv_trailing_metadata.
|
150
150
|
// Injects the abort_error_ to the recv_trailing_metadata batch if needed.
|
151
|
-
static void HijackedRecvTrailingMetadataReady(void* arg,
|
151
|
+
static void HijackedRecvTrailingMetadataReady(void* arg, grpc_error_handle);
|
152
152
|
|
153
153
|
// Used to track the policy structs that needs to be destroyed in dtor.
|
154
154
|
bool fi_policy_owned_ = false;
|
@@ -166,7 +166,7 @@ class CallData {
|
|
166
166
|
ResumeBatchCanceller* resume_batch_canceller_ ABSL_GUARDED_BY(delay_mu_);
|
167
167
|
grpc_transport_stream_op_batch* delayed_batch_ ABSL_GUARDED_BY(delay_mu_);
|
168
168
|
// Abort states
|
169
|
-
|
169
|
+
grpc_error_handle abort_error_ = GRPC_ERROR_NONE;
|
170
170
|
grpc_closure recv_trailing_metadata_ready_;
|
171
171
|
grpc_closure* original_recv_trailing_metadata_ready_;
|
172
172
|
// Protects the asynchronous delay, resume, and cancellation.
|
@@ -175,8 +175,8 @@ class CallData {
|
|
175
175
|
|
176
176
|
// ChannelData
|
177
177
|
|
178
|
-
|
179
|
-
|
178
|
+
grpc_error_handle ChannelData::Init(grpc_channel_element* elem,
|
179
|
+
grpc_channel_element_args* args) {
|
180
180
|
GPR_ASSERT(elem->filter == &FaultInjectionFilterVtable);
|
181
181
|
new (elem->channel_data) ChannelData(elem, args);
|
182
182
|
return GRPC_ERROR_NONE;
|
@@ -204,7 +204,7 @@ class CallData::ResumeBatchCanceller {
|
|
204
204
|
}
|
205
205
|
|
206
206
|
private:
|
207
|
-
static void Cancel(void* arg,
|
207
|
+
static void Cancel(void* arg, grpc_error_handle error) {
|
208
208
|
auto* self = static_cast<ResumeBatchCanceller*>(arg);
|
209
209
|
auto* chand = static_cast<ChannelData*>(self->elem_->channel_data);
|
210
210
|
auto* calld = static_cast<CallData*>(self->elem_->call_data);
|
@@ -214,7 +214,7 @@ class CallData::ResumeBatchCanceller {
|
|
214
214
|
gpr_log(GPR_INFO,
|
215
215
|
"chand=%p calld=%p: cancelling schdueled pick: "
|
216
216
|
"error=%s self=%p calld->resume_batch_canceller_=%p",
|
217
|
-
chand, calld,
|
217
|
+
chand, calld, grpc_error_std_string(error).c_str(), self,
|
218
218
|
calld->resume_batch_canceller_);
|
219
219
|
}
|
220
220
|
if (error != GRPC_ERROR_NONE && calld->resume_batch_canceller_ == self) {
|
@@ -237,8 +237,8 @@ class CallData::ResumeBatchCanceller {
|
|
237
237
|
|
238
238
|
// CallData
|
239
239
|
|
240
|
-
|
241
|
-
|
240
|
+
grpc_error_handle CallData::Init(grpc_call_element* elem,
|
241
|
+
const grpc_call_element_args* args) {
|
242
242
|
auto* calld = new (elem->call_data) CallData(elem, args);
|
243
243
|
if (calld->fi_policy_ == nullptr) {
|
244
244
|
return GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
@@ -273,7 +273,7 @@ void CallData::StartTransportStreamOpBatch(
|
|
273
273
|
calld->DelayBatch(elem, batch);
|
274
274
|
return;
|
275
275
|
}
|
276
|
-
|
276
|
+
grpc_error_handle abort_error = calld->MaybeAbort();
|
277
277
|
if (abort_error != GRPC_ERROR_NONE) {
|
278
278
|
calld->abort_error_ = abort_error;
|
279
279
|
grpc_transport_stream_op_batch_finish_with_failure(
|
@@ -414,7 +414,7 @@ bool CallData::MaybeDelay() {
|
|
414
414
|
return false;
|
415
415
|
}
|
416
416
|
|
417
|
-
|
417
|
+
grpc_error_handle CallData::MaybeAbort() {
|
418
418
|
if (abort_request_ && (delay_request_ || HaveActiveFaultsQuota(false))) {
|
419
419
|
return grpc_error_set_int(
|
420
420
|
GRPC_ERROR_CREATE_FROM_COPIED_STRING(fi_policy_->abort_message.c_str()),
|
@@ -434,7 +434,7 @@ void CallData::DelayBatch(grpc_call_element* elem,
|
|
434
434
|
grpc_timer_init(&delay_timer_, resume_time, &batch->handler_private.closure);
|
435
435
|
}
|
436
436
|
|
437
|
-
void CallData::ResumeBatch(void* arg,
|
437
|
+
void CallData::ResumeBatch(void* arg, grpc_error_handle error) {
|
438
438
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
439
439
|
auto* calld = static_cast<CallData*>(elem->call_data);
|
440
440
|
MutexLock lock(&calld->delay_mu_);
|
@@ -462,7 +462,8 @@ void CallData::ResumeBatch(void* arg, grpc_error* error) {
|
|
462
462
|
grpc_call_next_op(elem, calld->delayed_batch_);
|
463
463
|
}
|
464
464
|
|
465
|
-
void CallData::HijackedRecvTrailingMetadataReady(void* arg,
|
465
|
+
void CallData::HijackedRecvTrailingMetadataReady(void* arg,
|
466
|
+
grpc_error_handle error) {
|
466
467
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
467
468
|
auto* calld = static_cast<CallData*>(elem->call_data);
|
468
469
|
if (calld->abort_error_ != GRPC_ERROR_NONE) {
|
@@ -37,12 +37,12 @@ size_t g_fault_injection_parser_index;
|
|
37
37
|
|
38
38
|
std::vector<FaultInjectionMethodParsedConfig::FaultInjectionPolicy>
|
39
39
|
ParseFaultInjectionPolicy(const Json::Array& policies_json_array,
|
40
|
-
std::vector<
|
40
|
+
std::vector<grpc_error_handle>* error_list) {
|
41
41
|
std::vector<FaultInjectionMethodParsedConfig::FaultInjectionPolicy> policies;
|
42
42
|
for (size_t i = 0; i < policies_json_array.size(); i++) {
|
43
43
|
FaultInjectionMethodParsedConfig::FaultInjectionPolicy
|
44
44
|
fault_injection_policy;
|
45
|
-
std::vector<
|
45
|
+
std::vector<grpc_error_handle> sub_error_list;
|
46
46
|
if (policies_json_array[i].type() != Json::Type::OBJECT) {
|
47
47
|
error_list->push_back(GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
48
48
|
absl::StrCat("faultInjectionPolicy index ", i,
|
@@ -135,7 +135,7 @@ ParseFaultInjectionPolicy(const Json::Array& policies_json_array,
|
|
135
135
|
if (!sub_error_list.empty()) {
|
136
136
|
// Can't use GRPC_ERROR_CREATE_FROM_VECTOR() here, because the error
|
137
137
|
// string is not static in this case.
|
138
|
-
|
138
|
+
grpc_error_handle error = GRPC_ERROR_CREATE_FROM_COPIED_STRING(
|
139
139
|
absl::StrCat("failed to parse faultInjectionPolicy index ", i)
|
140
140
|
.c_str());
|
141
141
|
for (size_t i = 0; i < sub_error_list.size(); ++i) {
|
@@ -152,7 +152,7 @@ ParseFaultInjectionPolicy(const Json::Array& policies_json_array,
|
|
152
152
|
|
153
153
|
std::unique_ptr<ServiceConfigParser::ParsedConfig>
|
154
154
|
FaultInjectionServiceConfigParser::ParsePerMethodParams(
|
155
|
-
const grpc_channel_args* args, const Json& json,
|
155
|
+
const grpc_channel_args* args, const Json& json, grpc_error_handle* error) {
|
156
156
|
GPR_DEBUG_ASSERT(error != nullptr && *error == GRPC_ERROR_NONE);
|
157
157
|
// Only parse fault injection policy if the following channel arg is present.
|
158
158
|
if (!grpc_channel_args_find_bool(
|
@@ -162,7 +162,7 @@ FaultInjectionServiceConfigParser::ParsePerMethodParams(
|
|
162
162
|
// Parse fault injection policy from given Json
|
163
163
|
std::vector<FaultInjectionMethodParsedConfig::FaultInjectionPolicy>
|
164
164
|
fault_injection_policies;
|
165
|
-
std::vector<
|
165
|
+
std::vector<grpc_error_handle> error_list;
|
166
166
|
const Json::Array* policies_json_array;
|
167
167
|
if (ParseJsonObjectField(json.object_value(), "faultInjectionPolicy",
|
168
168
|
&policies_json_array, &error_list)) {
|
@@ -73,7 +73,7 @@ class FaultInjectionServiceConfigParser : public ServiceConfigParser::Parser {
|
|
73
73
|
// Parses the per-method service config for fault injection filter.
|
74
74
|
std::unique_ptr<ServiceConfigParser::ParsedConfig> ParsePerMethodParams(
|
75
75
|
const grpc_channel_args* args, const Json& json,
|
76
|
-
|
76
|
+
grpc_error_handle* error) override;
|
77
77
|
// Returns the parser index for FaultInjectionServiceConfigParser.
|
78
78
|
static size_t ParserIndex();
|
79
79
|
// Registers FaultInjectionServiceConfigParser to ServiceConfigParser.
|
@@ -48,10 +48,12 @@
|
|
48
48
|
/* default maximum size of payload eligible for GET request */
|
49
49
|
static constexpr size_t kMaxPayloadSizeForGet = 2048;
|
50
50
|
|
51
|
-
static void recv_initial_metadata_ready(void* user_data,
|
52
|
-
|
53
|
-
static void
|
54
|
-
|
51
|
+
static void recv_initial_metadata_ready(void* user_data,
|
52
|
+
grpc_error_handle error);
|
53
|
+
static void recv_trailing_metadata_ready(void* user_data,
|
54
|
+
grpc_error_handle error);
|
55
|
+
static void on_send_message_next_done(void* arg, grpc_error_handle error);
|
56
|
+
static void send_message_on_complete(void* arg, grpc_error_handle error);
|
55
57
|
|
56
58
|
namespace {
|
57
59
|
struct call_data {
|
@@ -81,14 +83,14 @@ struct call_data {
|
|
81
83
|
grpc_linked_mdelem user_agent;
|
82
84
|
// State for handling recv_initial_metadata ops.
|
83
85
|
grpc_metadata_batch* recv_initial_metadata;
|
84
|
-
|
86
|
+
grpc_error_handle recv_initial_metadata_error = GRPC_ERROR_NONE;
|
85
87
|
grpc_closure* original_recv_initial_metadata_ready = nullptr;
|
86
88
|
grpc_closure recv_initial_metadata_ready;
|
87
89
|
// State for handling recv_trailing_metadata ops.
|
88
90
|
grpc_metadata_batch* recv_trailing_metadata;
|
89
91
|
grpc_closure* original_recv_trailing_metadata_ready;
|
90
92
|
grpc_closure recv_trailing_metadata_ready;
|
91
|
-
|
93
|
+
grpc_error_handle recv_trailing_metadata_error = GRPC_ERROR_NONE;
|
92
94
|
bool seen_recv_trailing_metadata_ready = false;
|
93
95
|
// State for handling send_message ops.
|
94
96
|
grpc_transport_stream_op_batch* send_message_batch;
|
@@ -108,7 +110,8 @@ struct channel_data {
|
|
108
110
|
};
|
109
111
|
} // namespace
|
110
112
|
|
111
|
-
static
|
113
|
+
static grpc_error_handle client_filter_incoming_metadata(
|
114
|
+
grpc_metadata_batch* b) {
|
112
115
|
if (b->idx.named.status != nullptr) {
|
113
116
|
/* If both gRPC status and HTTP status are provided in the response, we
|
114
117
|
* should prefer the gRPC status code, as mentioned in
|
@@ -123,7 +126,7 @@ static grpc_error* client_filter_incoming_metadata(grpc_metadata_batch* b) {
|
|
123
126
|
GPR_DUMP_ASCII);
|
124
127
|
std::string msg =
|
125
128
|
absl::StrCat("Received http2 header with status: ", val);
|
126
|
-
|
129
|
+
grpc_error_handle e = grpc_error_set_str(
|
127
130
|
grpc_error_set_int(
|
128
131
|
grpc_error_set_str(
|
129
132
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
@@ -182,7 +185,8 @@ static grpc_error* client_filter_incoming_metadata(grpc_metadata_batch* b) {
|
|
182
185
|
return GRPC_ERROR_NONE;
|
183
186
|
}
|
184
187
|
|
185
|
-
static void recv_initial_metadata_ready(void* user_data,
|
188
|
+
static void recv_initial_metadata_ready(void* user_data,
|
189
|
+
grpc_error_handle error) {
|
186
190
|
grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
|
187
191
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
188
192
|
if (error == GRPC_ERROR_NONE) {
|
@@ -201,7 +205,8 @@ static void recv_initial_metadata_ready(void* user_data, grpc_error* error) {
|
|
201
205
|
grpc_core::Closure::Run(DEBUG_LOCATION, closure, error);
|
202
206
|
}
|
203
207
|
|
204
|
-
static void recv_trailing_metadata_ready(void* user_data,
|
208
|
+
static void recv_trailing_metadata_ready(void* user_data,
|
209
|
+
grpc_error_handle error) {
|
205
210
|
grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
|
206
211
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
207
212
|
if (calld->original_recv_initial_metadata_ready != nullptr) {
|
@@ -223,10 +228,13 @@ static void recv_trailing_metadata_ready(void* user_data, grpc_error* error) {
|
|
223
228
|
calld->original_recv_trailing_metadata_ready, error);
|
224
229
|
}
|
225
230
|
|
226
|
-
static void send_message_on_complete(void* arg,
|
231
|
+
static void send_message_on_complete(void* arg, grpc_error_handle error) {
|
227
232
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
228
233
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
229
234
|
calld->send_message_cache.Destroy();
|
235
|
+
// Set the batch's send_message bit back to true, so the retry code
|
236
|
+
// above knows what was in this batch.
|
237
|
+
calld->send_message_batch->send_message = true;
|
230
238
|
grpc_core::Closure::Run(DEBUG_LOCATION,
|
231
239
|
calld->original_send_message_on_complete,
|
232
240
|
GRPC_ERROR_REF(error));
|
@@ -234,9 +242,10 @@ static void send_message_on_complete(void* arg, grpc_error* error) {
|
|
234
242
|
|
235
243
|
// Pulls a slice from the send_message byte stream, updating
|
236
244
|
// calld->send_message_bytes_read.
|
237
|
-
static
|
245
|
+
static grpc_error_handle pull_slice_from_send_message(call_data* calld) {
|
238
246
|
grpc_slice incoming_slice;
|
239
|
-
|
247
|
+
grpc_error_handle error =
|
248
|
+
calld->send_message_caching_stream->Pull(&incoming_slice);
|
240
249
|
if (error == GRPC_ERROR_NONE) {
|
241
250
|
calld->send_message_bytes_read += GRPC_SLICE_LENGTH(incoming_slice);
|
242
251
|
grpc_slice_unref_internal(incoming_slice);
|
@@ -249,10 +258,11 @@ static grpc_error* pull_slice_from_send_message(call_data* calld) {
|
|
249
258
|
// calld->send_message_caching_stream->length(), then we have completed
|
250
259
|
// reading from the byte stream; otherwise, an async read has been dispatched
|
251
260
|
// and on_send_message_next_done() will be invoked when it is complete.
|
252
|
-
static
|
261
|
+
static grpc_error_handle read_all_available_send_message_data(
|
262
|
+
call_data* calld) {
|
253
263
|
while (calld->send_message_caching_stream->Next(
|
254
264
|
SIZE_MAX, &calld->on_send_message_next_done)) {
|
255
|
-
|
265
|
+
grpc_error_handle error = pull_slice_from_send_message(calld);
|
256
266
|
if (error != GRPC_ERROR_NONE) return error;
|
257
267
|
if (calld->send_message_bytes_read ==
|
258
268
|
calld->send_message_caching_stream->length()) {
|
@@ -263,7 +273,7 @@ static grpc_error* read_all_available_send_message_data(call_data* calld) {
|
|
263
273
|
}
|
264
274
|
|
265
275
|
// Async callback for ByteStream::Next().
|
266
|
-
static void on_send_message_next_done(void* arg,
|
276
|
+
static void on_send_message_next_done(void* arg, grpc_error_handle error) {
|
267
277
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
268
278
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
269
279
|
if (error != GRPC_ERROR_NONE) {
|
@@ -301,8 +311,8 @@ static char* slice_buffer_to_string(grpc_slice_buffer* slice_buffer) {
|
|
301
311
|
|
302
312
|
// Modifies the path entry in the batch's send_initial_metadata to
|
303
313
|
// append the base64-encoded query for a GET request.
|
304
|
-
static
|
305
|
-
|
314
|
+
static grpc_error_handle update_path_for_get(
|
315
|
+
grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
|
306
316
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
307
317
|
grpc_slice path_slice =
|
308
318
|
GRPC_MDVALUE(batch->payload->send_initial_metadata.send_initial_metadata
|
@@ -376,7 +386,7 @@ static void http_client_start_transport_stream_op_batch(
|
|
376
386
|
&calld->recv_trailing_metadata_ready;
|
377
387
|
}
|
378
388
|
|
379
|
-
|
389
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
380
390
|
bool batch_will_be_handled_asynchronously = false;
|
381
391
|
if (batch->send_initial_metadata) {
|
382
392
|
// Decide which HTTP VERB to use. We use GET if the request is marked
|
@@ -467,15 +477,15 @@ static void http_client_start_transport_stream_op_batch(
|
|
467
477
|
|
468
478
|
done:
|
469
479
|
if (error != GRPC_ERROR_NONE) {
|
470
|
-
grpc_transport_stream_op_batch_finish_with_failure(
|
471
|
-
|
480
|
+
grpc_transport_stream_op_batch_finish_with_failure(batch, error,
|
481
|
+
calld->call_combiner);
|
472
482
|
} else if (!batch_will_be_handled_asynchronously) {
|
473
483
|
grpc_call_next_op(elem, batch);
|
474
484
|
}
|
475
485
|
}
|
476
486
|
|
477
487
|
/* Constructor for call_data */
|
478
|
-
static
|
488
|
+
static grpc_error_handle http_client_init_call_elem(
|
479
489
|
grpc_call_element* elem, const grpc_call_element_args* args) {
|
480
490
|
new (elem->call_data) call_data(elem, *args);
|
481
491
|
return GRPC_ERROR_NONE;
|
@@ -561,7 +571,7 @@ static grpc_core::ManagedMemorySlice user_agent_from_args(
|
|
561
571
|
}
|
562
572
|
|
563
573
|
/* Constructor for channel_data */
|
564
|
-
static
|
574
|
+
static grpc_error_handle http_client_init_channel_elem(
|
565
575
|
grpc_channel_element* elem, grpc_channel_element_args* args) {
|
566
576
|
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
567
577
|
GPR_ASSERT(!args->is_last);
|