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
@@ -28,8 +28,9 @@
|
|
28
28
|
#include "src/core/lib/security/transport/auth_filters.h"
|
29
29
|
#include "src/core/lib/slice/slice_internal.h"
|
30
30
|
|
31
|
-
static void recv_initial_metadata_ready(void* arg,
|
32
|
-
static void recv_trailing_metadata_ready(void* user_data,
|
31
|
+
static void recv_initial_metadata_ready(void* arg, grpc_error_handle error);
|
32
|
+
static void recv_trailing_metadata_ready(void* user_data,
|
33
|
+
grpc_error_handle error);
|
33
34
|
|
34
35
|
namespace {
|
35
36
|
enum async_state {
|
@@ -79,10 +80,10 @@ struct call_data {
|
|
79
80
|
grpc_transport_stream_op_batch* recv_initial_metadata_batch;
|
80
81
|
grpc_closure* original_recv_initial_metadata_ready;
|
81
82
|
grpc_closure recv_initial_metadata_ready;
|
82
|
-
|
83
|
+
grpc_error_handle recv_initial_metadata_error = GRPC_ERROR_NONE;
|
83
84
|
grpc_closure recv_trailing_metadata_ready;
|
84
85
|
grpc_closure* original_recv_trailing_metadata_ready;
|
85
|
-
|
86
|
+
grpc_error_handle recv_trailing_metadata_error;
|
86
87
|
bool seen_recv_trailing_metadata_ready = false;
|
87
88
|
grpc_metadata_array md;
|
88
89
|
const grpc_metadata* consumed_md;
|
@@ -135,7 +136,7 @@ static void on_md_processing_done_inner(grpc_call_element* elem,
|
|
135
136
|
size_t num_consumed_md,
|
136
137
|
const grpc_metadata* response_md,
|
137
138
|
size_t num_response_md,
|
138
|
-
|
139
|
+
grpc_error_handle error) {
|
139
140
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
140
141
|
grpc_transport_stream_op_batch* batch = calld->recv_initial_metadata_batch;
|
141
142
|
/* TODO(jboeuf): Implement support for response_md. */
|
@@ -175,7 +176,7 @@ static void on_md_processing_done(
|
|
175
176
|
// If the call was not cancelled while we were in flight, process the result.
|
176
177
|
if (gpr_atm_full_cas(&calld->state, static_cast<gpr_atm>(STATE_INIT),
|
177
178
|
static_cast<gpr_atm>(STATE_DONE))) {
|
178
|
-
|
179
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
179
180
|
if (status != GRPC_STATUS_OK) {
|
180
181
|
if (error_details == nullptr) {
|
181
182
|
error_details = "Authentication metadata processing failed.";
|
@@ -196,7 +197,7 @@ static void on_md_processing_done(
|
|
196
197
|
GRPC_CALL_STACK_UNREF(calld->owning_call, "server_auth_metadata");
|
197
198
|
}
|
198
199
|
|
199
|
-
static void cancel_call(void* arg,
|
200
|
+
static void cancel_call(void* arg, grpc_error_handle error) {
|
200
201
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
201
202
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
202
203
|
// If the result was not already processed, invoke the callback now.
|
@@ -206,9 +207,10 @@ static void cancel_call(void* arg, grpc_error* error) {
|
|
206
207
|
on_md_processing_done_inner(elem, nullptr, 0, nullptr, 0,
|
207
208
|
GRPC_ERROR_REF(error));
|
208
209
|
}
|
210
|
+
GRPC_CALL_STACK_UNREF(calld->owning_call, "cancel_call");
|
209
211
|
}
|
210
212
|
|
211
|
-
static void recv_initial_metadata_ready(void* arg,
|
213
|
+
static void recv_initial_metadata_ready(void* arg, grpc_error_handle error) {
|
212
214
|
grpc_call_element* elem = static_cast<grpc_call_element*>(arg);
|
213
215
|
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
214
216
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
@@ -218,6 +220,9 @@ static void recv_initial_metadata_ready(void* arg, grpc_error* error) {
|
|
218
220
|
chand->creds->auth_metadata_processor().process != nullptr) {
|
219
221
|
// We're calling out to the application, so we need to make sure
|
220
222
|
// to drop the call combiner early if we get cancelled.
|
223
|
+
// TODO(yashykt): We would not need this ref if call combiners used
|
224
|
+
// Closure::Run() instead of ExecCtx::Run()
|
225
|
+
GRPC_CALL_STACK_REF(calld->owning_call, "cancel_call");
|
221
226
|
GRPC_CLOSURE_INIT(&calld->cancel_closure, cancel_call, elem,
|
222
227
|
grpc_schedule_on_exec_ctx);
|
223
228
|
calld->call_combiner->SetNotifyOnCancel(&calld->cancel_closure);
|
@@ -242,7 +247,8 @@ static void recv_initial_metadata_ready(void* arg, grpc_error* error) {
|
|
242
247
|
grpc_core::Closure::Run(DEBUG_LOCATION, closure, GRPC_ERROR_REF(error));
|
243
248
|
}
|
244
249
|
|
245
|
-
static void recv_trailing_metadata_ready(void* user_data,
|
250
|
+
static void recv_trailing_metadata_ready(void* user_data,
|
251
|
+
grpc_error_handle err) {
|
246
252
|
grpc_call_element* elem = static_cast<grpc_call_element*>(user_data);
|
247
253
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
248
254
|
if (calld->original_recv_initial_metadata_ready != nullptr) {
|
@@ -280,7 +286,7 @@ static void server_auth_start_transport_stream_op_batch(
|
|
280
286
|
}
|
281
287
|
|
282
288
|
/* Constructor for call_data */
|
283
|
-
static
|
289
|
+
static grpc_error_handle server_auth_init_call_elem(
|
284
290
|
grpc_call_element* elem, const grpc_call_element_args* args) {
|
285
291
|
new (elem->call_data) call_data(elem, *args);
|
286
292
|
return GRPC_ERROR_NONE;
|
@@ -295,18 +301,11 @@ static void server_auth_destroy_call_elem(
|
|
295
301
|
}
|
296
302
|
|
297
303
|
/* Constructor for channel_data */
|
298
|
-
static
|
304
|
+
static grpc_error_handle server_auth_init_channel_elem(
|
299
305
|
grpc_channel_element* elem, grpc_channel_element_args* args) {
|
300
306
|
GPR_ASSERT(!args->is_last);
|
301
307
|
grpc_auth_context* auth_context =
|
302
308
|
grpc_find_auth_context_in_args(args->channel_args);
|
303
|
-
if (auth_context == nullptr) {
|
304
|
-
grpc_error* error = GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
305
|
-
"No authorization context found. This might be a TRANSIENT failure due "
|
306
|
-
"to certificates not having been loaded yet.");
|
307
|
-
gpr_log(GPR_DEBUG, "%s", grpc_error_string(error));
|
308
|
-
return error;
|
309
|
-
}
|
310
309
|
GPR_ASSERT(auth_context != nullptr);
|
311
310
|
grpc_server_credentials* creds =
|
312
311
|
grpc_find_server_credentials_in_args(args->channel_args);
|
@@ -20,7 +20,8 @@
|
|
20
20
|
|
21
21
|
#include "src/core/lib/security/transport/tsi_error.h"
|
22
22
|
|
23
|
-
|
23
|
+
grpc_error_handle grpc_set_tsi_error_result(grpc_error_handle error,
|
24
|
+
tsi_result result) {
|
24
25
|
return grpc_error_set_int(
|
25
26
|
grpc_error_set_str(
|
26
27
|
error, GRPC_ERROR_STR_TSI_ERROR,
|
@@ -24,6 +24,7 @@
|
|
24
24
|
#include "src/core/lib/iomgr/error.h"
|
25
25
|
#include "src/core/tsi/transport_security_interface.h"
|
26
26
|
|
27
|
-
|
27
|
+
grpc_error_handle grpc_set_tsi_error_result(grpc_error_handle error,
|
28
|
+
tsi_result result);
|
28
29
|
|
29
30
|
#endif /* GRPC_CORE_LIB_SECURITY_TRANSPORT_TSI_ERROR_H */
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
const char* grpc_json_get_string_property(const grpc_core::Json& json,
|
32
32
|
const char* prop_name,
|
33
|
-
|
33
|
+
grpc_error_handle* error) {
|
34
34
|
if (json.type() != grpc_core::Json::Type::OBJECT) {
|
35
35
|
if (error != nullptr) {
|
36
36
|
*error =
|
@@ -62,7 +62,7 @@ const char* grpc_json_get_string_property(const grpc_core::Json& json,
|
|
62
62
|
bool grpc_copy_json_string_property(const grpc_core::Json& json,
|
63
63
|
const char* prop_name,
|
64
64
|
char** copied_value) {
|
65
|
-
|
65
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
66
66
|
const char* prop_value =
|
67
67
|
grpc_json_get_string_property(json, prop_name, &error);
|
68
68
|
GRPC_LOG_IF_ERROR("Could not copy JSON property", error);
|
@@ -35,7 +35,7 @@
|
|
35
35
|
// Gets a child property from a json node.
|
36
36
|
const char* grpc_json_get_string_property(const grpc_core::Json& json,
|
37
37
|
const char* prop_name,
|
38
|
-
|
38
|
+
grpc_error_handle* error);
|
39
39
|
|
40
40
|
// Copies the value of the json child property specified by prop_name.
|
41
41
|
// Returns false if the property was not found.
|
@@ -231,6 +231,7 @@ inline int grpc_slice_refcount::Eq(const grpc_slice& a, const grpc_slice& b) {
|
|
231
231
|
GPR_DEBUG_ASSERT(
|
232
232
|
(GRPC_STATIC_METADATA_INDEX(a) == GRPC_STATIC_METADATA_INDEX(b)) ==
|
233
233
|
(a.refcount == b.refcount));
|
234
|
+
ABSL_FALLTHROUGH_INTENDED;
|
234
235
|
case Type::INTERNED:
|
235
236
|
return a.refcount == b.refcount;
|
236
237
|
case Type::NOP:
|
@@ -151,6 +151,11 @@ struct grpc_call {
|
|
151
151
|
}
|
152
152
|
|
153
153
|
~grpc_call() {
|
154
|
+
for (int i = 0; i < GRPC_CONTEXT_COUNT; ++i) {
|
155
|
+
if (context[i].destroy) {
|
156
|
+
context[i].destroy(context[i].value);
|
157
|
+
}
|
158
|
+
}
|
154
159
|
gpr_free(static_cast<void*>(const_cast<char*>(final_info.error_string)));
|
155
160
|
}
|
156
161
|
|
@@ -170,6 +175,8 @@ struct grpc_call {
|
|
170
175
|
bool destroy_called = false;
|
171
176
|
/** flag indicating that cancellation is inherited */
|
172
177
|
bool cancellation_is_inherited = false;
|
178
|
+
// Trailers-only response status
|
179
|
+
bool is_trailers_only = false;
|
173
180
|
/** which ops are in-flight */
|
174
181
|
bool sent_initial_metadata = false;
|
175
182
|
bool sending_message = false;
|
@@ -223,6 +230,7 @@ struct grpc_call {
|
|
223
230
|
grpc_core::ManualConstructor<grpc_core::SliceBufferByteStream> sending_stream;
|
224
231
|
|
225
232
|
grpc_core::OrphanablePtr<grpc_core::ByteStream> receiving_stream;
|
233
|
+
bool call_failed_before_recv_message = false;
|
226
234
|
grpc_byte_buffer** receiving_buffer = nullptr;
|
227
235
|
grpc_slice receiving_slice = grpc_empty_slice();
|
228
236
|
grpc_closure receiving_slice_ready;
|
@@ -290,14 +298,15 @@ static void execute_batch(grpc_call* call,
|
|
290
298
|
|
291
299
|
static void cancel_with_status(grpc_call* c, grpc_status_code status,
|
292
300
|
const char* description);
|
293
|
-
static void cancel_with_error(grpc_call* c,
|
294
|
-
static void destroy_call(void* call_stack,
|
295
|
-
static void receiving_slice_ready(void* bctlp,
|
296
|
-
static void set_final_status(grpc_call* call,
|
301
|
+
static void cancel_with_error(grpc_call* c, grpc_error_handle error);
|
302
|
+
static void destroy_call(void* call_stack, grpc_error_handle error);
|
303
|
+
static void receiving_slice_ready(void* bctlp, grpc_error_handle error);
|
304
|
+
static void set_final_status(grpc_call* call, grpc_error_handle error);
|
297
305
|
static void process_data_after_md(batch_control* bctl);
|
298
306
|
static void post_batch_completion(batch_control* bctl);
|
299
307
|
|
300
|
-
static void add_init_error(
|
308
|
+
static void add_init_error(grpc_error_handle* composite,
|
309
|
+
grpc_error_handle new_err) {
|
301
310
|
if (new_err == GRPC_ERROR_NONE) return;
|
302
311
|
if (*composite == GRPC_ERROR_NONE) {
|
303
312
|
*composite = GRPC_ERROR_CREATE_FROM_STATIC_STRING("Call creation failed");
|
@@ -335,15 +344,15 @@ size_t grpc_call_get_initial_size_estimate() {
|
|
335
344
|
sizeof(grpc_linked_mdelem) * ESTIMATED_MDELEM_COUNT;
|
336
345
|
}
|
337
346
|
|
338
|
-
|
339
|
-
|
347
|
+
grpc_error_handle grpc_call_create(const grpc_call_create_args* args,
|
348
|
+
grpc_call** out_call) {
|
340
349
|
GPR_TIMER_SCOPE("grpc_call_create", 0);
|
341
350
|
|
342
351
|
GRPC_CHANNEL_INTERNAL_REF(args->channel, "call");
|
343
352
|
|
344
353
|
grpc_core::Arena* arena;
|
345
354
|
grpc_call* call;
|
346
|
-
|
355
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
347
356
|
grpc_channel_stack* channel_stack =
|
348
357
|
grpc_channel_get_channel_stack(args->channel);
|
349
358
|
size_t initial_size = grpc_channel_get_call_size_estimate(args->channel);
|
@@ -524,7 +533,7 @@ void grpc_call_internal_unref(grpc_call* c REF_ARG) {
|
|
524
533
|
GRPC_CALL_STACK_UNREF(CALL_STACK_FROM_CALL(c), REF_REASON);
|
525
534
|
}
|
526
535
|
|
527
|
-
static void release_call(void* call,
|
536
|
+
static void release_call(void* call, grpc_error_handle /*error*/) {
|
528
537
|
grpc_call* c = static_cast<grpc_call*>(call);
|
529
538
|
grpc_channel* channel = c->channel;
|
530
539
|
grpc_core::Arena* arena = c->arena;
|
@@ -533,7 +542,7 @@ static void release_call(void* call, grpc_error* /*error*/) {
|
|
533
542
|
GRPC_CHANNEL_INTERNAL_UNREF(channel, "call");
|
534
543
|
}
|
535
544
|
|
536
|
-
static void destroy_call(void* call,
|
545
|
+
static void destroy_call(void* call, grpc_error_handle /*error*/) {
|
537
546
|
GPR_TIMER_SCOPE("destroy_call", 0);
|
538
547
|
size_t i;
|
539
548
|
int ii;
|
@@ -550,17 +559,12 @@ static void destroy_call(void* call, grpc_error* /*error*/) {
|
|
550
559
|
for (ii = 0; ii < c->send_extra_metadata_count; ii++) {
|
551
560
|
GRPC_MDELEM_UNREF(c->send_extra_metadata[ii].md);
|
552
561
|
}
|
553
|
-
for (i = 0; i < GRPC_CONTEXT_COUNT; i++) {
|
554
|
-
if (c->context[i].destroy) {
|
555
|
-
c->context[i].destroy(c->context[i].value);
|
556
|
-
}
|
557
|
-
}
|
558
562
|
if (c->cq) {
|
559
563
|
GRPC_CQ_INTERNAL_UNREF(c->cq, "bind");
|
560
564
|
}
|
561
565
|
|
562
|
-
|
563
|
-
reinterpret_cast<
|
566
|
+
grpc_error_handle status_error =
|
567
|
+
reinterpret_cast<grpc_error_handle>(gpr_atm_acq_load(&c->status_error));
|
564
568
|
grpc_error_get_status(status_error, c->send_deadline,
|
565
569
|
&c->final_info.final_status, nullptr, nullptr,
|
566
570
|
&(c->final_info.error_string));
|
@@ -610,11 +614,8 @@ void grpc_call_unref(grpc_call* c) {
|
|
610
614
|
// Unset the call combiner cancellation closure. This has the
|
611
615
|
// effect of scheduling the previously set cancellation closure, if
|
612
616
|
// any, so that it can release any internal references it may be
|
613
|
-
// holding to the call stack.
|
614
|
-
// filters that schedule cancel notification closures on exec_ctx do not
|
615
|
-
// need to take a ref of the call stack to guarantee closure liveness.
|
617
|
+
// holding to the call stack.
|
616
618
|
c->call_combiner.SetNotifyOnCancel(nullptr);
|
617
|
-
grpc_core::ExecCtx::Get()->Flush();
|
618
619
|
}
|
619
620
|
GRPC_CALL_INTERNAL_UNREF(c, "destroy");
|
620
621
|
}
|
@@ -630,7 +631,8 @@ grpc_call_error grpc_call_cancel(grpc_call* call, void* reserved) {
|
|
630
631
|
|
631
632
|
// This is called via the call combiner to start sending a batch down
|
632
633
|
// the filter stack.
|
633
|
-
static void execute_batch_in_call_combiner(void* arg,
|
634
|
+
static void execute_batch_in_call_combiner(void* arg,
|
635
|
+
grpc_error_handle /*ignored*/) {
|
634
636
|
GPR_TIMER_SCOPE("execute_batch_in_call_combiner", 0);
|
635
637
|
grpc_transport_stream_op_batch* batch =
|
636
638
|
static_cast<grpc_transport_stream_op_batch*>(arg);
|
@@ -691,7 +693,7 @@ struct cancel_state {
|
|
691
693
|
};
|
692
694
|
// The on_complete callback used when sending a cancel_stream batch down
|
693
695
|
// the filter stack. Yields the call combiner when the batch is done.
|
694
|
-
static void done_termination(void* arg,
|
696
|
+
static void done_termination(void* arg, grpc_error_handle /*error*/) {
|
695
697
|
cancel_state* state = static_cast<cancel_state*>(arg);
|
696
698
|
GRPC_CALL_COMBINER_STOP(&state->call->call_combiner,
|
697
699
|
"on_complete for cancel_stream op");
|
@@ -699,7 +701,7 @@ static void done_termination(void* arg, grpc_error* /*error*/) {
|
|
699
701
|
gpr_free(state);
|
700
702
|
}
|
701
703
|
|
702
|
-
static void cancel_with_error(grpc_call* c,
|
704
|
+
static void cancel_with_error(grpc_call* c, grpc_error_handle error) {
|
703
705
|
if (!gpr_atm_rel_cas(&c->cancelled_with_error, 0, 1)) {
|
704
706
|
GRPC_ERROR_UNREF(error);
|
705
707
|
return;
|
@@ -725,8 +727,8 @@ void grpc_call_cancel_internal(grpc_call* call) {
|
|
725
727
|
cancel_with_error(call, GRPC_ERROR_CANCELLED);
|
726
728
|
}
|
727
729
|
|
728
|
-
static
|
729
|
-
|
730
|
+
static grpc_error_handle error_from_status(grpc_status_code status,
|
731
|
+
const char* description) {
|
730
732
|
// copying 'description' is needed to ensure the grpc_call_cancel_with_status
|
731
733
|
// guarantee that can be short-lived.
|
732
734
|
return grpc_error_set_int(
|
@@ -741,10 +743,10 @@ static void cancel_with_status(grpc_call* c, grpc_status_code status,
|
|
741
743
|
cancel_with_error(c, error_from_status(status, description));
|
742
744
|
}
|
743
745
|
|
744
|
-
static void set_final_status(grpc_call* call,
|
746
|
+
static void set_final_status(grpc_call* call, grpc_error_handle error) {
|
745
747
|
if (GRPC_TRACE_FLAG_ENABLED(grpc_call_error_trace)) {
|
746
748
|
gpr_log(GPR_DEBUG, "set_final_status %s", call->is_client ? "CLI" : "SVR");
|
747
|
-
gpr_log(GPR_DEBUG, "%s",
|
749
|
+
gpr_log(GPR_DEBUG, "%s", grpc_error_std_string(error).c_str());
|
748
750
|
}
|
749
751
|
if (call->is_client) {
|
750
752
|
grpc_error_get_status(error, call->send_deadline,
|
@@ -770,7 +772,7 @@ static void set_final_status(grpc_call* call, grpc_error* error) {
|
|
770
772
|
call->final_op.server.core_server->channelz_node();
|
771
773
|
if (channelz_node != nullptr) {
|
772
774
|
if (*call->final_op.server.cancelled ||
|
773
|
-
reinterpret_cast<
|
775
|
+
reinterpret_cast<grpc_error_handle>(
|
774
776
|
gpr_atm_acq_load(&call->status_error)) != GRPC_ERROR_NONE) {
|
775
777
|
channelz_node->RecordCallFailed();
|
776
778
|
} else {
|
@@ -952,7 +954,7 @@ static int prepare_application_metadata(grpc_call* call, int count,
|
|
952
954
|
for (i = 0; i < total_count; i++) {
|
953
955
|
grpc_metadata* md = get_md_elem(metadata, additional_metadata, i, count);
|
954
956
|
grpc_linked_mdelem* l = linked_from_md(md);
|
955
|
-
|
957
|
+
grpc_error_handle error = grpc_metadata_batch_link_tail(batch, l);
|
956
958
|
if (error != GRPC_ERROR_NONE) {
|
957
959
|
GRPC_MDELEM_UNREF(l->md);
|
958
960
|
}
|
@@ -1053,14 +1055,14 @@ static void recv_initial_filter(grpc_call* call, grpc_metadata_batch* b) {
|
|
1053
1055
|
}
|
1054
1056
|
|
1055
1057
|
static void recv_trailing_filter(void* args, grpc_metadata_batch* b,
|
1056
|
-
|
1058
|
+
grpc_error_handle batch_error) {
|
1057
1059
|
grpc_call* call = static_cast<grpc_call*>(args);
|
1058
1060
|
if (batch_error != GRPC_ERROR_NONE) {
|
1059
1061
|
set_final_status(call, batch_error);
|
1060
1062
|
} else if (b->idx.named.grpc_status != nullptr) {
|
1061
1063
|
grpc_status_code status_code =
|
1062
1064
|
grpc_get_status_code_from_metadata(b->idx.named.grpc_status->md);
|
1063
|
-
|
1065
|
+
grpc_error_handle error = GRPC_ERROR_NONE;
|
1064
1066
|
if (status_code != GRPC_STATUS_OK) {
|
1065
1067
|
char* peer = grpc_call_get_peer(call);
|
1066
1068
|
error = grpc_error_set_int(
|
@@ -1171,8 +1173,8 @@ static void finish_batch_completion(void* user_data,
|
|
1171
1173
|
}
|
1172
1174
|
|
1173
1175
|
static void reset_batch_errors(batch_control* bctl) {
|
1174
|
-
GRPC_ERROR_UNREF(
|
1175
|
-
|
1176
|
+
GRPC_ERROR_UNREF(reinterpret_cast<grpc_error_handle>(
|
1177
|
+
gpr_atm_acq_load(&bctl->batch_error)));
|
1176
1178
|
gpr_atm_rel_store(&bctl->batch_error,
|
1177
1179
|
reinterpret_cast<gpr_atm>(GRPC_ERROR_NONE));
|
1178
1180
|
}
|
@@ -1180,8 +1182,8 @@ static void reset_batch_errors(batch_control* bctl) {
|
|
1180
1182
|
static void post_batch_completion(batch_control* bctl) {
|
1181
1183
|
grpc_call* next_child_call;
|
1182
1184
|
grpc_call* call = bctl->call;
|
1183
|
-
|
1184
|
-
|
1185
|
+
grpc_error_handle error = GRPC_ERROR_REF(reinterpret_cast<grpc_error_handle>(
|
1186
|
+
gpr_atm_acq_load(&bctl->batch_error)));
|
1185
1187
|
|
1186
1188
|
if (bctl->op.send_initial_metadata) {
|
1187
1189
|
grpc_metadata_batch_destroy(
|
@@ -1254,7 +1256,7 @@ static void finish_batch_step(batch_control* bctl) {
|
|
1254
1256
|
}
|
1255
1257
|
|
1256
1258
|
static void continue_receiving_slices(batch_control* bctl) {
|
1257
|
-
|
1259
|
+
grpc_error_handle error;
|
1258
1260
|
grpc_call* call = bctl->call;
|
1259
1261
|
for (;;) {
|
1260
1262
|
size_t remaining = call->receiving_stream->length() -
|
@@ -1285,7 +1287,7 @@ static void continue_receiving_slices(batch_control* bctl) {
|
|
1285
1287
|
}
|
1286
1288
|
}
|
1287
1289
|
|
1288
|
-
static void receiving_slice_ready(void* bctlp,
|
1290
|
+
static void receiving_slice_ready(void* bctlp, grpc_error_handle error) {
|
1289
1291
|
batch_control* bctl = static_cast<batch_control*>(bctlp);
|
1290
1292
|
grpc_call* call = bctl->call;
|
1291
1293
|
bool release_error = false;
|
@@ -1345,13 +1347,13 @@ static void process_data_after_md(batch_control* bctl) {
|
|
1345
1347
|
}
|
1346
1348
|
}
|
1347
1349
|
|
1348
|
-
static void receiving_stream_ready(void* bctlp,
|
1350
|
+
static void receiving_stream_ready(void* bctlp, grpc_error_handle error) {
|
1349
1351
|
batch_control* bctl = static_cast<batch_control*>(bctlp);
|
1350
1352
|
grpc_call* call = bctl->call;
|
1351
1353
|
if (error != GRPC_ERROR_NONE) {
|
1352
1354
|
call->receiving_stream.reset();
|
1353
|
-
if (reinterpret_cast<
|
1354
|
-
|
1355
|
+
if (reinterpret_cast<grpc_error_handle>(
|
1356
|
+
gpr_atm_acq_load(&bctl->batch_error)) == GRPC_ERROR_NONE) {
|
1355
1357
|
gpr_atm_rel_store(&bctl->batch_error,
|
1356
1358
|
reinterpret_cast<gpr_atm>(GRPC_ERROR_REF(error)));
|
1357
1359
|
}
|
@@ -1371,7 +1373,7 @@ static void receiving_stream_ready(void* bctlp, grpc_error* error) {
|
|
1371
1373
|
// a recv_message op down the filter stack. Yields the call combiner
|
1372
1374
|
// before processing the received message.
|
1373
1375
|
static void receiving_stream_ready_in_call_combiner(void* bctlp,
|
1374
|
-
|
1376
|
+
grpc_error_handle error) {
|
1375
1377
|
batch_control* bctl = static_cast<batch_control*>(bctlp);
|
1376
1378
|
grpc_call* call = bctl->call;
|
1377
1379
|
GRPC_CALL_COMBINER_STOP(&call->call_combiner, "recv_message_ready");
|
@@ -1464,7 +1466,8 @@ static void validate_filtered_metadata(batch_control* bctl) {
|
|
1464
1466
|
}
|
1465
1467
|
}
|
1466
1468
|
|
1467
|
-
static void receiving_initial_metadata_ready(void* bctlp,
|
1469
|
+
static void receiving_initial_metadata_ready(void* bctlp,
|
1470
|
+
grpc_error_handle error) {
|
1468
1471
|
batch_control* bctl = static_cast<batch_control*>(bctlp);
|
1469
1472
|
grpc_call* call = bctl->call;
|
1470
1473
|
|
@@ -1483,8 +1486,8 @@ static void receiving_initial_metadata_ready(void* bctlp, grpc_error* error) {
|
|
1483
1486
|
call->send_deadline = md->deadline;
|
1484
1487
|
}
|
1485
1488
|
} else {
|
1486
|
-
if (reinterpret_cast<
|
1487
|
-
|
1489
|
+
if (reinterpret_cast<grpc_error_handle>(
|
1490
|
+
gpr_atm_acq_load(&bctl->batch_error)) == GRPC_ERROR_NONE) {
|
1488
1491
|
gpr_atm_rel_store(&bctl->batch_error,
|
1489
1492
|
reinterpret_cast<gpr_atm>(GRPC_ERROR_REF(error)));
|
1490
1493
|
}
|
@@ -1523,7 +1526,8 @@ static void receiving_initial_metadata_ready(void* bctlp, grpc_error* error) {
|
|
1523
1526
|
finish_batch_step(bctl);
|
1524
1527
|
}
|
1525
1528
|
|
1526
|
-
static void receiving_trailing_metadata_ready(void* bctlp,
|
1529
|
+
static void receiving_trailing_metadata_ready(void* bctlp,
|
1530
|
+
grpc_error_handle error) {
|
1527
1531
|
batch_control* bctl = static_cast<batch_control*>(bctlp);
|
1528
1532
|
grpc_call* call = bctl->call;
|
1529
1533
|
GRPC_CALL_COMBINER_STOP(&call->call_combiner, "recv_trailing_metadata_ready");
|
@@ -1533,12 +1537,12 @@ static void receiving_trailing_metadata_ready(void* bctlp, grpc_error* error) {
|
|
1533
1537
|
finish_batch_step(bctl);
|
1534
1538
|
}
|
1535
1539
|
|
1536
|
-
static void finish_batch(void* bctlp,
|
1540
|
+
static void finish_batch(void* bctlp, grpc_error_handle error) {
|
1537
1541
|
batch_control* bctl = static_cast<batch_control*>(bctlp);
|
1538
1542
|
grpc_call* call = bctl->call;
|
1539
1543
|
GRPC_CALL_COMBINER_STOP(&call->call_combiner, "on_complete");
|
1540
|
-
if (reinterpret_cast<
|
1541
|
-
|
1544
|
+
if (reinterpret_cast<grpc_error_handle>(
|
1545
|
+
gpr_atm_acq_load(&bctl->batch_error)) == GRPC_ERROR_NONE) {
|
1542
1546
|
gpr_atm_rel_store(&bctl->batch_error,
|
1543
1547
|
reinterpret_cast<gpr_atm>(GRPC_ERROR_REF(error)));
|
1544
1548
|
}
|
@@ -1621,7 +1625,6 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
|
|
1621
1625
|
grpc_metadata& compression_md = call->compression_md;
|
1622
1626
|
compression_md.key = grpc_empty_slice();
|
1623
1627
|
compression_md.value = grpc_empty_slice();
|
1624
|
-
compression_md.flags = 0;
|
1625
1628
|
size_t additional_metadata_count = 0;
|
1626
1629
|
grpc_compression_level effective_compression_level =
|
1627
1630
|
GRPC_COMPRESS_LEVEL_NONE;
|
@@ -1755,7 +1758,7 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
|
|
1755
1758
|
call->send_extra_metadata_count = 1;
|
1756
1759
|
call->send_extra_metadata[0].md = grpc_get_reffed_status_elem(
|
1757
1760
|
op->data.send_status_from_server.status);
|
1758
|
-
|
1761
|
+
grpc_error_handle status_error =
|
1759
1762
|
op->data.send_status_from_server.status == GRPC_STATUS_OK
|
1760
1763
|
? GRPC_ERROR_NONE
|
1761
1764
|
: grpc_error_set_int(
|
@@ -1823,7 +1826,10 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
|
|
1823
1826
|
&call->metadata_batch[1 /* is_receiving */][0 /* is_trailing */];
|
1824
1827
|
stream_op_payload->recv_initial_metadata.recv_initial_metadata_ready =
|
1825
1828
|
&call->receiving_initial_metadata_ready;
|
1826
|
-
if (
|
1829
|
+
if (call->is_client) {
|
1830
|
+
stream_op_payload->recv_initial_metadata.trailing_metadata_available =
|
1831
|
+
&call->is_trailers_only;
|
1832
|
+
} else {
|
1827
1833
|
stream_op_payload->recv_initial_metadata.peer_string =
|
1828
1834
|
&call->peer_string;
|
1829
1835
|
}
|
@@ -1844,6 +1850,8 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
|
|
1844
1850
|
stream_op->recv_message = true;
|
1845
1851
|
call->receiving_buffer = op->data.recv_message.recv_message;
|
1846
1852
|
stream_op_payload->recv_message.recv_message = &call->receiving_stream;
|
1853
|
+
stream_op_payload->recv_message.call_failed_before_recv_message =
|
1854
|
+
&call->call_failed_before_recv_message;
|
1847
1855
|
GRPC_CLOSURE_INIT(&call->receiving_stream_ready,
|
1848
1856
|
receiving_stream_ready_in_call_combiner, bctl,
|
1849
1857
|
grpc_schedule_on_exec_ctx);
|
@@ -2013,6 +2021,18 @@ grpc_compression_algorithm grpc_call_compression_for_level(
|
|
2013
2021
|
return algo;
|
2014
2022
|
}
|
2015
2023
|
|
2024
|
+
bool grpc_call_is_trailers_only(const grpc_call* call) {
|
2025
|
+
bool result = call->is_trailers_only;
|
2026
|
+
GPR_DEBUG_ASSERT(
|
2027
|
+
!result || call->metadata_batch[1 /* is_receiving */][0 /* is_trailing */]
|
2028
|
+
.list.count == 0);
|
2029
|
+
return result;
|
2030
|
+
}
|
2031
|
+
|
2032
|
+
bool grpc_call_failed_before_recv_message(const grpc_call* c) {
|
2033
|
+
return c->call_failed_before_recv_message;
|
2034
|
+
}
|
2035
|
+
|
2016
2036
|
const char* grpc_call_error_to_string(grpc_call_error error) {
|
2017
2037
|
switch (error) {
|
2018
2038
|
case GRPC_CALL_ERROR:
|